• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

weiteres such problem

Status
Für weitere Antworten geschlossen.

sunflexm

Neues Mitglied
PHP:
  echo "<form method=\"GET\">
          <input type=\"text\" name=\"suche\">
          <input type=\"submit\" value=\"Suchen\"><br>
        </form>";     

$sql = mysql_query('SELECT * FROM '.$tabelle.' WHERE Nummer='.$_GET['suche'].' or Autor = '.$_GET['suche'].' or Titel = '.$_GET['suche'].' or Verlag = '.$_GET['suche'].' or Ort = '.$_GET['suche'].' or Jahr = '.$_GET['suche'].' or Sachgebiet = '.$_GET['suche'].'');

  echo "<table border=\"1\" width=\"100%\">
          <tr>
            <td>Nummer</td>
            <td>Autor</td>
            <td>Titel</td>
            <td>Verlag</td>
            <td>Ort</td>
            <td>Jahr</td>
            <td>Sachgebiet</td>
          </tr>";
While ($ergebnis= mysql_fetch_array($sql)) {
  echo "<tr>
          <td>".$ergebnis['Nummer']."</td>
          <td>".$ergebnis['Autor']."</td>
          <td>".$ergebnis['Titel']."</td>
          <td>".$ergebnis['Verlag']."</td>
          <td>".$ergebnis['Ort']."</td>
          <td>".$ergebnis['Jahr']."</td>
          <td>".$ergebnis['Sachgebiet']."</td>
        </tr>";
                                           }
  echo "</table><br><br>";
Das Suchen nach Nummern funktioniert, sobald ich aber statt eines integerwertes einen string eingebe, wie es z.B. bei der Suche nach Autoren oder Titeln nötig ist bekomme ich folgenden Fehler. Ich verstehe das Problem nicht, allem Anschein nach kann ich nach Integerwerten suchen, aber nicht nach Strings.

Code:
[B]Warning[/B]:  mysql_fetch_array(): supplied argument is not a valid MySQL result resource in [B]C:\xampplite\htdocs\test\dvt\suche\index.php[/B] on line [B]33[/B]
 
du musst dies hier in einfache klammern stellen:

PHP:
$sql = mysql_query("SELECT * FROM '".$tabelle."' usw.)
 
Wo ist der Unterschied zwischen ' und ", und es funktioniert leider nicht.

weder so.

Code:
$sql = mysql_query("SELECT * FROM ".$tabelle." WHERE Nummer=".$_GET['suche']." or Autor LIKE ".$_GET['suche']."");

noch so.

Code:
$sql = mysql_query("SELECT * FROM '".$tabelle."' WHERE Nummer='".$_GET['suche']."' or Autor LIKE '".$_GET['suche']."'");
 
Vielleicht setzt du mal or die(mysql_error()) hinter die Query,
damit wir mal sehen was MySQL dazu sagt.

Gruß
Voodoo
 
Vielleicht setzt du mal or die(mysql_error()) hinter die Query,
damit wir mal sehen was MySQL dazu sagt.

Gruß
Voodoo
Code:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'or Autor= or Titel= or Verlag= or Ort= or Jahr= or Sachgebiet=' at line 1

mysqli

MysqlI Supportenabled Client API library version 5.0.51 Client API header version 5.0.45 MYSQLI_SOCKET /tmp/mysql.sock
 
Aha... schon etwas informativer.
Du musst das halt hübsch esacpen.
Code:
$sql = mysql_query('SELECT * FROM "'.$tabelle.'" WHERE Nummer = "'.$_GET['suche'].'" OR Autor = "'.$_GET['suche'].'" OR Titel = "'.$_GET['suche'].'" OR Verlag = "'.$_GET['suche'].'" OR Ort = "'.$_GET['suche'].'" OR Jahr = "'.$_GET['suche'].'" OR Sachgebiet = "'.$_GET['suche'].'"') or die(mysql_error());
Sobald du etwas mit einem String machst, musst du ihn in Anführungszeichen setzen.
 
PHP:
$sql = mysql_query('SELECT * FROM "'.$tabelle.'" WHERE Nummer = "'.$_GET['suche'].'" OR Autor = "'.$_GET['suche'].'" OR Titel = "'.$_GET['suche'].'" OR Verlag = "'.$_GET['suche'].'" OR Ort = "'.$_GET['suche'].'" OR Jahr = "'.$_GET['suche'].'" OR Sachgebiet = "'.$_GET['suche'].'"') or die(mysql_error());
Code:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"buecherkey" WHERE Nummer = "" OR Autor = "" OR Titel = "" OR Verlag = "" OR Ort' at line 1
:(

Habs mal mit Ausklammern probiert sprich ("Nummer = ......") or ("Autor =.....") funktioniert auch nicht.


edit :

vll. hats auch irgendwas mit der gammligen xampp vista beta zutun die ich nutzen muss, crap vista
 
Zuletzt bearbeitet:
Hm.
Versuch mal die Anführungszeichen um den Tabellennamen wegzulassen.
Sonst fiele mir jetzt auch nichts mehr ein.
 
PHP:
$sql = mysql_query('SELECT * FROM "'.$tabelle.'" WHERE Nummer = "'.$_GET['suche'].'" OR Autor = "'.$_GET['suche'].'" OR Titel = "'.$_GET['suche'].'" OR Verlag = "'.$_GET['suche'].'" OR Ort = "'.$_GET['suche'].'" OR Jahr = "'.$_GET['suche'].'" OR Sachgebiet = "'.$_GET['suche'].'"') or die(mysql_error());
Code:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"buecherkey" WHERE Nummer = "" OR Autor = "" OR Titel = "" OR Verlag = "" OR Ort' at line 1
:(

Habs mal mit Ausklammern probiert sprich ("Nummer = ......") or ("Autor =.....") funktioniert auch nicht.


edit :

vll. hats auch irgendwas mit der gammligen xampp vista beta zutun die ich nutzen muss, crap vista
"SELECT * FROM users
WHERE username=
'" . mysql_real_escape_string($_POST['username']) . "'
AND password=
'" . mysql_real_escape_string($_POST['password']) . "'";
 
"SELECT * FROM users

"SELECT * FROM users
WHERE username=
'" . mysql_real_escape_string($_POST['username']) . "'
AND password=
'" . mysql_real_escape_string($_POST['password']) . "'";
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben