Ralf: Datenbank + Checkbox und Weiterverabeitung

Hallo zusammen,

ihr seid meine letzte Hoffnung, könnte mir evtl. jemand helfen, da ich gerade völlig auf dem Schlauch stehe.

Mein Projekt wo ich verwirklichen möchte, ist eine Liste, wo sich die Leute anmelden können.
Dies ganze versuche ich mit hilfe von PHP und MySQL. Begonnen habe ich mit einer Datenbankabfrage wo erstmal alle Datensätze aufgelistet werden die es gibt. Dazu muß ich evtl. noch erwähnen, das ich mit einer verschachtelten Datenbank arbeite. Denn ich habe mehrere Hauptkategorien und dazu jeweils auch noch diverse Unterpunkte. (Jedoch dies ist nicht mein Problem, denn dies habe ich schon hinbekommen). Jetzt aber möchte ich gerne das die Leute sich zu den einzelnen Punkten Anmelden bzw. diese Reservieren können. Dies wollte ich eigentlich mit einer Checkbox erledigen. Und dann wenn man z.B. die Punkte 1.2 und 2.3 sowie 2.4 ausgewählt hat und den Submit Button drückt diese auf einer neuen Seite dann nochmals angezeigt werden.
(Danach kann man dann seinen Namen und eMail-Adresse angeben und dies per e-Mail an mich schicken. Zeitgleich wird in der Datenbank per Update Befehl der Wert für die verfügbaren "Plätze" um eins reduziert!!) Soweit zu meiner Vorstellung!!

Nun hier also die erste Datenbankabfrage (wobei dies jetzt schon die Unterpunkte sind):

...
     $output_ukat .= " <tr class="row">\n";
       $output_ukat .= "  <td align="left">".($i+1).".".($j+1)."</td>\n";
       $output_ukat .= "  <td align="left">".$ukat[$j]['Datum']."</td>\n";
       $output_ukat .= "  <td colspan="2" align="right">".$ukat[$j]['Inhalt']."</td>\n";
       $output_ukat .= "  <td align="right"><input type="checkbox" name="ID[]" value="".$ukat['ID'].""></td>\n";
     $output_ukat .= "  </tr>\n";
     ...

Aber genau diese Zeile:
<input type="checkbox" name="ID[]" value="".$ukat['ID']."">
Ist nun das Problem!! Denn wenn ich das so angebe, zeigt es mir eine "weiße Seite" an??!!

Meine Frage nun, was ist hier Falsch?? bzw. was muss ich umschreiben oder wie muss ich auch die andere php Seite aufbauen, das ich dort hergehen kann und mir die Inhalte von den ausgewählten ID Zeilen den Name, Ort, Uhrzeit, ... anzeigen zu lassen??

Hoffe das war jetzt irgendwie verständlich?!
Danke schon jetzt für evtl. Hilfen

cu Ralf

  1. Hallo,

    Nun hier also die erste Datenbankabfrage
    $output_ukat .= " <tr class="row">\n";
    ...

    Das ist KEINE Datenbankabfrage.

    LG, Kalle

    1. Hallo,

      Nun hier also die erste Datenbankabfrage
      $output_ukat .= " <tr class="row">\n";
      ...

      Das ist KEINE Datenbankabfrage.

      LG, Kalle

      :-) Nein da hast du recht!! den rest habe ich weggelassen (da ich mit einem Templatesystem arbeite und diese Variable $output_ukat später in ein tpl exportiert wird?! Wiso ist das ein Problem???), da ich mit dem keine Probleme habe. Jedoch wenn du/ihr es braucht kann ich es gerne posten!!

      cu Ralf

      1. :-) Nein da hast du recht!! den rest habe ich weggelassen (da ich mit einem Templatesystem arbeite und diese Variable $output_ukat später in ein tpl exportiert wird?! Wiso ist das ein Problem???), da ich mit dem keine Probleme habe. Jedoch wenn du/ihr es braucht kann ich es gerne posten!

        cu Ralf

        Warum hilfst Du dir nicht selbst...
        1. Wie sieht der Quelltext Deiner weissen seite aus?
        2. Wie lautet die Datenbankabfrage?
        3. Wie liest Du Felder aus der Datenbank aus?
        4. Warum schickst Du uns hier html stücke wenn Du ein Abfrage Problem hast?

        Früher gabs hier nette msg boxen inzwischen werden diese Dinger allegemin für zu agressiv gehalten.

        TomIRL

        1. Warum hilfst Du dir nicht selbst...

          1. Wie sieht der Quelltext Deiner weissen seite aus?
          2. Wie lautet die Datenbankabfrage?
          3. Wie liest Du Felder aus der Datenbank aus?
          4. Warum schickst Du uns hier html stücke wenn Du ein Abfrage Problem hast?

          Früher gabs hier nette msg boxen inzwischen werden diese Dinger allegemin für zu agressiv gehalten.

          TomIRL

          Hallo TomIRL,

          sorry wenn ich hier evtl. nicht ganz richtig gepostet habe. War wirklich nicht meine Absicht!

          zu 1: leider nicht vielversprechend:

          wenn ich mit dieser select.php datei arbeite:

          <?php
          if (isset($_REQUEST['ID'])) {
            reset($_REQUEST['ID']);
            foreach ($_REQUEST['ID'] as $k => $v) {
              print "$k "->" $v\n";
            }
          } else {
            print "keine Buttons ausgewählt\n";
          }

          So: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
          <HTML><HEAD>
          <META http-equiv=Content-Type content="text/html; charset=iso-8859-1"></HEAD>
          <BODY></BODY></HTML>

          (Diese ist noch nicht wirklich ausprogrammiert jedoch wollte ich erst versuchen ob er mir überhaupt etwas ausgibt?!)

          zu 2. Also hier meine Datenbankanfrage/n bzw. meine ganze Datei: (Aber es ist noch nicht ganz "sauberer Code")

          <?php

          error_reporting(E_ALL);

          require_once("./inc/config.php");

          $db = new chC_mysql(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DATABASE);

          $tpl = new ralf_template("templates/liste.tpl.htm");

          # Listen
           $h_kat = $db->query("SELECT
                          work.ID,
                          work.Event,
                          work.Datum,
                          users.Name,
                          users.Email
                      FROM
                          work,
                          users
                      WHERE
                          work.Autor = users.ID
                      ORDER BY
                          work.Datum DESC");
           $h_kat = $db->fetch_assoc($h_kat, 'multiple');
           if(count($h_kat) > 0)
           {
            $output_worksheet = '';
            $output_worksheet .= "<form action="select.php" method="POST">";

          for($i=0;$i<count($h_kat);$i++)
            {
             //$rowclass = (!(1 & $i)) ? "row1" : "row2";

          $output_worksheet .= "<tr><td colspan="3">&nbsp;</td></tr>\n";
             $output_worksheet .= " <tr class="rowhead">\n";
               $output_worksheet .= "  <td align="left">".$h_kat[$i]['ID'].".</td>\n";
               $output_worksheet .= "  <td align="left">".$h_kat[$i]['Datum']."&nbsp;".$h_kat[$i]['Event']."</td>\n";
               $output_worksheet .= "  <td align="right"><a href="mailto:".$h_kat[$i]['Email']."">".$h_kat[$i]['Name']."</td>\n";
             $output_worksheet .= " </tr>\n";

          $u_kat = $db->query("SELECT
               ID
               NewsID,
                              Ort,
                              Schicht,
                              SeatF,
                              SeatG
                          FROM
                              work_detail
                          WHERE
                              work_detail.WorkID = '".$h_kat[$i]['ID']."'");
             $u_kat = $db->fetch_assoc($u_kat, 'multiple');
             if(count($u_kat) > 0)
             {

          for($j=0; $j<count($u_kat); $j++)
              {
               $rowclass = (!(1 & $j)) ? "row1" : "row2";
               $output_worksheet .= " <tr class="$rowclass">\n";
                 $output_worksheet .= "  <td align="left">".($i+1).".".($j+1)."</td>\n";
                 $output_worksheet .= "  <td colspan="2" align="left">-&nbsp;<b>".$u_kat[$j]['Ort']."</b>&nbsp;".$u_kat[$j]['Schicht']."</td>\n</tr>\n";
                 $output_worksheet .= "  <tr class="$rowclass">\n<td>&nbsp;</td>\n<td align="left">&nbsp;Freie Plätze ".$u_kat[$j]['SeatF']." von ".$u_kat[$j]['SeatG']."</td>\n";
                 $output_worksheet .= "  <td align="right">Reservieren <input type="checkbox" name="ID[]" value="".$u_kat['ID'].""></td>\n";  // ".($i+1).".".($j+1)."
               $output_worksheet .= "  </tr>\n";
               $output_worksheet .= "  <tr class="$rowclass">\n<td>&nbsp;</td>\n<td colspan="2" align="left">".$u_kat[$j]['Hinweis']."</td>\n</tr>\n";

          }
             }
             else
             {
              $output_worksheet = " <tr class="row1">\n  <td colspan="3" align="center">Kein Untermenue verfuegbar</td> </tr>\n";
             }

          }

          $output_worksheet .= " <tr>\n<td colspan="3"align="center">\n<br><br>";
            $output_worksheet .= "<input class="button" type="submit" name="submit" value="Abschicken" />\n";
                  $output_worksheet .= "<input class="button" type="reset" name="submit" value="Zurücksetzen" />\n";
                  $output_worksheet .= "  </td>\n</tr>\n";
               $output_worksheet .= "</form>";

          }
           else
           {

          $output_worksheet = "<tr class="row1"><td colspan="3" align="center">Keine Besucher online</td></tr>\n";
           }
           $tpl->assign("WORK_SHEET", $output_worksheet);

          $tpl->print_template();

          ?>

          zu 4. hoffe dies ist jetzt nicht zuviel Code zwecks Netiquette, ...

          Über eine Antwort wäre ich immernoch sehr Dankbar, denn wie gesagt ich komme hier leider irgendwie nicht weiter :-(

          1. ...

            zu 1: leider nicht vielversprechend:

            wenn ich mit dieser select.php datei arbeite:

            <?php
            if (isset($_REQUEST['ID'])) {
              reset($_REQUEST['ID']);
              foreach ($_REQUEST['ID'] as $k => $v) {
                print "$k "->" $v\n";
              }
            } else {
              print "keine Buttons ausgewählt\n";
            }

            So: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
            <HTML><HEAD>
            <META http-equiv=Content-Type content="text/html; charset=iso-8859-1"></HEAD>
            <BODY></BODY></HTML>

            Nachtrag:

            Ich habe nun mal meine select.php Datei mit diesem Code gespeichert:

            <?php
                error_reporting(E_ALL);
                echo "<pre>\n";
                print_r($_POST);
                echo "</pre>\n";
            ?>

            Um zu schauen was er übergibt?!
            Das Ergebnis ist folgendes:

            Array
            (
                [ID] => Array
                    (
                        [0] =>
                        [1] =>
                    )

            [submit] => Abschicken
            )

            Das heißt doch dann, das er den value ".$u_kat['ID']." oder was vermutlich eher richtig ist, ".$u_kat[$j]['ID']." (habe beides versucht, aber immer das gleiche Ergebnis) von meiner Checkbox nicht übergeben hat?! Aber wie übergebe ich dann die ID richtig?? Bzw. möchte ich ja auf der nächsten Seite (mit der select.php) nur die vorher selektierten Einträge anzeigen? Wie müsste ich dann den Code umschreiben bzw. wie lese ich die checkboxen aus??

            Sorry aber irgendwie stehe ich da gerade auf dem Schlauch :-( und wäre über eine Hilfe von euch sehr Dankbar!