Wert per php aus tabelle abfragen wenn wert erreicht soll spalte 2 um eines erhöht

Ok ich hab dir das mal gecodet. Du musst das nun an entsprechender Stelle einfügen/ersetzen.
PHP:
/* Abfrage senden - bei Bedarf anpassen */ 
$result = mysql_query("SELECT
							* 
						From
							WarenLvl
						Where
							userid='$_SESSION[userid]'") 
  or die ("Abfrage fehlgeschlagen ...<br><br>"); 

$row = mysql_fetch_assoc($result);
$kaffee= $row[0];
$apfel= $row[1];
$bannane= $row[2];


if ($kaffee == 0) {
	echo 'mein_kaffee1_wert='.$row[0];
	$Ware_kaffee=1;
}
else {
	$Ware_kaffee=0;
	echo 'Der User hat den Level noch nicht erreicht';
}
if ($bannane == 0) {
	echo 'mein_bannanen_wert='.$row[2];
	$Ware_bannane=1;
}
else {
	echo 'Der User hat den Level noch nicht erreicht';
	$Ware_bannane=0;
}
if ($apfel == 0) {
	echo 'mein_bannanen_wert='.$row[2];
	$Ware_apfel=1;
}
else {
	echo 'Der User hat den Level noch nicht erreicht';
	$Ware_apfel=0;
}

$aendern = "UPDATE
				plus_signup
			SET
				punkte=punkte + 1,
				Apfel=Apfel + $Ware_apfel,
				kaffee=kaffee + $Ware_kaffee,
				bannane=bannane +$Ware_bannane
			WHERE
				userid='$_SESSION[userid]'";
$update = mysql_query($aendern);

Wenn du das so eingefügt/ersetzt hast zeigst du nochmal den ganzen Code damit du dann nicht 1000 Select /Updates hast.
 
den ganzen code? ich habe eine datei die fragt eben die pullern und so ab.

Und für jede Ware eine ensprechen andere datei erstellt die die punkte immer adiert am ende der aktion aus flash heraus der code ist wie obe in der datei muss ich den code in die haupt dateimit einbauen ? neee dann funktioniert ja mein zuzählen nicht mehrdeswegen habe ich eine datei werte_2a.php der ersten einmal einen zu zählt wenn die zeit abgelaufen ist und eben auch entsprechend punkte dazu.

datei werte.php
PHP:
<? 
include "include/session.php"; 
include "include/z_db.php"; 

$abfrage = "select * FROM plus_signup where userid='$_SESSION[userid]'"; 

/* Abfrage senden - bei Bedarf anpassen */ 
$result = mysql_query("select Level, punkte, name, Puller, Poller, bannane, apfel, kaffee from plus_signup where userid='$_SESSION[userid]'") 
  or die ("Abfrage fehlgeschlagen ...<br><br>"); 


/* solange entsprechende Datensätze geliefert werden, diese nun auswerten */ 
while($row = mysql_fetch_array($result)) 
{ 
/* Entweder einer Variablen zuweisen */ 
  $punkte = $row[0]; 
  $Level = $row[1]; 
  $name = $row[2]; 
  $Puller = $row[3]; 
  $Poller = $row[4]; 
  $bannane =$row[5]; 
  $apfel =$row[6]; 
  $kaffee =$row[7]; 

/*26 augeben */ 

echo 'mein_test1_wert='.$row[0].'&';//punkte 
echo 'mein_test2_wert='.$row[1].'&';//level 
echo 'mein_test3_wert='.$row[2].'&';//Name 
echo 'mein_test4_wert='.$row[3].'&';//Puller 
echo 'mein_test5_wert='.$row[4].'&';//Poller 
echo 'mein_besitz1_wert='.$row[5].'&'; 
echo 'mein_besitz2_wert='.$row[6].'&'; 
echo 'mein_besitz3_wert='.$row[7]; 
} 
  
mysql_free_result($result); 

$result = mysql_query("select * FROM plus_signup where userid='$_SESSION[userid]'")  
  or die ("Abfrage fehlgeschlagen ...<br><br>");  
$result = mysql_query("SELECT Level, punkte ,apfel, kaffee, bannane FROM plus_signup where userid='$_SESSION[userid]'");   

$row = mysql_fetch_assoc($result);   
$punkte = $row[punkte];  
$Level = $row[Level];  
$apfel = $row[apfel];  
$kaffee = $row[kaffee]; 
$bannane = $row[bannane]; 

// Vor der Switchabfrage alle Waren auf NULL setzen $Banane=0; $Ware2=0; usw 
$PullerNeu=0;  
$apfel=0; 
$kaffee=0; 
$bannane=0; 
switch ($punkte) {  
    case $punkte >= 0 && !($Level >= 0):  
        $levelNeu=0;  
        $PullerNeu=0; 
        $apfel=1;
        $kaffee=0; 
	$bannane=0 ;
        $NewWare=1;  
        break; 
    case $punkte >= 15 && !($Level >= 1):  
        $levelNeu=1;  
        $PullerNeu=5; 
        $apfel=1; 
        $kaffee=1; 
	$bannane=0;
        $NewWare=1; 
        break;  
    case $punkte >= 25 && !($Level >= 2):  
        $levelNeu=2; 
        $PullerNeu=5;
        $apfel=1;
        $kaffee=1; 
        $bannane=0; 
        $NewWare=1;  
        break;  
    case $punkte >= 67 && !($Level >= 3):  
        $levelNeu=3;  
        break;  
    case $punkte >= 127 && !($Level >= 4):  
        $levelNeu=4;  
        $PullerlNeu=50;  
        break;  
    case $punkte >= 240 && !($Level >= 5):  
        $levelNeu=5;  
        break;  
    case $punkte >= 785 && !($Level >= 6):  
        $levelNeu=6;  
        break;  
    case $punkte >= 962 && !($Level >= 7):  
        $levelNeu=7;  
        break;  
    case $punkte >= 1919 && !($Level >= 8):  
        $levelNeu=8;  
        break;  
    case $punkte >= 3689 && !($Level >= 9):  
        $levelNeu=9;  
        break;  
 default:  
        $levelNeu= $level;  
        $PullerNeu=0;  
        break;  

}  
if ($levelNeu != $Level) { 
$aendern="UPDATE plus_signup SET Level = $levelNeu, Puller=Puller+$PullerNeu  where userid='$_SESSION[userid]'"; 
$update = mysql_query($aendern); 
    if ($NewWare != 0) { 
        $aendern="UPDATE WarenLvl SET Bannane= $bannane, Kaffee = $kaffee, Apfel = $apfel  where userid='$_SESSION[userid]'"; 
        $update = mysql_query($aendern); 
        //97 Datensatz zum ersten mal erstellen falls nochnicht vorhanden 
        if (mysql_affected_rows() == 0) { 
            mysql_query("INSERT INTO 
                            WarenLvl 
                                (userid, 
                                bannane, 
                                kaffee, 
                                apfel) 
                            VALUES 
                                ('$_SESSION[userid]','$bannane','$kaffee','$apfel')"); 
            if (mysql_errno()) {         
                echo mysql_errno() . ": " . mysql_error(). "\n"; 
            } 
        } 
    } 
}  


?>



werte_2.php(für den apfel) und werte_2a(für den kaffee) und werte_2b(für die Bannane) sind identtisch

werte_2a.php für den kaffee
PHP:
* Abfrage senden - bei Bedarf anpassen */  
$result = mysql_query("SELECT 
                            *  
                        From 
                            WarenLvl 
                        Where 
                            userid='$_SESSION[userid]'")  
  or die ("Abfrage fehlgeschlagen ...<br><br>");  

$row = mysql_fetch_assoc($result); 
$kaffee= $row[0]; 
$apfel= $row[1]; 
$bannane= $row[2]; 


if ($kaffee == 0) { 
    echo 'mein_kaffee1_wert='.$row[0]; 
    $Ware_kaffee=1; 
} 
else { 
    $Ware_kaffee=0; 
    echo 'Der User hat den Level noch nicht erreicht'; 
} 
if ($bannane == 0) { 
    echo 'mein_bannane_wert='.$row[2]; 
    $Ware_bannane=1; 
} 
else { 
    echo 'Der User hat den Level noch nicht erreicht'; 
    $Ware_bannane=0; 
} 
if ($apfel == 0) { 
    echo 'mein_apfel_wert='.$row[2]; 
    $Ware_apfel=1; 
} 
else { 
    echo 'Der User hat den Level noch nicht erreicht'; 
    $Ware_apfel=0; 
} 

$aendern = "UPDATE 
                plus_signup 
            SET 
                punkte=punkte + 1, 
                Apfel=Apfel + $Ware_apfel, 
                kaffee=kaffee + $Ware_kaffee, 
                bannane=bannane +$Ware_bannane 
            WHERE 
                userid='$_SESSION[userid]'"; 
$update = mysql_query($aendern);


if ($levelNeu != $Level) {
$aendern="UPDATE plus_signup SET Level = $levelNeu, Puller=Puller+$PullerNeu  where userid='$_SESSION[userid]'";
$update = mysql_query($aendern);
    if ($NewWare != 0) {
        $aendern="UPDATE WarenLvl SET kaffe = $kaffee  where userid='$_SESSION[userid]'";
        $update = mysql_query($aendern);
        echo $update;
            if (mysql_errno()) {        
                echo mysql_errno() . ": " . mysql_error(). "\n";
            }
        //97 Datensatz zum ersten mal erstellen falls nochnicht vorhanden
        if (mysql_affected_rows() == 0) {
            $erstellen=("INSERT INTO
                            WarenLvl
                                (userid,
                                bannane,
                                kaffee,
                                apfel)
                            VALUES
                                ('$_SESSION[userid]','$bannane','$kaffee','$apfel')");
            $insert = mysql_query($erstellen);
            echo $insert;
            if (mysql_errno()) {        
                echo mysql_errno() . ": " . mysql_error(). "\n";
            }
        }
    }
}

wenn ich diesen code jetzt richtig deute und verstehe erledigt dieser code alles was ich auf 3 datei habe richtig?
 
Zuletzt bearbeitet:
Naja ich bin davon ausgegangen das dies alles in einer Datei erledigt wird anstatt in 3en. Das is ja unötiger Traffic.

Wenn du noch die Zeile
$aendern="UPDATE WarenLvl SET kaffe = $kaffee where userid='$_SESSION[userid]
mit
$aendern="UPDATE WarenLvl SET kaffe = $kaffee, apfel = $apfel, bannane=$bannane where userid='$_SESSION[userid]
ersetzt, sollte dies doch für alle Waren als eine Datei gehen oder?
Probiere es mal aus.
 
nein das hatte ich nicht gemacht weil jetzt wird bei jedem seiten aufruf zu jeder ware einmal eins hinzugezählt und zusätzlich ein punkt und das soll ja nicht. Ich habe es dann so gemacht weil die waren ja nehher unterschiedliche punkte haben als beispiel solllen bannan nachher 2 punkte geben und die produzierte ware wird um eines erhöht

Darum habe ich das so getrennt um es mir nachher etwas leichter zu halten.
In der werte die hauptdatei die die daten an flash gibt.

Aus flash gibt es dann 3 weiter datei die jeweils das oben beschriebene machen.
 
Hmm also mir scheint das zwar etwas unperformant aber wenn dus erst mal so machen willst Ok.
Dann nimmst du eben alle unrelevanten Ifs raus und änderst das Update eben so das jede Datei nur die entsprechende Ware updatet.

PS: schaue aber bei dem Apfel(Spaltenname) beim Update nochmal obs richtig geschrieben wurde.
 
Zurück