kostenloser Webspace werbefrei: lima-city


Auswertung der Checkboxen mit PHP

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    hts

    hts hat kostenlosen Webspace.

    Tag Leute!

    Im Formular hab ich folgendes verwendet:

    <form action = "gesprungen.php" method = "post">
    <? $auswahl = mysql_query ('SELECT * FROM skispringen ORDER BY weltcup DESC');
    while ($row = mysql_fetch_array ($auswahl))
    {
    $nachname = $row['nachname'];
    echo ('
    <tr>
    <td>
    <font size=2 color=#c0c0c0>
    '.$row['vorname'].'
    '.$row['nachname'].'
    ('.$row['nation'].')
    </td>
    <td>
    <font size=2 color=#c0c0c0>
    <input type="checkbox" checked name = " $nachname " value= " $nachname " >
    </td>
    ');
    }


    ?>
    </form>




    In der Auswertung (gesprungen.php):

    if ($_POST['Ahonen'])
    {
    $aendern = "UPDATE skispringen Set sprung ='j' WHERE nachname = 'Ahonen'";
    mysql_query($aendern);
    }
    else
    {
    $aendern = "UPDATE skispringen Set sprung ='n' WHERE nachname = 'Ahonen'";
    mysql_query($aendern);
    }

    Ahonen ist selbstverst?ndlich einer der Inhalte der MySQL Tabelle bei 'nachname'


    Das, was hierbei rauskommt kannst du hier nachschauen:
    http://hts.pyrokar.lima-city.de/skispringen/springen.php
    http://hts.pyrokar.lima-city.de/skispringen/gesprungen.php

    Beitrag ge?ndert am 5.01 18:41 von hts
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. derturbohummel

    derturbohummel hat kostenlosen Webspace.

    Ja, gut, aber was ist das Problem?

    Ich tippe einfach mal:

    Du willst pr?fen, ob ein H?ckchen gesetzt wurde, richtig?

    Dazu einfach gucken (in der gesprungen.php), ob der Springer mit ?bergeben wurde:
    if(isset($_REQUEST['nachname']))
  4. Autor dieses Themas

    hts

    hts hat kostenlosen Webspace.

    Ja, und da hatte ich bisher halt die
    if ($_POST[
    und damit hat es halt nicht funktioniert
  5. derturbohummel

    derturbohummel hat kostenlosen Webspace.

    Jo, is ziemlich tricky.

    Wenn das h?ckchen nicht gesetzt ist, wird das Ding einfach nicht mitgeschickt. Hab selbst auch ne Stunde an dem Problem gesessen.

    Bei Radio-Buttons is es genau das gleiche.
  6. Autor dieses Themas

    hts

    hts hat kostenlosen Webspace.

    Hm, ja, aber wie es aussieht hat es rein gar nichts ver?ndert -.-

    EDIT: 'n Freund von mir schl?gt if ($_POST['Ahonen'] == checked) vor, k?nnte das was werden?

    Beitrag ge?ndert am 5.01 19:16 von hts
  7. ?berpr?f doch einfach ob die Variable ?berhaupt existiert, also if(isset($_POST['...'])). Und je nachdem k?nnen dann weitere Aktionen erfolgen.
  8. Autor dieses Themas

    hts

    hts hat kostenlosen Webspace.

    Auch keine ?nderung, vllt. liegt es ja schon am 1. Teil!?
  9. Autor dieses Themas

    hts

    hts hat kostenlosen Webspace.

    Ich hab gelesen, dass man das eigentlich mit Arrays benutzt, also:
    [...] name = "nachname[]" value = '$nachname' [...]

    Nur bei der Auswertung br?uchte ich dann ja ein zeichen, zum ?berpr?fen, ob das Array diesen einen bestimmten nachnamen enth?lt. Gibt es so ein Zeichen?

    EDIT:
    Hab gerade was auf www.schattenbaum.net/php/arraqys.php gefunden:

    <?
    if(in_array("Tulpe",$blumen))
    {
    echo "Tulpe ist im Array enthalten.";
    }
    ?>

    Wie verbinde ich das nun mit dem Array aus der 1. Ding?

    Beitrag ge?ndert am 6.01 11:56 von hts
  10. Autor dieses Themas

    hts

    hts hat kostenlosen Webspace.

    So, das hat auch keine Ver?nderung gebracht *verzweifeltsei*

    Hab ihr noch Ideen? -.-
  11. Das mit den Arrays ist gar keine schlechte Idee, denn da ist mir was eingefallen: Ich benutze n?mlich Checkboxen um aus meinem G?stebuch mehrere Eintr?ge gleichzeitig zu l?schen. Vielleicht hilft dir das ein wenig weiter. Hier mal die Theorie:

    <input type=checkbox name=nachname[] value=$nachname checked>

    ...

    if(isset($_POST['nachname'])) // ?berpr?fen ob das Array existiert
    {
    $name2 = $_POST['nachname']; // Array umbenennen

    foreach($name2 as $k => $v) // jedem Element im Array einen Key zuweisen (wenn Checkbox dann Key)
    {
    $nachname[$k] = $v;
    }

    foreach($nachname as $k => $v) // den Key benutzen um Anweisung auszuf?hren
    {
    // deine Anweisungen, wenn du eine WHERE Bedingung drinne hast, dann muss diese wasauchimmer='$v' lauten
    }
    }

    So ich hab die das mal gleich umgeschrieben, ich hoffe es hilft dir weiter.
  12. Autor dieses Themas

    hts

    hts hat kostenlosen Webspace.

    Erm, ich versteh das mit $v nicht ganz, ich habe (glaub ich) keine bedingung! Soll ich das dann ?berall wegnehmen? Oder als leer definieren?

    EDIT:
    Die einzige bedingung war eigentlich, dass das alt "checked" war


    Bisher:
    while ($row = mysql_fetch_array (mysql_query ('SELECT * FROM skispringen')))
    {
    $nachname = $row['nachname'];
    if(isset($HTTP_POST_VARS['nname']))
    {
    $name2 = $HTTP_POST_VARS['nname'];

    foreach($name2 as $k => $v)
    {
    $nname[$k] = $v;
    }

    foreach($nname as $k => $v)
    {
    {
    $aendern = "UPDATE skispringen Set sprung ='j'";
    mysql_query($aendern);
    }
    }
    }
    else
    {
    $aendern = "UPDATE skispringen Set sprung ='n'";
    mysql_query($aendern);
    }

    Beitrag ge?ndert am 6.01 15:15 von hts
    Beitrag ge?ndert am 6.01 15:20 von hts

    Beitrag ge?ndert am 6.01 15:21 von hts
  13. Autor dieses Themas

    hts

    hts hat kostenlosen Webspace.

    Erm, ich hab grad noch n anderes Problem:

    Parse error: parse error, unexpected $ in /home/webpages/lima-city/hts/html/skispringen/gesprungen.php on line 287

    line 287 ist garantiert leer -.-

    EDIT:
    hm, scheinbar doch nicht!

    $platz ++;

    ABA WARUM???? :confused: :pissed:

    Beitrag ge?ndert am 6.01 15:45 von hts
  14. derturbohummel

    derturbohummel hat kostenlosen Webspace.

    Guck mal eine Zeile vorher. Da liegt meist die ursache des Fehlers (z. B. Klammer zu vergessen oder so)

    Zum ersten Problem: Nimm mal die Leerzeichen raus:

    <input type="checkbox" checked name = "$nachname" value= "$nachname" >
    An stelle von:
    <input type="checkbox" checked name = " $nachname " value= " $nachname " >

    Da ist ein Unterschied, wenn da leerzeichen sind, bei der Auswertung aber keine. Weil " Hannawald " nunmal ungleich "Hannawald", oder du machst einen trim auf deinen Post-Parameter, der die Leerzeichen vorne und hinten abschneidet.

    Wenns das nicht war, mach doch bitte mal einen var_dump auf $_POST und poste das Ergebnis hier.

  15. Hmm, also hier nochmal, basierend auf allen Codeschnippeln, das koplette Ding, wie ich mir das gedacht habe:

    Im Formular:

    <form action = "gesprungen.php" method = "post">
    <? $auswahl = mysql_query ('SELECT * FROM skispringen ORDER BY weltcup DESC');
    while ($row = mysql_fetch_array ($auswahl))
    {
    $nachname = $row['nachname'];
    echo ('
    <tr>
    <td>
    <font size=2 color=#c0c0c0>
    '.$row['vorname'].'
    '.$row['nachname'].'
    ('.$row['nation'].')
    </td>
    <td>
    <font size=2 color=#c0c0c0>
    <input type=checkbox checked name = $nachname[] value=$nachname>
    </td>
    ');
    }
    ?>
    </form>

    In der gesprungen.php:

    if(isset($_POST['nachname']))
    {
    $name2 = $_POST['nachname'];
    foreach($name2 as $k => $v)
    {
    $nachname[$k] = $v;
    }
    foreach($nachname as $k => $v)
    {
    $aendern = "UPDATE skispringen Set sprung ='j' WHERE nachname='$v'";
    mysql_query($aendern);
    }
    }

    Nun sollte bei jedem Springer, wo ein H?ckchen war, "sprung" in der DB auf "j" gesetzt werden. Um alle anderen auf "n" zu setzten kannst du ja UPDATE skispringen SET sprung='n' WHERE sprung='' OR sprung!='j' benutzen. Vielleicht hilft dir das ja jetzt.
  16. Autor dieses Themas

    hts

    hts hat kostenlosen Webspace.

    Danke, das problem ist beseitigt!

    Weiter Probleme:
    1.
    $nachname = $row['nachname'];
    $aendern = "UPDATE skispringen WHERE nachname = '$nachname' Set sprung ='n', d1 = '0', d2 = '0',

    springen = springen + 1, punkte = '0'";
    mysql_query($aendern);

    Das erh?hen von der Spalte 'springen' funktioniert nicht


    2.
    $nachname = $row['nachname'];

    $wcpunkte = 0;

    if ($platz == 1)
    {
    $wcpunkte = 100;
    }

    [...]

    if ($platz == 24)
    {
    $wcpunkte = 1;
    }


    $aendern = "UPDATE skispringen SET weltcup = $wcpunkte + weltcup WHERE nachname = '$nachname'";
    mysql_query($aendern);

    $platz ++;
    }

    Das sortieren nach 'punkte' abw?rts und das eintragen der WeltcupPunkte funktioniert nicht

    Beitrag ge?ndert am 6.01 23:51 von hts
  17. derturbohummel

    derturbohummel hat kostenlosen Webspace.

    Zu 1:
    springen = springen + 1, punkte = '0'";
    die Zeile geht so:
    springen (springen+1), punkte = 0";

    Zu 2:
    $aendern = "UPDATE skispringen SET weltcup = $wcpunkte + weltcup WHERE nachname = '$nachname'";

    Wahrscheinlich gleiches Problem:
    $aendern = "UPDATE skispringen SET weltcup = ($wcpunkte + weltcup) WHERE nachname = '$nachname'";

    Ich denke so m?sst das funzen.

    Wo du da was sortierst, sehe ich ehrlich gesagt nicht.
  18. Autor dieses Themas

    hts

    hts hat kostenlosen Webspace.

    sry, dass hatte ich irgendweshalb gel?scht
    hier:

    $auswahl = mysql_query ('SELECT * FROM skispringen ORDER BY punkte DESC');
    while ($row = mysql_fetch_array ($auswahl))
    {
  19. Autor dieses Themas

    hts

    hts hat kostenlosen Webspace.

    Hm, jetzt funktioniert es *sich dumm vorkomm*
    Aber auf jedenfall herzlichen Dank an alle hier

    Weiteres Problem -.-:

    $auswahl = mysql_query ('SELECT * FROM skispringen ORDER BY weltcup ASC');
    while ($row = mysql_fetch_array ($auswahl))
    {
    $nachname = $row['nachname'];
    $aendern = "UPDATE skispringen WHERE nachname = '$nachname' Set sprung ='n', d1 = '0', d2 = '0', springen = (springen + 1), punkte = '0'";
    mysql_query($aendern);
    }

    Das erh?hen von springen klappt immernoch nicht
  20. derturbohummel

    derturbohummel hat kostenlosen Webspace.

    Mysql kann das so nicht.

    Du musst dir zuerst die Zahl der "springen"-Spalte jedes Spielers holen, die dann um 1 erh?hen, und dann update machen.

  21. Mysql kann das so nicht.

    Du musst dir zuerst die Zahl der "springen"-Spalte jedes Spielers holen, die dann um 1 erh?hen, und dann update machen.

    Klar geht das. Man muss nur die Zahl, die man addieren will gleich hinter die Anweisung ohne Leerzeichen schreiben, also UPDATE skispringen SET springen=springen+1. Falls das auch nicht gehen sollte, die 1 einfach mal in ' ' schreiben. Bei mir gehen beide Varianten ohne Probleme.
  22. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!