Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Denkfehler - SQL-Query kann leer sein [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-consult PHP Entwicklung
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Denkfehler - SQL-Query kann leer sein


 
Coniaric
14-03-2007, 12:16 
 
Hallo,

ich glaub, ich steh auf dem Schlauch. Ist nur ne Kleinigkeit eigentlich:


$querybild=mysql_query("select id, objektnr, bildth1, bildth2, bildth3, bildth4, bildth5 from immo where objektnr=$objektnr");

if (!mysql_num_rows($querybild))
{
echo"Keine Ergebnisse";
}


Das Problem ist, daß in $objektnr durchaus eine Nummer stehen kann,
die es nicht gibt, das ist korrekt.

Mein Problem ist, wenn ich einen "or die" mache, bricht das Script ab.
Wenn ich es so wie oben mit dem IF mache, kriege ich aber eine Warnung:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in
C:\usw.etc.pp.php on line 15

Ich weiß selbst, daß das supplied argument kein valid MySQL result resource ist,
aber genau das will ich ja prüfen!

Es geht darum, festzustellen
1) ist der Datensatz mit der Objektnummer vorhanden,
2) wenn ja, sind außer der Objektnummer noch andere Einträge drin
3) wenn auch ja, dann...usw.

Ich meine, das schon einige Male gemacht zu haben - finde es
aber nicht mehr.

Wenn ich einfach die Warnung unterdrücke, ist alles prima, genau so soll es funzen.
Aber ich hätte gern eine sauberere Lösung...

 
ministry
14-03-2007, 12:27 
 
$querybild = mysql_query("...") or die(mysql_error());

Auch wenn die Ergebnismenge leer ist, gibt mysql_num_rows keinen Fehler, wenn die Query richtig war. D.h. Deine Query ist fehlerhaft.

 
Coniaric
14-03-2007, 12:35 
 
Hm, dachte der wär richtig - wenn ich den Query nämlich in das SQL
vom PHPMyAdmin eintrage,
gibt es keinen Fehler aus (ist ja das selbe wie mysq_error)...

Na gut, der Tipp reicht mir aber schon, danke -
wenn es nur ein fehlerhafter Query ist, sollte es kein Problem sein.



Hab es.
der Query muß natürlich

$querybild=mysql_query("select id, objektnr, bildth1, bildth2, bildth3, bildth4, bildth5 from immo where objektnr='$objektnr' ");

heißen, also mit '' um die Variable.
Hat natürlich im MyAdmin gefunzt, weil da eine Zahl drin stand.

Oft sind es eben die einfachen dinge, auf die man nicht kommt.
Ich suche immer nach was kompliziertem...

 
ghostgambler
14-03-2007, 15:39 
 
Objekt-nr ist doch Integer, oder?
Wenn ja, da müssen keine Anführungszeichen rum oO

 
Coniaric
14-03-2007, 15:46 
 
Hi,

nein, genau darum hab ich es auch falsch gemacht, ich dachte auch, es wäre integer.
Objektnummer kann aber auch z.B. "233a" lauten :(

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:21 Uhr.