Was ist an diesem PHP-Programm falsch?

blablabla95

New member
Hi, wenn ich mit folgendem Programm ein Formular auswerten will:


<html>
<head>
<title>titel</title>
</head>
<body>
<?php
mysql_connect ("","root","");
mysql_select_db ("hardware");

switch($_POST["preis"]){

case 1:
$bereich="<=120";
break;

case 2:
$bereich=">=120 and where preis <=140";
break;

case 3:
$bereich=">=140";
break;
}

$sqlab = "select hersteller, typ, preis from fp where preis $bereich";

if (isset($_POST["sort"]))
$sqlab .=" order by preis desc";

$res = mysql_query($sqlab);
$num = mysql_num_rows($res) or die ("<p>Fehler: ".mysql_error());


while ($dsatz = mysql_fetch_assoc($res))
echo "<p>".$dsatz["hersteller"].", ".$dsatz["typ"].", ".$dsatz["preis"];


?>
</body>
</html>

Bekomme ich nur folgende Fehlermeldung:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\meinewebsite\u_db_radio.php on line 31
Fehler: 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 'where preis <=140 order by preis desc' at line 1


Woran liegt das?

Danke & mfg
 
mysql_query() hat ein FALSE zurück gegeben, deswegen beschwert sich mysq_num_rows() über einen booleschen Parameter (hooray php!). Steht ja auch unten, dass du einen Syntax-Fehler in deiner Query hast.

Du kannst das Keyword "where" nur einmal verwenden. Willst du mehrere Bedingungen verwenden musst du diese logisch verknüpfen: "WHERE preis >=120 AND preis <=140".

Im übrigen würde ich dir raten Schlüsselwörter groß zu schreiben. So sieht man solche Fehler sofort...
 

Online-Statistiken

Zurzeit aktive Mitglieder
2
Zurzeit aktive Gäste
27
Besucher gesamt
29

Beliebte Forum-Themen

Zurück
Oben Unten