MySQL Tabelle durchsuchen ....

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

  • MySQL Tabelle durchsuchen ....

    hallo

    hab da ien problem mit dem durchsuchen einer Tabelle von MySQL .....

    Als Fehler wird folgendes angezeigt:
    You have an error in your SQL syntax near '' at line 1

    she aber keinen fehler dort, hoffe ihr schon !

    hier ist der code:
    PHP-Code:
    <html>
    <head>
    </head>

    <body>
    Ihre Suchresultate:
    <p>
    <?php
        $db 
    mysql_connect ("****""****""***");
        
    mysql_select_db("****",$db);
        
    $query "SELECT artikelnummer, artikelname, ve FROM produkte WHERE ";
        for(
    $i=0$i<count($eingabe_array); $i++){
            
    $query .= "(artikelnummer like '%".$eingabe_array[$i]."%' or artikelname like '%".$eingabe_array[$i]."%')";
            
            if(
    $i<count($eingabe_array)-1){
                
    $query .= ' and ';
            }
            
        }

        
    $result mysql_db_query('db',$query)or die(mysql_error());
        
    $num_artikel mysql_num_rows($result);
        for(
    $i=0$i<$num_artikel$i++){
            
    $artikelnummer mysql_result($result,$i,'artikelnummer');
            
    $artikelname mysql_result($result,$i,'artikelname');
            
    $ve mysql_result($result,$i,'ve');
        echo 
    "<table width=\"600\" height=\"45\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
        echo 
    "<tr>";
        echo 
    "<td width=\"100\"><font size=\"2\" face=\"Arial\">Artikelnummer:</font></td>";
        if (
    is_file("/pfad/".$feld["artikelnummer"]."jpg")==1)
        {
        echo 
    "<td width=\"350\"><font size=\"2\" face=\"Arial\"><em><a href=\"".$feld["artikelnummer"].".jpg\" target=\"_blank\">".$feld["artikelnummer"]."</a></em></font></td>";
         } 
        else
        {
        echo 
    "<td width=\"350\"><font size=\"2\" face=\"Arial\"><em>".$feld["artikelnummer"]."</em></font></td>";
         }
        echo 
    "<td width=\"60\"><font size=\"2\" face=\"Arial\">VE:</font></td>";
        echo 
    "<td width=\"100\"><font size=\"2\" face=\"Arial\"><em>".$feld["ve"]."</em></font></td>";
        echo 
    "</tr>";
        echo 
    "<tr>"
        echo 
    "<td width=\"100\"><font size=\"2\" face=\"Arial\">Artikelname:</font></td>";
        echo 
    "<td width=\"350\"><font size=\"2\" face=\"Arial\"><em>".$feld["artikelname"]."</em></font></td>";
        echo 
    "</tr>";
        echo 
    "<tr><td><br></td></tr>";
        }
    ?> 

    </body>
    </html>
    danke für eure Hilfe ....
    Zuletzt geändert von dani j.; 08.09.2002, 13:42.

  • #2
    Vor der Zeile
    result = mysql_db_query('xxx',$query)or die(mysql_error());
    bau mal bitte einen print ein und poste das Ergebnis:
    PHP-Code:
    ...

    print 
    "query:$query<br>\n";

    result mysql_db_query('xxx',$query)or die(mysql_error());
    ... 
    Es konmmt drauf an wie die Variablen gesetzt sind. Vielleicht endet die Query sogar mit " ... and ", aber zuerst mal schauen wir uns das an ...
    Zuletzt geändert von admin; 03.01.2006, 09:30.

    Kommentar


    • #3
      Bau Dein Statement mal so zusammen:

      PHP-Code:
      $where="";
      foreach ( 
      $eingabe_array AS $value ) {
          
      $where.=($where==""?"":" AND ")."(artikelnummer like '%$value%' or artikelname like '%$value%')";
      }
      $query "SELECT artikelnummer, artikelname, ve FROM produkte WHERE $where"
      das sollte funzen ... außerdem ist's kürzer ... !
      carpe noctem

      [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
      [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

      Kommentar


      • #4
        das ergebniss ist folgendes:

        query:SELECT artikelnummer, artikelname, ve FROM produkte WHERE
        You have an error in your SQL syntax near '' at line 1

        ---

        @goth , wie meinst du das ?
        hab es mal versucht kam jedoch auch ein Fehler ...

        Kommentar


        • #5
          WHERE was?

          Die WHERE Bedingung fehlt, deshalb meckert mySQL. Entweder du läßt das WHERE weg, oder Du definierst eine WHERE Clause.

          Kommentar


          • #6
            Ok ... also ein Update Version 1.0.1 quasi:

            PHP-Code:
            $where="";
            foreach ( 
            $eingabe_array AS $value ) {
                
            $where.=($where==""?"":" AND ")."(artikelnummer like '%$value%' or artikelname like '%$value%')";
            }
            $query "SELECT artikelnummer, artikelname, ve FROM produkte".($where==""?"":" WHERE $where"); 
            aber soviel Phantasie solltest Du auch haben ... !
            carpe noctem

            [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
            [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

            Kommentar


            • #7
              hab das mal "überarbeitet", nun wird ¨wenn ein wort eingegeben wurde alles richtig gemacht, doch wenn ich 2 suchwörter eingebe kommt ein syntax fehler:
              You have an error in your SQL syntax near 'WHERE artikelnummer LIKE '%set%' OR artikelname LIKE '%set%'' at line 1

              PHP-Code:
              <html>
              <head>
              </head>

              <body>
              Ihre Suchresultate:
              <p>
              <?php
                  $db 
              mysql_connect ("***""****""*****");
                  
              mysql_select_db("*****",$db);
                  
              $query "SELECT artikelnummer, artikelname, ve FROM produkte ";
                  for(
              $i=0$i<count($eingabe_array); $i++){
                      
              $query .= "WHERE artikelnummer like '%".$eingabe_array[$i]."%' or artikelname like '%".$eingabe_array[$i]."%'";
                      
                      if(
              $i<count($eingabe_array)-1){
                          
              $query .= ' and ';
                      }
                      
                  }

                  
              $result mysql_db_query('****',$query)or die(mysql_error());
                  
              $num_artikel mysql_num_rows($result);
                  for(
              $i=0$i<$num_artikel$i++){
                      
              $artikelnummer mysql_result($result,$i,'artikelnummer');
                      
              $artikelname mysql_result($result,$i,'artikelname');
                      
              $ve mysql_result($result,$i,'ve');
                  echo 
              "<table width=\"600\" height=\"45\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
                  echo 
              "<tr>";
                  echo 
              "<td width=\"100\"><font size=\"2\" face=\"Arial\">Artikelnummer:</font></td>";
                  if (
              is_file("/pfad/$artikelnummer.jpg"))
                  {
                  echo 
              "<td width=\"350\"><font size=\"2\" face=\"Arial\"><em><a href=\"$artikelnummer.jpg\" target=\"_blank\">$artikelnummer</a></em></font></td>";
                   }
                  else
                  {
                  echo 
              "<td width=\"350\"><font size=\"2\" face=\"Arial\"><em>$artikelnummer</em></font></td>";
                   }
                  echo 
              "<td width=\"60\"><font size=\"2\" face=\"Arial\">VE:</font></td>";
                  echo 
              "<td width=\"100\"><font size=\"2\" face=\"Arial\"><em>$ve</em></font></td>";
                  echo 
              "</tr>";
                  echo 
              "<tr>"
                  echo 
              "<td width=\"100\"><font size=\"2\" face=\"Arial\">Artikelname:</font></td>";
                  echo 
              "<td width=\"350\"><font size=\"2\" face=\"Arial\"><em>$artikelname</em></font></td>";
                  echo 
              "</tr>";
                  echo 
              "<tr><td><br></td></tr>";
                  }
              ?> 

              </body>
              </html>
              Zuletzt geändert von dani j.; 11.09.2002, 14:25.

              Kommentar

              Lädt...
              X