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

juhu die seite bleibt nicht mehr weiß jetzt werden die echos wieder angezeigt


siehe

mein_test1_wert=4&mein_test2_wert=179&mein_test3_wert=Sebastian&mein_test4_wert=10&mein_test5_wert=0&mein_besitz1_wert=0&mein_besitz2_wert=0&mein_besitz3_wert=0

aber in meine WarenLvl wird nichts eingetragen die werte bleiben alle null ist das richtig?
 
Habe da mal noch ne Frage bevor wir das NULL Problem angehen.

Du machst insgesamt 3mal fast die selbe Select-Abfrage aber ansich brauchst du diese nur ein einziges mal. Auserdem verwendest du beim auslesen der Datenbank die selben Variablennamen welche dann teils später wieder überschrieben werden.
Eigentlich müsste es so doch vollkommen reichen oder?

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

$rsult = mysql_query("SELECT Level, punkte FROM plus_signup where userid='$_SESSION[userid]'");  

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


// 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;
        $NewWare=1; 
        break;
    case $punkte >= 15 && !($Level >= 1): 
        $levelNeu=1; 
        $PullerNeu=5; 
        $kaffee=1;
        $NewWare=1;
        break; 
    case $punkte >= 25 && !($Level >= 2): 
        $levelNeu=2;
        $PullerNeu=5;
        $bannane=1;
        $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 Banane= $banane, 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";
            }
        }
    }
} 

/*
Die Ausgabe sollte entweder ans Ende oder besser gleich ganz woanders hin
echo "Deine Punkte={$punkte}";
echo "Deine Level={$Level}";
*/

?>

Zu den Werten:
Nach diesem Script sollte eigentlich je nach erreichen des Levels an entsprechender Stelle dann eine Eins stehen. Wenn auch nix in der Tabelle in PHPMyAdmin steht dann mach mal folgendes an entsprechender Stelle:
PHP:
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 Banane= $banane, Kaffee = $kaffee, 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";
            }
        }
    }
}


Du schreibst übrigens im Update Banane= $banane überall sonst schreibst du bannane.
 
Zuletzt bearbeitet:
was heißt an entsprechender stelle? ich habe nur diese eine datei bei mir im moment. Ausgenommen sind die datein, die für das aufzählen von den punkte zusätzlich sind aber die sina alle gleich es wird nur eben in jeder datei eine andere spalte geupdatet. bannanen einen datei apfel eine datei und kaffee e9ine datei. soll ich den 2 code auch in diese datein mit einbauen
PHP:
$aendern = "UPDATE plus_signup Set punkte=punkte + 1 WHERE userid='$_SESSION[userid]'";
$update = mysql_query($aendern);
$kaffee = "UPDATE plus_signup Set kaffee=kaffee + 1 WHERE userid='$_SESSION[userid]'";
$update = mysql_query($kaffee);

so sieht die datei werte 2a aus und davon habe ich bisher 3 eine für kaffee eine für bannanen und eine für apfel.

also müsste ich es entsprechen anderns aufbauen oder? weil diese nur die updates machen mehr nicht (die punkte immer um eines erhehö es nach aktion.


Das problem ist jetzt obwohl ich die tabelle WarenLvl habe kann ich nichts eintragen . eintragen schon aber sie werden nicht dem entsprechenden user angezeit und das ist das problem. In die neue tabelen WarenLvl schreiben kein problem auch die Punkte und Pullern kann ich in eine neue tabelle machen sie werden aber nicht dem user der sie dann hat zugeordnet weil in den tabellen wegen samllint nur nullen stehen bzw nacher die waren mehr nicht.
 
Zuletzt bearbeitet:
was heißt an entsprechender stelle?
Wenn du mal den Code vergleichst stellst du fest das es im Grunde der selbe Code ist bis auf
PHP:
echo $update;
            if (mysql_errno()) {        
                echo mysql_errno() . ": " . mysql_error(). "\n";
            }
und
PHP:
echo $insert;
Also musst du den Code nur an entsprechender Stelle ergänzen.
Das dient dazu um Fehler beim SQL-Statements festzustellen.

Hast du das Wort banane mit bannane mal ersetzt im Update? Es gibt keine Spalte banane in deiner Tabelle.


Das problem ist jetzt obwohl ich die tabelle WarenLvl habe kann ich nichts eintragen . eintragen schon aber sie werden nicht dem entsprechenden user angezeit und das ist das problem. In die neue tabelen WarenLvl schreiben kein problem auch die Punkte und Pullern kann ich in eine neue tabelle machen sie werden aber nicht dem user der sie dann hat zugeordnet weil in den tabellen wegen samllint nur nullen stehen bzw nacher die waren mehr nicht.

Kannst du das bitte nochmal umformulieren. Es fällt mir schwer das richtig zu verstehen.
Um das nochmal klarzustellen: Die Tabelle WarenLvl sollte gemäss deinem Wunsch nur festlegen welche Waren der User nutzen kann. 0 für nein und 1 für ja.

Wolltest du dann also prüfen ob der User diese Ware nun nutzen kann musst du ein Select machen schauen ob die Ware 0 oder 1 ist.
__________________________________________________________


Ich hab ein wenig das Gefühl das du dich etwas übernimmst mit deinem Projekt. Dir fehlt eine Menge Wissen zu PHP und programmieren allgemein. Denke ich jedenfalls. Es wird den meisten zwar möglich sein dir auf speziefische PHP-Problemen zu antworten nicht aber dir das meiste deiner Projekt bezogenen Scriptlogik detailiert zu erklären. Das darfst mir jetzt nicht krumm nehmen aber das hätte dir früher oder später ohnehin jemand gesagt.
 
hey keine sorge ich nehme es dir auch nicht krum. mag sein das es etwas arg viel ist so ein projekt aber ich habe doch zeit um es zu elrnen es muss ja nicht morgen fertig sein oder? Es geht eben eines nach dem anderen und so komme ich dann stück für stück weiter. ich habe da sehr sehr viel ruhe und gelassen heit drinne. viele habe ich selber raus bekommen. aber manches da verzeifel ich dann . dann mache ich es solange bis ich es geschaft habe. aber das wird dann schon werden. Einges was ihr mir geraten habt konnte ich für mich abwandeln und so einiges selber raus bekommen. das mit den leveln und neu waren ist eben für das maximum wenn das gelöst ist dann ist die schlimmste hürde genommen und auf den rest kann ich dann selber aufbauen. Versuche ich zumindestens und mnachmal klappt es halt nicht sofort aber ich versuche es dann solange bis ich es geschaft habe.
 
Einges was ihr mir geraten habt konnte ich für mich abwandeln und so einiges selber raus bekommen. das mit den leveln und neu waren ist eben für das maximum wenn das gelöst ist dann ist die schlimmste hürde genommen und auf den rest kann ich dann selber aufbauen. Versuche ich zumindestens und mnachmal klappt es halt nicht sofort aber ich versuche es dann solange bis ich es geschaft habe.

Versuche mal dein momentanes Problem genauer zu beschreiben. Fehlermeldungen und insbesondere relevante Codestellen wären dann zusätzlich besonders aufschlussreich.
Wenn das nichts mit dem Ursprungsthema/Thread zu tun hat wäre es sicher von Vorteil du würdest einen neuen Thread eröffnen der sich um dein momentanes Problem dreht. So lange du dann nicht dauernd ein neues Thema eröffnest würde dies vermutlich andre User hier mehr annimieren dir zu helfen, da die letzten Posts ja fast nix mehr mit dem Anfangsthema zu tun haben.
Is nur nen Tip wenn du weisst wie ichs meine :)

Grüsse Joe.
 
ich weis was du meinst ja. Aber das hat ja noch mit dem ursprungsproblem zu tun. Das wicxhtigste ist mir jetzt und dasist für mich auch erstmal die letzte hürde mit den leveln neuen ware geben.

alles andere was dann kommt kann ich mir dadraus abgucken.

und es für mich entsprechend anpassen aber das mit den leveln und neue ware das ist noch ein extreme hürde für mich leider. Ich baue die von euch gepostetten codes ein aber es geht halt noch nicht. aber das wird schon hoffe ich mal.
 
juhu hab es soweit hin bekommen jetzt wird bei neuem level eine ware auf eins gesetzt. jetzt muss ich nur die abfrage mit dem selct machen das die waren auch blockiert ist solange
und das muss ich ans flash weiter geben
wie ich das ins flash bekomme ist das kleinste problem nur eben die abfrage eben noch nicht eines nach dem anderen : EINE WEITER FRAGE DARF ICH EUCH NAMENTLICH IM GAME NENNE? ich möchte eine rubrik hinzufügen die mit gewrikt haben und mir geholfen haben und ich möchte mich bei euch damit bedanken.
 
Und woran lags am falschen Spaltennamen?

Die Abfrage sollte wirklich einfach sein. Einfach ein neues Select auf die Tabelle WarenLvl mit den jeweiligen Spalten der Waren WHERE UserID.
Dann das Ergebniss auslesen und den Variablen zuweisen.
$row = mysql_fetch_assoc($result);
$bannaneLvl= $row[bannane];
$Ware2Lvl= $row[Ware2];

Zuletzt ein einfaches
IF ($bannaneLvl ==1) {
ans flash weiter geben
}
else {
echo "Der User hat den Level noch nicht erreicht";
}

So in etwa könntest du das machen.

Kannst meinen Nick gerne erwähnen oder wenn du magst mich verlinken. End of Time http://endtime.kilu.de/index.php
 
Zuletzt bearbeitet:
keine ahnung woran es gelegen hat . Ich habe einfach mal einen tag nichts gemacht und habe mich dannn als erstes in meine datenbank eingeloggt und ins game. Dannach habe ich gesehen als ich eingeloggt war im game das die warentable auf einmal geändert war. coool oder. ich habe wirklich am code selber nichts gemacht bis auf das banane in bannane gemacht das wars . aber trozdem coool
 
Zurück