Dynamisches Anzeigen von Monaten und Spielerdaten

  • Heyho.


    //Edit


    Bin jetzt realtiv weit und hab nur ein Problem.


    Es ist ne Tabelle mit Monaten und CHECKBOXEN drunter. Wenn man schon bezahlt hat sind die schon von vornherein angeklickt oder halt nicht wenn man noch nicht bezahlt hat.
    Man selber als Admin kann Haken entfernen und zufügen wenn jmd. zB neu bezahlt hat.


    Das Problem ist nur es wird nicht gespeichert.
    Der gesamte Stock wird aber aufgerufen weil die $success Nachricht generiert und angezeigt wird.
    Also schätze ich im Code ist was falsch.



    - Tom



    2 Mal editiert, zuletzt von Tomsen ()

  • PHP
    isset($_POST['m10'])


    Wenn ich mich recht erinnere gibt das true zurück egal ob die Checkbox aktiv (=Häkchen) ist oder nicht. Du musst auch auf den Wert prüfen, den du bei der Checkbox angegeben hast. Sprich

    HTML
    <input type="checkbox" name="m10" value="1" />


    PHP
    if(isset($_POST['m10']) && $_POST['m10'] === '1') { $m10c = 1; } else { $m10c = 0; }



    Kann mich da allerdings auch irren.

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • Wieso fragst du dann aber isset und die Variable zusammen ab?
    Und wenn immer true gesendet wird, dann wird doch auch immer 1 gesendet oder wie muss ich das verstehen?


    Ich habe mal eine Variable beim speichern (zB. $m10C) gegen eine 1 ausgetauscht. und das speicherts auch nicht.
    Also liegts nicht an den Variablen sondern irgentwie am query oder?


    - Tom

  • Also liegts nicht an den Variablen sondern irgentwie am query oder?


    Wieso...machst du mal keinen print-Debug, dann siehst du doch, wo das Problem ist :huh:


    Schreib das mal so:


    PHP
    $sql = "UPDATE payments SET m10 = '".$m10c."', m9 = '".$m9c."', m8 = '".$m8c."', m7 = '".$m7c."', m6 = '".$m6c."', m5 = '".$m5c."', m4 = '".$m4c."', m3 = '".$m3c."', m2 = '".$m2c."', lastmonth = '".$m1c."', currmonth = '".$m0c."', nextmonth = '".$m01c."', p2 = '".$m02c."', p3 = '".$m03c."', p4 = '".$m04c."', p5 = '".$m05c."' WHERE name = '".$rname."'";
    mysql_query($sql);
    print($sql);


    Im übrigen hat maddin recht, du musst auch prüfen, welchen Wert du übergibst und nicht nur, ob es existiert oder nicht, hier ein Beispiel:


    PHP
    if(isset($_POST['m10'])) $m10c = ($_POST['m10'])?1:0;


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Kaliber Ich war davon ausgegangen das isset angibt ob ein häckchen gesetzt wurde oder nicht.
    Also praktisch wie beim submit button.


    So hab ichs auch mehrmals im Internet gelesen. ?(
    Aber ok ich versuchs mal.


    Was bedeutet das?


    SQL
    ?1:0


    Hab ich ja noch nie gesehen.


    Mit dem Code für die Checkboxen stimmt was nicht, da zeigts mir ne weiße Seite an.
    Habs jetzt so:


    SQL
    if(isset($_POST['m10'])) { $m10c = ($_POST['m10'])?1:0; }


    Seite geht aber gespeichert wird immer noch nix in der DB


    - Tom



    2 Mal editiert, zuletzt von Tomsen ()

  • Kaliber Ich war davon ausgegangen das isset angibt ob ein häckchen gesetzt wurde oder nicht.


    isset überprüft nur, ob diese POST Variable existiert, nicht welchen Wert sie enthält ;)


    Hab ich ja noch nie gesehen.


    Dann wirds aber mal Zeit, dass ist der sog ternary operator


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ah danke dir.


    Das wird mir beim Absenden des Formulars jetzt mit ausgegeben:


    UPDATE payments SET m10 = '1', m9 = '1', m8 = '1', m7 = '1', m6 = '1',
    m5 = '1', m4 = '1', m3 = '1', m2 = '1', lastmonth = '', currmonth = '',
    nextmonth = '', p2 = '', p3 = '', p4 = '', p5 = '' WHERE name = ''


    Irgentwie ist bei m2 Schluss. Die Haken müssten eigentlich bis p3 gehen und p4 und 5 müssten null beinhalten. ?(


    - Tom


    //Edit: Weiß keiner ne Lösung? Ich weiß nicht wieso am "lastmonth" nurnoch = " angezeigt wird und aber kein Wert mehr mit angegeben wird. Der Code von m 10 - m2 ist gleich mit den danachfolgenden...



    3 Mal editiert, zuletzt von Tomsen ()

  • So ist der aktuelle Code:


    PHP
    if(isset($_POST['send'])){		if(isset($_POST['m10'])) { $m10c = ($_POST['m10'])?1:0;}		if(isset($_POST['m9'])) { $m9c = ($_POST['m9'])?1:0;}		if(isset($_POST['m8'])) { $m8c = ($_POST['m8'])?1:0;}		if(isset($_POST['m7'])) { $m7c = ($_POST['m7'])?1:0;}		if(isset($_POST['m6'])) { $m6c = ($_POST['m6'])?1:0;}		if(isset($_POST['m5'])) { $m5c = ($_POST['m5'])?1:0;}		if(isset($_POST['m4'])) { $m4c = ($_POST['m4'])?1:0;}		if(isset($_POST['m3'])) { $m3c = ($_POST['m3'])?1:0;}		if(isset($_POST['m2'])) { $m2c = ($_POST['m2'])?1:0;}		if(isset($_POST['m1'])) { $m1c = ($_POST['m2'])?1:0;}		if(isset($_POST['m0'])) { $m0c = ($_POST['m0'])?1:0;}		if(isset($_POST['m01'])) { $m01c = ($_POST['m01'])?1:0;}		if(isset($_POST['m02'])) { $m02c = ($_POST['m02'])?1:0;}		if(isset($_POST['m03'])) { $m03c = ($_POST['m03'])?1:0;}		if(isset($_POST['m04'])) { $m04c = ($_POST['m04'])?1:0;}		if(isset($_POST['m05'])) { $m05c = ($_POST['m05'])?1:0;}		/*if(isset($_POST['m10'])) { $m10c = 1; } else { $m10c = 0; }		if(isset($_POST['m9'])) { $m9c = 1; } else { $m9c = 0; }		if(isset($_POST['m8'])) { $m8c = 1; } else { $m8c = 0; }		if(isset($_POST['m7'])) { $m7c = 1; } else { $m7c = 0; }		if(isset($_POST['m6'])) { $m6c = 1; } else { $m6c = 0; }		if(isset($_POST['m5'])) { $m5c = 1; } else { $m5c = 0; }		if(isset($_POST['m4'])) { $m4c = 1; } else { $m4c = 0; }		if(isset($_POST['m3'])) { $m3c = 1; } else { $m3c = 0; }		if(isset($_POST['m2'])) { $m2c = 1; } else { $m2c = 0; }		if(isset($_POST['last'])) { $m1c = 1; } else { $m1c = 0; }		if(isset($_POST['curr'])) { $m0c = 1; } else { $m0c = 0; }		if(isset($_POST['next'])) { $m01c = 1; } else { $m01c = 0; }		if(isset($_POST['p2'])) { $m02c = 1; } else { $m02c = 0; }		if(isset($_POST['p3'])) { $m03c = 1; } else { $m03c = 0; }		if(isset($_POST['p4'])) { $m04c = 1; } else { $m04c = 0; }		if(isset($_POST['p5'])) { $m05c = 1; } else { $m05c = 0; } */		$sql = "UPDATE payments SET m10 = '".$m10c."', m9 = '".$m9c."', m8 = '".$m8c."', m7 = '".$m7c."', m6 = '".$m6c."', m5 = '".$m5c."', m4 = '".$m4c."', m3 = '".$m3c."', m2 = '".$m2c."', lastmonth = '".$m1c."', currmonth = '".$m0c."', nextmonth = '".$m01c."', p2 = '".$m02c."', p3 = '".$m03c."', p4 = '".$m04c."', p5 = '".$m05c."' WHERE name = '".$name."'";		mysql_query($sql);		print($sql);		$success = '<div class="alert alert-success" role="alert"> <b>Erledigt!</b> Deine &Auml;nderungen wurden gespeichert! '.$m03c.' '.$m04c.' </div>';  	}


    Ich weiß echt nicht woran es beim speichern scheitert. :S


    - Tom

  • Du brauchst keine extra variable, da liegt der unterschied zu pawn, du kannst es direkt im query machen.
    Lass dir mal den error printen

    PHP
    mysql_query("UPDATE payments SET m10 = '".$m10c."', m9 = '".$m9c."', m8 = '".$m8c."', m7 = '".$m7c."', m6 = '".$m6c."', m5 = '".$m5c."', m4 = '".$m4c."', m3 = '".$m3c."', m2 = '".$m2c."', lastmonth = '".$m1c."', currmonth = '".$m0c."', nextmonth = '".$m01c."', p2 = '".$m02c."', p3 = '".$m03c."', p4 = '".$m04c."', p5 = '".$m05c."' WHERE name = '".$name."'")or die(mysql_error());
  • Da hab ich keinen. Mach alles über den Webspace.


    Evlt. sollt ich das Update mal ausklammern und nur zum test ne andere MySQL Funktion nehmen die die Werte in ne Tabelle speichert?


    //Edit: Es werden trotzdem nur noch nullen übergeben. O.o
    Die Mittlere Variable müsste aber 1 sein.


    SQL
    INSERT INTO payments (m10, p4, p5) VALUES ('', '', '')


    Hat keiner nen Lösungsansatz wieso die Variablen nicht komplett übergeben werden? :/


    - Tom



    3 Mal editiert, zuletzt von Tomsen ()

  • denke du hast nen int als datentyp oder? dann brauchst du die ' ' nicht.

    Mit freundlichen Grüßen
    Developer
    Go/Python Developer | ehm. Webdeveloper | Fachinformatiker Anwendungsentwicklung
    Arbeitet in einem cloudigen Umfeld bei einem der größten deutschen Rechenzentrumsbetreibern

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen