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

Ein Tipp ist auf jeden Fall, wenn gar nix mehr geht und man absolut net weiter kommt, Pause machen, meist faellt einem danach schnell auf warum etwas net geht oder wie etwas gehen koennte.
Und zwischen bannane und banane ist ja auch nen Unterschied :)
 
hey ich bin es mal wieder
er updatet mir jetzt die WarenLvl soweit aber er blockiert mir die waren nicht er gibt mir zwar wenn ich die meldung aufrufe aus aber sie werden nicht blockiert und ausserdem habe ich festegestellt, das die waren level nur bei einem also bei mir frei gemacht werden und bei keinem andren das heißt das nur ein eintarg in dertabelle ist user ist 0 wieso weiß ich noch nicht aber ich habe 10 die mittesten und bei keinem anderen geht es leider
 
hey ich bin es mal wieder
er updatet mir jetzt die WarenLvl soweit aber er blockiert mir die waren nicht er gibt mir zwar wenn ich die meldung aufrufe aus aber sie werden nicht blockiert und ausserdem habe ich festegestellt, das die waren level nur bei einem also bei mir frei gemacht werden und bei keinem andren das heißt das nur ein eintarg in dertabelle ist user ist 0 wieso weiß ich noch nicht aber ich habe 10 die mittesten und bei keinem anderen geht es leider

Um das zu verstehen brauchts einen Kryptographen und einen Hellseher.

1.: Wie sieht denn der Code zum prüfen der Waren (freigeschalten/nicht freigeschalten) aus?

2.: Hast du die Fehlerabfragen wie von mir gezeigt eingebaut?

3.: Hast du mal alle Spaltennamen und andere Parameter deines Updates und Inserts überprüft? Gerade hier behaupte ich werden noch einige Fehler sein.

4.: In deiner Tabelle WarenLvl müsste nach erreichen des 1.en Levels für den jeweiligen User eine ID eingetragen werden und bei deiner Ware apfel eine 1 stehen ansonsten überall 0. Wenn dem nicht so ist siehe 2.ens und 3.ens.

5.: Um solche Fehler besser erkennen zu können solltest du die auch beim SQL ein sauberes Einrücken angewöhnen.

6.: Es ist unabdingbar das du dich versuchst besser auszudrücken in Satzbau sowie Ausdruck und Inhalt. Nach einem erneutem Lesen vor dem abschicken solltest du dich fragen ob man dich verstehen kann und anhand deiner Schilderung und eventuellen Code dir helfen kann.
 
Zuletzt bearbeitet:
Hallo ich versuche mich jetzt mal besser auszudrücken und auch satzzeichen zu setzen. habt etwas verständniss mit mir bitt ich habe es nicht so mit der Gramatik.

PHP:
$abfrage = "select * FROM WarenLvl where userid"; 

/* Abfrage senden - bei Bedarf anpassen */ 
$result = mysql_query("select kaffee from WarenLvl where userid") 
  or die ("Abfrage fehlgeschlagen ...<br><br>"); 

$row = mysql_fetch_assoc($result);
$kaffee= $row[kaffee];


if ($kaffee == 0)
{'mein_kaffee1_wert='.$kaffee;}
else 
echo 'Der User hat den Level noch nicht erreicht'

habe es jetzt soweit hinbekommen das User entsprechend auch in die WarenLvl eingetragn werden und dort wie gewünscht auch alles auf null steht user ist der login name das funktioniert auch jetzt eins a.

Wenn ich jetzt zu erst den apfel starte und den solange nutze das ich dann mal irgendwann ins nächste level komme wird dort auch entsprechnd eine eins eingetragen.

die anderen bleiben bei null

alle anderen Waren die noch Null sind sollten ja Blockiert sein. oder zumindetsens ohne Funktion oder so sein. erst nach dem erreichen des Lnächstes level soll ein ware auch frei gewschaltet werden die eins wird an die entsprechende stelle dann auch gesetzt. Aber man kann es trozdem Produzieren. wenn ich die Seite mit der abfrage direkt anwähle mit meinem Browser kommt zwar die meldung aber er zählzt trozd immer einen weiter rauf wie ich es vorher auch hatte.ich hoffe ihr versteht mich jetzt was ich meine
 
Zuletzt bearbeitet:
Deine WHERE-Abfrage stimmt noch nicht. Schaue mal wie du es sonst gemacht hast ;)
Und unten beim else fehlen die geschweiften Klammern. Dann sollte es gehen.
Denk dran du brauchst nur die eine Abfrage(Select) da nimmst du einfach alle Waren rein und liesst sie mit
$kaffee= $row[kaffee];
$apfel= $row[apfel];
usw. aus.

Du bräuchtest dann nur für jede Ware dann eine neue IF-else Anweisung.
 
habe ich ja so wie du es mir geschrieben hast jetzt auch mal gemacht

PHP:
$abfrage = "select * FROM WarenLvl where userid='$_SESSION[userid]'"; 

/* 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 == 1)
{'mein_kaffee1_wert='.$row[0];}
else {
echo 'Der User hat den Level noch nicht erreicht';
}

if ($bannane == 1)
{'mein_bannanen_wert='.$row[2];}
else {
echo 'Der User hat den Level noch nicht erreicht';
}

aber es tut sich nichts
 
alle anderen Waren die noch Null sind sollten ja Blockiert sein. oder zumindetsens ohne Funktion oder so sein. erst nach dem erreichen des Lnächstes level soll ein ware auch frei gewschaltet werden die eins wird an die entsprechende stelle dann auch gesetzt. Aber man kann es trozdem Produzieren. wenn ich die Seite mit der abfrage direkt anwähle mit meinem Browser kommt zwar die meldung aber er zählzt trozd immer einen weiter rauf wie ich es vorher auch hatte.ich hoffe ihr versteht mich jetzt was ich meine

Du hast also irgendwo ein Update welches dir kontinuierlich deine Werte erhöht. Dann musst du dort vorher ein Select auf die Tabelle WarenLvl machen wie im letzten Post. Und nur dann ein Update der Waren machen wenn diese auch freigeschalten sind.

Am besten du zeigst mal den entsprechenden Codeteil welcher deine Waren kontinuirlich erhöht.
 
habe ich ja so wie du es mir geschrieben hast jetzt auch mal gemacht

PHP:
$abfrage = "select * FROM WarenLvl where userid='$_SESSION[userid]'"; 

/* 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 == 1)
{'mein_kaffee1_wert='.$row[0];}
else {
echo 'Der User hat den Level noch nicht erreicht';
}

if ($bannane == 1)
{'mein_bannanen_wert='.$row[2];}
else {
echo 'Der User hat den Level noch nicht erreicht';
}

aber es tut sich nichts

Da tut sich schon was aber du hast wohl das echo direckt nach dem IF vergessen. So hast du keine Ausgabe.
 
so hier mache ich das update

PHP:
$aendern = "UPDATE plus_signup Set punkte=punkte + 1 WHERE userid='$_SESSION[userid]'";
$update = mysql_query($aendern);
$apfel = "UPDATE plus_signup Set Apfel=Apfel + 1 WHERE userid='$_SESSION[userid]'";
$update = mysql_query($apfel);

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 Apfel = $apfel  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";
            }
        }
    }
}


habe dann jetzt mal so gemacht

PHP:
$abfrage = "select * FROM WarenLvl where userid"; 

/* Abfrage senden - bei Bedarf anpassen */ 
$result = mysql_query("select * from WarenLvl where userid") 
  or die ("Abfrage fehlgeschlagen ...<br><br>"); 

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


if echo ($kaffee == 0)
{'mein_kaffee1_wert='.$row[0];}
else {
echo 'Der User hat den Level noch nicht erreicht';
}

if echo ($bannane == 0)
{'mein_bannanen_wert='.$row[2];}
else {
echo 'Der User hat den Level noch nicht erreicht';
}


$aendern = "UPDATE plus_signup Set punkte=punkte + 1 WHERE userid='$_SESSION[userid]'";
$update = mysql_query($aendern);
$apfel = "UPDATE plus_signup Set Apfel=Apfel + 1 WHERE userid='$_SESSION[userid]'";
$update = mysql_query($apfel);

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 Apfel = $apfel  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";
            }
        }
    }
}
 
Zuletzt bearbeitet:
Zurück