2011-01-02 10 views
0

Ich habe eine Menge Zeit mit diesem Fehler verbracht und kann den Fehler nicht finden. Ich habe eine Tabelle in einem MySQL-Datenbank-Namen 'Geschichten' mit vielen Feldern, einschließlich 'Sid', 'Titel' und 'Inhalt'. Ich versuche, diese Felder zugreifen PHP:bekommen mysql-Feld als leer, obwohl es dort ist!

$sql=mysql_query("SELECT sid,title,content FROM stories WHERE (promoted=1 and published=1) ORDER BY post_time DESC LIMIT 0,1"); 

$promoted_article=mysql_fetch_array($sql); 

$sid=$promoted_article[sid]; 

echo $sid; 

Durch phpMyAdmin ich everything- ‚sid‘ geprüft habe, ist ein Auto-increment-Feld und existiert so für jeden Datensatz. Allerdings ist '$ sid' überall Null. Ich kann das Problem überhaupt nicht verstehen. Jeder hat die geringste Ahnung, warum dies passieren könnte?

Antwort

1

$sid=$promoted_article[sid];

PHP denkt sid ist eine constante, Sie apostrofs um es so verwenden sollte: $sid=$promoted_article['sid'];

Es hat wahrscheinlich nichts mit Ihrer Anfrage zu tun, es sei denn, das funktioniert nicht^

1
$sid=$promoted_article['sid']; 

Sie vermissen die ' für den Index des $promoted_article Array

+0

Es ist nicht obligatorisch. – aakashbhowmick

+1

@aakash: Ja, ist es. 'sid' ist eine Konstante (höchstwahrscheinlich NICHT in diesem Skript definiert, also auf leer/null auswertend. '' sid'' ist eine Zeichenkette. Das einzige Mal, wenn Sie keine einfachen Anführungszeichen für einen Array-Schlüssel verwenden, befindet sich in einem doppelten Anführungszeichen Zeichenfolge. –

1

Prüfergebnis Sie durch Ausgabe von

Lese
print_r($promoted_article); 

Um herauszufinden, ob es Problem mit Abfrage oder mit dem Abrufen von Daten aus Ergebnismenge ist.

Verwandte Themen