aufgaben stellung aus mysql per button erledigen


#1
Hallo Liebe gemeinde!!

Erstmal ein frohes neues allen.

Nun zu meinem problem. Ich habe eine Mysql tabelle in der Aufgaben gespeichert sind

ein einfache tabelle mit it und aufgaben stellung

Beispiel:

id 1 besorge mr bitte folgende waren

10 Holz und 3 Steine

nun frage ich diese aufgaben per radom ab solln ja zufällig ausgegeben werden

nun möchte ich das man mit klick auf einem button die benötigten Waren liefert

dieser Button soll in einer flash datei sein und diese aktion das ausführt


die random abfrage ****t soweit nur das mit dem Button das diese Aufgabe ausgeführt wird weiß ich nicht wie ich das anstellen soll.

Zu erwähnen wäre vieleicht noch das die Produzierten waren in einer anderen Tabelle liegen und nach dem klick auf dem button auch von dem bestand (der bereits produzierten waren abgezogen werden sollen) schön wäre noch wenn auch gleich angezeigt wird das man so und so viele waren hat und so und soviele Waren benötigt. Natürlich darf es auch nicht ins minus gehen.

könnt ihr mir da helfen?

Vielen dank an euch
 

DexXxtrin

Erfahrenes Mitglied
#2
Und wo liegt jetzt ganz genau dein Problem?
Beim Klick auf deinen „Ware senden“-Button rufst du eine Funktion auf, welche überprüft, ob die verlangte Ware zur verfügung steht. Wenn ja ziehst du das der Produzierten Ware ab und markierst den Auftrag als erledigt.
Sonst gibst du eine Meldung aus, welche mitteilt, dass nicht genügend Ware im Speicher ist.

Oder habe ich da was völlig falsch verstanden?

Gruss DexXxtrin
 

DexXxtrin

Erfahrenes Mitglied
#4
//Edit

Jetzt hab ich geschnallt um was es geht. Das Problem liegt bei dem MySQL-Zugriff über Flash.

Das Loadvars-Objekt von Flash hilft dir.
Die Abfragen in einer PHP-Datei und dann in Flash abfragen.
 
Zuletzt bearbeitet:
#5
hääää könntest du mir ein beispiel geben?

Ich hole mir die daten so ins flash

var LoadVarObject = new LoadVars();
LoadVarObject.onLoad = function(loadSuccess) {
if (loadSuccess == true) {
_root.aufgaben = this.mein_aufgaben_wert;
_root.brauche = this.mein_brauche_wert;
_root.ist = this.mein_ist_wert;

}
};
LoadVarObject.load("aufgaben.php");

das ist auch kein problem nur wie mache ich das mit dem button
 

DexXxtrin

Erfahrenes Mitglied
#6
Was genau mit dem Button?
Wenn der Button gedrückt wird, rufst du eine Funktion auf welche das Zeugs berechnet. (if _root.ist-_root.brauche >= 0 ...)
Ist genügend Ware vorhanden must du wieder PHP aufrufen und die Werte mitgeben.
 
#7
und genau das istdas problem er übergibt die werte nicht.

hier mal der code der mir die auftrage aus der datenbank holt
PHP:
$abfrage = "select aufgabe FROM aufgaben where id"; 

/* Abfrage senden - bei Bedarf anpassen */ 
$result = mysql_query("select * from aufgaben  ORDER BY rand() LIMIT 1") 
  or die ("Abfrage fehlgeschlagen ...<br><br>"); 

while($row = mysql_fetch_object($result))
   {


echo 'mein_aufgaben_wert='.$row->aufgabe.'&';
echo 'mein_brauche_wert='.$row->apfel.'&';
echo 'mein_brauche1_wert='.$row->bannane;

   }

?>
 

DexXxtrin

Erfahrenes Mitglied
#8
Welche Werte werden nicht übergeben?

MySQL -> PHP
PHP -> Flash
Flash -> PHP

Hab hier noch was gefunden zum Thema Flash -> PHP
Es geht zwar um Feldwerte übergeben, aber glaube das prinzip ist dasselbe.

AS:
PHP:
//Ärger mit Umlauten vermeiden
System.useCodepage = true;
//
//Variablen Initialisierung
namenVar = "";
emailVar = "";
//Tabulator Reihenfolge
namen_txt.tabIndex = 1;
email_txt.tabIndex = 2;
//Erlaubte Zeichen
namen_txt.restrict = "a-z A-Z";
email_txt.restrict = "a-z A-Z 0-9 @.";
//Zeichenlänge
namen_txt.maxChars = 20;
email_txt.maxChars = 50;
//
//führende Leerzeichen aus Textfeldern entfernen
leerZeichenWeg = function (feld, txt) {
    while (txt.charAt(0) == " ") {
        txt = txt.slice(1);
    }
    trace(txt);
    feld.text = txt;
};
//Funktionen für den Sende Button
senden_btn.onRollOver = function() {
    this.t_txt.textColor = 0xFFFFFF;
};
senden_btn.onRollOut = function() {
    this.t_txt.textColor = 0xFF6600;
};
senden_btn.onRelease = senden_btn.onReleaseOutside = function () {
    //Funktion aufrufen
    formSenden();

};
formSenden = function () {
    //Alle Fehler auf 0 setzen
    var fehler:Number = 0;
    //führende Leerzeichen entfernen
    leerZeichenWeg(namen_txt, namenVar);
    leerZeichenWeg(email_txt, emailVar);
    //Textfeld für den Namen überprüfen
    if (namen_txt.text.length<2) {
        status_txt.textColor = "0xCCCCCC";
        status_txt.text = "Bitte einen Namen angeben.";
        fehler++;
    }
    //Textfeld für E-Mail überprüfen
    //geht noch ausführlicher und genauer
    if (email_txt.text.length<8) {
        status_txt.textColor = "0xCCCCCC";
        status_txt.text = "Keine gültige E-Mail.";
        fehler++;
    }
    if (fehler == 0) {
    //Wenn es keine Fehler gibt
    //mit dem Senden an PHP beginnen
    //
    //Die beiden folgenden Variablen
    //werden zum auswerten benötigt
    _global.abwarten = false;
    _global.erfolgreich = false;
    //
    //Hier eine kleine Funktion
    //wie lange wir auf eine Antwort 
    //von PHP warten wollen
        setTimeout(function () {
            //Sobald 3 Sekunden vorbei sind
            //wird die Funktion abwartenVorbei()
            //aufgerufen und abwarten auf true gesetzt
            abwarten = true;
            abwartenVorbei();
        }, 3000);
        //Der Text während des Wartens
        status_txt.textColor = "0xFFFFFF";
        status_txt.text = "Bitte warten, Daten werden gesendet";
        //
        //neue Objekt von LoadVars anlegen
        var export:LoadVars = new LoadVars();
        //
        //Sicherheitsabfrage an PHP, ob Daten auch wirklich von Flash kommen
        export.anfrageVonFlash = 1;
        //Übergabe der Werte aus den Textfeldern
        export.flaNamen = namenVar;
        export.flaEmail = emailVar;
        //
        var anPHP:LoadVars = new LoadVars();
        //Übergabe an an die PHP datei schreiben.php
        export.sendAndLoad("schreiben.php?"+new Date().getTime(), anPHP, "POST");
        anPHP.onLoad = function(erfolg:Boolean) {
            if (erfolg) {
                erfolgreich = true;
                //Wenn PHP die Variable eintragOK mit dem Wert 1 zurück sendet
                //dann war alles OK
                if (anPHP.eintragOK == 1) {
                    status_txt.textColor = "0xFFFFFF";
                    status_txt.text = ">> Eintrag war OK <<";
                }
            } 
        };
        //ENDE vanPHP.onLoad = function(erfolg:Boolean) {
    }
    //ENDE if (fehler == 0) {          
};
//Die Funktion zur Kontrolle
abwartenVorbei = function () {
    //Wenn die Wartezeit vorbei ist
    //und von PHP nix zurück kam
    //dann ist was faul
    if (abwarten == true && erfolgreich == false) {
        status_txt.textColor = "0xCCCCCC";
        status_txt.text = "PHP-Datei antwortet nicht.";
    }
};
PHP schreiben.php:
PHP:
//Funktioniert nur, wenn von Flash gesendet
//klein bischen Sicherheit
//Hier muß aber noch wesentlich mehr an Sicherheit gemacht werden
if(isset($_POST[anfrageVonFlash])){    
    
    //Alle gesendeten POST Variablen umwandeln
    while (list($feld, $inhalt) = each ($_POST)) {
        $inhalt = trim($inhalt);
        //Tags entfernen
        //klein bischen Sicherheit
        $inhalt = strip_tags($inhalt);
        ${"var_".$feld} = $inhalt;
    }    

    $textdatei = fopen("namen.txt","a");
    fputs($textdatei,
    date("Y.m.d H:i:s", time()). ", ".$var_flaNamen.", ".$var_flaEmail."\n");
    fclose($textdatei);
    //Die Variable, auf die Flash wartet
    echo "&eintragOK=1&";
}//Ende if(isset($_POST[anfrageVonFlash])){
Hoffe kann dir damit weiterhelfen.
 
#9
vielen dank werde mir das mal zu gemüte ziehen

will ja eigentlich nur das wenn der auftrag angezeigt wird ein button auftaucht oder da ist der diesen auftrag erledigt. und die werte von einem bestand abzieht.