Sql Abfrage funktioniert nicht...

flying-anzi

Erfahrenes Mitglied
Hallo
ICh hab irgendwie ein kleines Problem... und ich finde den Fehler nicht...
PHP:
 $comment_result = mysql_query("SELECT `Id`
FROM `gallery_comment`
WHERE `Img_Name` = '".$row_p['Name']."'
ORDER BY `Date` DESC");
$comment_num = mysql_num_rows($comment_result);
Wenn ich diesen Code verwende dann kommt jedes mal bei $comment_num 0 raus...

Ich hab mir den ersten Befehl mittels echo ausgeben lassen und im phpmyadmin reingeschrieben und da kommen auch 2 einträge raus...
PHP:
SELECT `Id`
FROM `gallery_comment`
WHERE `Img_Name` = 'fasching08_img36.jpg'
ORDER BY `Date` DESC



was stimmt da nicht
 
Versuch es mal so:

PHP:
$sql = sprintf('SELECT Id 
                FROM gallery_comment 
                WHERE Img_Name = "%s" 
                ORDER BY Date 
                DESC', 
                mysql_real_escape_string($row_p['Name'])
                );

$comment_result = mysql_query($sql);
 
nein... das funktioniert auch nicht... ich bin schon verzweifelt...

könnte es ev. an der datenbank liegen, das der befehl dort fehlerhat bearbeitet wird?
normalerweise hab ich den fehler nie, wenn ich bei einem anderen Anbieterdie Daten online stelle...
 
PHP:
error_reporting(E_ALL);

Ist das in der Datei drin? Wenn nein: mal reinschreiben.
Wenn ja: kommt garkeine Meldung? (Warning, Notice etc.)
 
Wenn ich solche Problemchen habe, liegt es meistens an einem Syntax-Fehler oder Schreibfehler bei den Feldbezeichnungen. Schreibe dein Statement so:

Code:
$comment_result = mysql_query("SELECT `Id` 
FROM `gallery_comment` 
WHERE `Img_Name` = '".$row_p['Name']."' 
ORDER BY `Date` DESC") or die(mysql_error());

Du solltest aber auch um jedes Missverständnis auszuschliessen deinem Query die connection ID mitteilen

Code:
mysql_query(string, connID)

So bekommst du sofort eine Fehlermeldung wenn mit der Ausführung des Statement etwas nicht stimmt. So bekomme ich fast alle meine Fehler raus :)
 
Zuletzt bearbeitet:
Vielleicht gibt es auch einfach keinen Datensatz, auf den die angegebenen Kriterien zutreffen. Lass dir doch mal die zusammengesetzte Datenbankabfrage ausgeben und prüfe sie manuell.
 
Der Vorschlag von KD3 müsste gehen... lass dir mal den $sql Inhalt ausgeben und prüfe, ob da auch Leerzeichen zwischen den SQL-Ausdrücken sind... nicht das da sowas wie

"SELECT IdFROM gallery_commentWHERE Img_Name = "%s"ORDER BY DateDESC'"

an die DB geschickt wird... dann müsstest du aber auch eine Fehlermeldung bekommen...

Es gibt doch auch die Möglichkeit dir den mysql_errorno() und mysql_error() anzeigen zu lassen... schau mal, ob da was rauskommt...

Gruß, Jochen
 
Hallo

Wenn ich mir die Abfrage ausgeben lasse und sie im phpmyadmin eingebe, kommen die Einträge raus, was ich brauche...

mit
PHP:
error_reporting(E_ALL);
kommt auch kein Fehler raus...
 
Zuletzt bearbeitet:
Mir ist jetzt eine Kleinigkeit aufgefallen...
Im Abfragecode

PHP:
SELECT `Id` FROM `gallery_comment` WHERE `Img_Name` = 'fasching08_img36.jpg ' ORDER BY `Date` DESC
nach es ist ein Leerzeichen nach fasching08_img36.jpg ich weiß aber nicht von wo es herkommt... Ich habe es bereits in der anderen Datenbank überprüft, ob dort am Ende immer ein Leerzeichen steht, trifft aber nicht zu...

Aber wenn ich den obigen Code im phpmyadmin eingebe, bekomme ich trotzdem Resultate
 
Zurück