Archiv verlassen und diese Seite im Standarddesign anzeigen : nur datensätze mit den status 0 anzeigen
Hallo zusammen,
möchte dass nur die Datensätze mit den Status 0 angezeigt werden, bekomme so wie es momentan ist, immer folgende fehlermeldung :
Warning: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/search.php on line 44
$status = "0";
$query_zusatz = "";
if(isset($HTTP_GET_VARS['suchbegriff'])){
$suchbegriff = $HTTP_GET_VARS['suchbegriff'];
$query_zusatz = "WHERE name LIKE '%$suchbegriff%' OR vorname LIKE '%$suchbegriff%' OR strasse LIKE '%$suchbegriff%'";
}
$abfrage = "SELECT * FROM automobil ".$query_zusatz." ORDER BY id LIMIT ".$start.", ".$zeilen." ".$status."";
$ergebnis = mysql_query($abfrage,$verbindung);
Zeile 44 if(mysql_num_rows($ergebnis) > 0) {
while($datensatz = mysql_fetch_array($ergebnis)) {
*move* 2 sql
wo hast du denn mysql_error() im einsatz?
http://www.php-resource.de/forum/showthread.php?s=&threadid=47906
hier den MySQL Error:
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 '0' at line 1
und warum hast du deine query noch nicht entsprechend angepasst und die 0 am ende entfernt?
schaue dir auch mal den genauen syntax von SELECT im mysql manual unter mysql.com an. schaue auch genau dorthin wo WHERE in der syntax vorkommt.
kannst du mir ein anderes hinweis geben? Evt. genau welches von der Select und Where anweisung lesen soll?
zeig uns mit
echo $abfrage;
was da drin steht.
$abfrage = "SELECT * FROM automobil ".$query_zusatz." ORDER BY id LIMIT ".$start.", ".$zeilen." ";
SELECT * FROM automobil WHERE marka LIKE '%%' OR model LIKE '%%' OR viti LIKE '%%' ORDER BY id LIMIT 0, 10
sieht gut aus, aber du hast nicht gezeigt was in $status steht, und jeder wert der da vorkommt ausser " " wird eine fehlermeldung bringen.
im Status hab entweder ein 0 oder ein 1, wenn ich ein eintrag aktivieren möchte setze ich es auf 0 und umgekehrt ein 1 fürs deaktivieren.
Bis jetzt hab ich folgendermasse versucht
$status = "";
$query_zusatz = "";
if(isset($HTTP_GET_VARS['suchbegriff'])){
$suchbegriff = $HTTP_GET_VARS['suchbegriff'];
$query_zusatz = "WHERE name LIKE '%$suchbegriff%' OR vorname LIKE '%$suchbegriff%' OR strasse LIKE '%$suchbegriff%'";
}
$abfrage = "SELECT * FROM automobil ".$query_zusatz." ORDER BY id LIMIT ".$start.", ".$zeilen." ".$status=0."";
$ergebnis = mysql_query($abfrage,$verbindung);
Zeile 44 if(mysql_num_rows($ergebnis) > 0) {
while($datensatz = mysql_fetch_array($ergebnis)) {
also du muss alle Bedingungen (status auch) in WHERE haben,
dann kommt "group by" , "order by", und am ende LIMIT.
nech dem Limit darfst du nichts mehr haben, und genau bei deinem
"0" nach dem LIMIT streitet Mysql
So klappt auch nicht :
$status = "";
$query_zusatz = "";
if(isset($HTTP_GET_VARS['suchbegriff'])){
$suchbegriff = $HTTP_GET_VARS['suchbegriff'];
$query_zusatz = "WHERE ".$status=0." name LIKE '%$suchbegriff%' OR vorname LIKE '%$suchbegriff%' OR strasse LIKE '%$suchbegriff%'";
}
war eine Frage, hab in der Where Anweisung mehrere möglichkeiten versucht mit folgender fehlermeldung:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/search.php on line 46
$status = "";
$query_zusatz = "";
if(isset($HTTP_GET_VARS['suchbegriff'])){
$suchbegriff = $HTTP_GET_VARS['suchbegriff'];
$query_zusatz = "WHERE $status=0 name LIKE '%$suchbegriff%' OR vorname LIKE '%$suchbegriff%' OR strasse LIKE '%$suchbegriff%'";
}
$abfrage = "SELECT * FROM automobil ".$query_zusatz." ORDER BY id LIMIT ".$start.", ".$zeilen."";
$ergebnis = mysql_query($abfrage,$verbindung);
Zeile 46 if(mysql_num_rows($ergebnis) > 0) {
while($datensatz = mysql_fetch_array($ergebnis)) {
http://www.php-resource.de/forum/showthread.php?s=&threadid=47906
Bau mysql_error() ein ! Dein SQL-Query ist nach wie vor fehlerhaft.
Lass dir dein fertiges Query in Zukunft einfach mal per echo ausgeben, dann erkennst du höchstwahrscheinlich den Fehler eh selber.
$query_zusatz = "WHERE name LIKE '%$suchbegriff%' OR vorname LIKE '%$suchbegriff%' OR strasse LIKE '%$suchbegriff%'" AND status = '".$status."';
sorry. aber ich kann nur raten was du wirklich willst
$status = 0;//oder 1
$query_zusatz = "";
if(isset($HTTP_GET_VARS['suchbegriff'])){
$suchbegriff = $HTTP_GET_VARS['suchbegriff'];
$query_zusatz = "WHERE status='".$status."' and name LIKE '%$suchbegriff%' OR vorname LIKE '%$suchbegriff%' OR strasse LIKE '%$suchbegriff%'";
}
$abfrage = "SELECT * FROM automobil ".$query_zusatz." ORDER BY id LIMIT ".$start.", ".$zeilen."";
$ergebnis = mysql_query($abfrage,$verbindung)or die(mysql_error());
if(mysql_num_rows($ergebnis) > 0) {
while($datensatz = mysql_fetch_array($ergebnis)) {
hallo Slava,
danke für deine bemühungen bis jetzt.
ich hab die DB mit Auto's und Stammdaten sieht so aus:
Name
Vorname
Strasse/nr
Plz
Ort
Marke
Modell
KM
Jahrgang
MFK
Preis
Status (0=Aktiv / 1=Nicht Aktiv)
Wenn ich jetzt ein Neue Auto in der DB einspeise dann ist der Eintrag standartmässig auf 1 also nicht Aktiv.
Mein Problem ist jetzt das ich es nicht hinbringen NUR die Aktive Einträge zu zeigen.
Die Datei beinhaltet ein Suchform, Blätter Funktion funkt. auch einwandfrei aussert dass ich die Aktive (Status =0) Autos nicht Angezeigt bekomme.
Hab folgendermasse noch versucht aber bekomme wieder ein Fehlermeldung:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/search.php on line 53
<?php
$query_zusatz = "";
if(isset($HTTP_GET_VARS['suchbegriff'])){
$suchbegriff = $HTTP_GET_VARS['suchbegriff'];
if($query_zusatz=="WHERE"){
$query_zusatz="WHERE status=0";
}
else{
$query_zusatz.=" AND status=0";
}
$query_zusatz = "WHERE name LIKE '%$suchbegriff%' OR vorname LIKE '%$suchbegriff%' OR strasse LIKE '%$suchbegriff%'";
}
$abfrage = "SELECT * FROM automobil ".$query_zusatz." ORDER BY id LIMIT ".$start.", ".$zeilen."";
$ergebnis = mysql_query($abfrage,$verbindung);
if(mysql_num_rows($ergebnis) > 0) {
while($datensatz = mysql_fetch_array($ergebnis)) {
$stil=="#EFEFFF"?$stil = "#ffffff":$stil="#EFEFFF";
?>
sorry, aber ich habe doch in meinem beispiel
or die(mysql_error());
eingebaut.
du hast die einzige möglichkeit auf DB zu hören weg genommen und erzehlst mir wieder, dass mysql_num_rows() eine fehlermeldung liefert.
Hast du überhaupt versucht meine code einzubauen?
Original geschrieben von lan (unwesentliches weggelassen)
$query_zusatz = "";
$query_zusatz="WHERE status=0";
$query_zusatz.=" AND status=0";
$query_zusatz = "WHERE name LIKE '%$suchbegriff%' OR vorname LIKE '%$suchbegriff%' OR strasse LIKE '%$suchbegriff%'";
}
erstens ist das toll, zweitens fehlt das echo $abfrage, drittens hast du hier nicht mitgeteilt, was dabei herauskommt.
Im ersten $abfrage=.... stand am Schluss .$status; Auf Wunsch, echo $abfrage zu machen, stand am Schluss kein .$status.
Wie wenn zwei mitschreiben würden...aber das ist wohl nicht der Fall.
Original geschrieben von Slava
sorry, aber ich habe doch in meinem beispiel
or die(mysql_error());
eingebaut.
Slava du hast es eingebaut, das reicht doch.
Auf meinem Bildschirm ist es auch, deutlich sichtbar. Das reicht doch längstens aus.
Original geschrieben von lan
Mein Problem ist jetzt das ich es nicht hinbringen NUR die Aktive Einträge zu zeigen.
Das Problem ist eher, in der Sprache der alten Griechen: ΧΑΟΣ
|