Fehlermeldung nur in IE
Michael
- php
0 dedlfix0 flashnfantasy0 Michael
Hallo ich mach gerade eine mysql Datenbankabfrage.
Als Testbrowser habe ich den Mozilla benutzt, auf dem auch immer alles ganz wunderbar funktioniert.
Jetzt hab ichs noch mit dem IE ausprobiert, und da kommt immer diese Fehlermeldung.
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\Programme\xampp\htdocs\xampp\Webserver\suchen.php on line 29
Ich verstehe nicht wieso das Browserabhängig ist, schliesslich findet die Abfrage doch auf dem Server statt, und dem ist es doch egal was für
ein Browser den Code interpretiert?
Oder hab ich ad was falsch verstanden?
Auf Netscape und Opera gehts auch wunderbar.
Danke für jeden Tip
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\Programme\xampp\htdocs\xampp\Webserver\suchen.php on line 29
Ich verstehe nicht wieso das Browserabhängig ist, schliesslich findet die Abfrage doch auf dem Server statt, und dem ist es doch egal was für
ein Browser den Code interpretiert?
Es gibt da schon Möglichkeiten, auf der Serverseite browserabhängig zu reagieren...
Am besten ist wohl, wenn du uns den relevanten Quelltext rund um Zeile 29 mal zeigst.
Wenn du selber suchen willst:
Schau dir an, welche Query du dem Server schickst
$sql = "SELECT...";
echo $sql;
mysql_query($sql...);
Frage die Fehlermeldungen ab, die dir MySQL liefert: mysql_error()
Ohne den Code kann man nur vermuten.
1. Vermutlich liegt der Fehler in der Query (dann müsstest du aber einen Fehler schon in der Query zurückkriegen)
2. Benutzt du Formulardaten die du mit $_POST oder $HTTP_POST_VAR ausliest ?
Können da Werte vorkommen, die eventuell den Fehler verursachen
Gib mal mehr Code...
Gib mal mehr Code...
<?php
if(isset($_POST['suchbutton'])){ $Suchbegriff=$_POST['suchfeld']; $link=mysql_connect(); mysql_select_db('database', $link); $suche = "Select * FROM gesetze WHERE MATCH (ueberschrift,text) AGAINST ('$Suchbegriff' IN BOOLEAN MODE)"; $result = mysql_query($suche); $anzahl = mysql_num_rows($result); if($anzahl == 0){echo'Es wurden keine passenden Artikel zum Suchbegriff <strong>"'.$Suchbegriff.'" </strong>gefunden';} }
echo $dsatz.'<br >';
while($dsatz = mysql_fetch_assoc($result)) {
echo'<a class="menu2" href="../html/eintragen.html">'.$dsatz['ueberschrift'].'</a>';
}
echo mysql_error();
?>
Danke, aber wenn mann noch nicht so Erfahrung hat, steht man halt gleich auf dem Schlauch
hi,
Gib mal mehr Code...
<?php
bitte setze zunächst die hinweise von delfix um (https://forum.selfhtml.org/?t=102979&m=633817) - insb. den betreffend mysql_error().
gruß,
wahsaga
Der Fehler liegt wahrscheinlich in der Kombination von if und while
if (bed)
{
definiere Resource
}
...
frage Resource ab
Was ist, wenn die Bedingung nicht erfüllt ist ?
Dann gibt es deinen Fehler...
Der Fehler liegt wahrscheinlich in der Kombination von if und while
if (bed)
{
definiere Resource
}
...
frage Resource abWas ist, wenn die Bedingung nicht erfüllt ist ?
Dann gibt es deinen Fehler...
Das war das Stichwort..
if(isset($_POST['suchbutton']))
Wenn im IE das Formular mit Enter abgesendet wird, wird der Button nicht als gedrückt erkannt und auch nicht mitgesendet. Der FF beispielsweise tut dann so, als ob der erste deklarierte Submit-Button gedrückt wurde.
Unabhängig davon, dass dein (Michael) Code wie oben beschrieben fehlerhaft ist kannst du das im HTML-Teil auch so lösen:
<input type="hidden" name="suchbutton" value="enter">
<input type="submit" name="suchbutton" value="Suchen">
Super, das war es . Jetzt funktionierts. Danke
Hallo Michael,
if(isset($_POST['suchbutton'])){
$Suchbegriff=$_POST['suchfeld'];
$link=mysql_connect();
mysql_select_db('database', $link);
$suche = "Select * FROM gesetze WHERE MATCH (ueberschrift,text) AGAINST ('$Suchbegriff' IN BOOLEAN MODE)";
$result = mysql_query($suche);
Du weißt, dass man bei dir auf diese Art in deiner Datenbank beliebig rumspielen kann?
Die Variable $Suchbegriff wird nämlich unverändert in deinen MySQL-Query gegeben, was passiert also wenn der Benutzer in das Textfeld 'TEXT' (inklusive der Anführungszeichen) eingibt - richtig, der Code zwischen den beiden Anführungszeichen wird von MySQL interpretiert.
Das kannst du verhindern indem du den Inhalt deiner Variable $Suchbegriff maskierst.
Bis dann!
Marc Reichelt || http://www.marcreichelt.de/