Auswahl list von mysql

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Auswahl list von mysql

    Guten Tag,

    ich habe ein Problem beim auslesen einer Tabelle, deren Inhalt ich in eine Auswahliste eingetragen haben moechte.
    So wie mein Code jetzt steht, gibt er mir nur den letzten Wert der Tabelle aus (statt alle verfuegbaren Werte).

    die Tabelle sieht so aus:

    mysql> select sname,id from clients;
    +-------+----+
    | sname | id |
    +-------+----+
    | Kent | 2 |
    | Wayne | 36 |
    | Mouse | 9 |
    | Doo | 37 |
    +-------+----+

    mein code:


    <?php
    include ('open.inc.php');

    $sql = "select sname,id from clients";
    $result = mysql_query($sql);

    while ($clientrow = mysql_fetch_array($result))
    {
    $clientopt = "<option value=\"$clientrow[id]\">$clientrow[sname]</option>";
    // echo $clientopt;
    }
    ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Client: <br />
    <select name ="client">
    <<?php echo $clientopt ?>>
    </select>


    wenn ich mir die <option value.... > direkt in der While schleife anzeigen lasse (mit echo "<option value....>" dann funktionierts.

    Bin dankbar fuer jede Hilfe

  • #2
    wenn ich mir die <option value.... > direkt in der While schleife anzeigen lasse (mit echo "<option value....>" dann funktionierts.
    und genau so musst du es auch korrekterweise machen!

    derzeitig überschreibst du auch nur deinen wert in der while-schleife. damit ist es ja auch logisch, dass nur noch der letzte wert gezeigt werden kann.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Danke Abraxax,

      ich wollte eigentlich die Werte der Auswahllist auserhalb der while schleife haben weil die form dann etwas uebersichtlicher wirkt, Ich habe jetzt den php code einfach in die form eigefuegt.

      Danke nochmals

      Kommentar


      • #4
        du kannst das auch ausserhalb generieren. dagegen spricht ja nichts. nur solltest du deine werte halt nicht überschreiben.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Ich lasse es erstmal in der Schleife (da bin ich sicher dass es funktioniert :-)
          Ich wollte noch einen default Eintrag generieren wlecher vom GET am Anfang des scripts uebertragen wird und habe mein script folgendermassen erweitert:

          Client:
          <select name ="client">
          <?php
          include ('open.inc.php');

          $sql = "select sname,id from clients";
          $result = mysql_query($sql);

          while ($clientrow = mysql_fetch_array($result))
          {
          echo "<option selected>\"<?php echo {$_POST['id']} ?>\"</option>";
          echo "<option value=\"$clientrow[id]\">$clientrow[sname]</option>";
          }
          ?>
          </select>

          Erwarten wuerde ich jetzt:

          <ID die ich mit GET uebergeben habe>
          Client Name 1
          Client Name 2
          Client Name 3
          etc.

          statt dessen kriege ich:
          ''
          Client Name 1
          ''
          Client Name 2
          ''
          Client Name 3
          etc.

          Die Id wird (dachte ich) korrekt uebergeben denn am Anfang des script habe ich:
          <?php

          include ('open.inc.php');
          if ($_GET['id'] > 0)
          {
          $sql = "select * from work where id = '" . $_GET['id'] . "'";
          echo "sql: $sql<br>";
          $result = mysql_query($sql);
          // echo mysql_error();

          $items = mysql_fetch_array($result);
          foreach ($items as $key => $value)
          {
          $_POST[$key] = $value;
          }
          }

          und der echo zeigt die erwartete Zeile (also z. B. select * from work where id = '3')
          Ich habe dann
          echo "<option selected>\"<?php echo {$_POST['id']} ?>\"</option>";
          mit
          echo "<option selected>Test</option>"; ersetzt und krieg jetzt

          Test
          Client Name 1
          Test
          Client Name2
          etc.
          Ich habe also zwei probleme.
          Koennte mir jemand sagen, ob es ueberhaupt moeglich ist eine <Option selected> einzufuegen, wenn man wie ich die <Option> Liste generiert?
          Wieso das Post nicht klappt, darueber muss ich noch gruebeln....

          Vielen Dank

          Kommentar


          • #6
            hmm, war wohl etwas spaet gestern. Muss natuerlich den <option selected ... aus der while schleife rausnehmen.

            na ja erst denken, dann posten

            bleibe mir noch das problem mit dem $_POST werd mich melden wenn ich nicht mehr weiterkomm

            Gruss

            Kommentar

            Lädt...
            X