Auswertung von Listenfeldern funktioniert nicht

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

  • Auswertung von Listenfeldern funktioniert nicht

    Hallo,


    Ich muss eine Bücherdatenbank für unsere Schulbibliothek erstellen und in php und mysql programmieren.
    Ich habe eine Eingabe Maske in der ich das zu zuchende Wort eingebe. und daneben habe ich ein Listenfeld indem ich angeben kann in wo er danach suchen soll ( Autor, Titel, Genre etc).

    Ich habe das so gelöst, dass ich abfrage welches Feld des Listenfeldes Ausgewählt wurde und er damach dann die sql-Abfrage ändert.

    Nun klappt das aber nicht. Er igoriert die if-Strucktur und schickt immer den selben String an die MysqlDB.

    Vielleicjt mach ich ja bei der Auswertung des Listenfeldes irgendetwas falsch? Oder es ist irgend ein murks im php-Code.

    Hier die Quelltexte von dem Formular
    PHP-Code:

    <html>
    <
    head>
    <
    title></title>
    </
    head>
    <
    body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">

     <
    br><br><br><br><br><br><br><br><br><br><br>
    <
    div align="center">
    <
    table >
    <
    tr>
     <
    td><form action="search.php" method="post">
     <
    input type="Text" name="sstring" size="50" maxlength="50">
      </
    td>
     <
    td>
     <
    select name="liste" size="">
         <
    option value"autor">Autor</option>
         <
    option value"titel">Titel</option>
         <
    option value"genre">Genre</option>
         <
    option value"stichwort">Stichwort</option>
     </
    select>
     </
    td>
      </
    tr>
    </
    table>
    <
    input type="Submit" name="suchen" value="Suchen">
     </
    form>
    </
    div>


    </
    body>
    </
    html
    Und nun das PHP-Script.
    PHP-Code:

    <?php
    error_reporting
    (E_ALL);
    include (
    'connect.php');

    mysql_select_db("movedb");

    if(
    $_POST['liste']='autor')
    {
        
    $sql"select titel,Autor_Name,Autor_Vorname,Ausgabe,Stichwort from bücher where Autor_Name like'$_POST[sstring]%' ";
             if(!
    $sql) echo "Es Konte Kein Buch mit dem Autor. $_POST[sstring]. gefunden werden";
             }
    elseif(
    $_POST['option']='titel')
    {
     
    $sql"select titel,Autor_Name,Autor_Vorname,Ausgabe,Stichwort from bücher where titel like'$_POST[sstring]%' ";
     if(!
    $sql) echo "Es Konte Kein Buch mit dem Titel. $_POST[sstring]. gefunden werden";
     }

    else die(
    'Scheiße');

    $result mysql_query($sql) or die(mysql_error());

    while(
    $row mysql_fetch_array($result))
          {
                 echo 
    $row['Autor_Name'];
                echo 
    $row['titel'] . "<br>";
          }




    ?>
    Ich hoffe ihr könnt mir helfen. Danke Schön

  • #2
    Re: Auswertung von Listenfeldern funktioniert nicht

    = != ==

    (Oder für Dummies: Eine Zuweisung ist etwas anderes als ein Vergleich.)


    Und deine "Fehlerbehandlung" ist auch Käse.
    PHP-Code:
    $sql"...";
             if(!
    $sql) echo "..."
    Diese Bedingung ist nie erfüllt, weil in $sql immer etwas drinsteht, was als true ausgewertet wird.

    Vielleicht wäre es etwas cleverer, wenn du auf die Anzahl der Datensätze erst Rückschlüsse ziehst, nachdem du die Datenbank abgefragt hast.
    Zuletzt geändert von wahsaga; 12.02.2007, 17:45.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Ich hab jetzt mal das script abgeändert. wenn ich jetzt das Ganze ausprobiere, dann trift keine der if-Bedingungen zu obwohl ich was richtiges eingegeben habe. Ich habe z.B. das Listenfeld autor ausgewählt. und ich erhalte trotzdem die Meldung : So ein Mist. WAs mache ich falsch?
      PS: Ich bin gerade erst PHP-Anfänger.(Man´merkts *lol*)

      PHP-Code:

      <?php
      error_reporting
      (E_ALL);
      include (
      'connect.php');

      mysql_select_db("movedb");

      if(
      $_POST['liste']=="autor")
      {
          
      $sql"select titel,Autor_Name,Autor_Vorname,Ausgabe,Stichwort from bücher where Autor_Name like'$_POST[sstring]%' ";
      }

      elseif(
      $_POST['liste']=="titel")
      {
       
      $sql"select titel,Autor_Name,Autor_Vorname,Ausgabe,Stichwort from bücher where titel like'$_POST[sstring]%' ";
      }

      else
      {
      die(
      'So ein Mist');
      }

      $result mysql_query($sql) or die(mysql_error());


      while(
      $row mysql_fetch_array($result))
            {
                   echo 
      $row['Autor_Name'];
                  echo 
      $row['titel'] . "<br>";
            }




      ?>

      Kommentar


      • #4
        Vielleicht möchtest du den Options mal ein Value geben.

        (Ein richtiges Value.)
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar

        Lädt...
        X