2011-01-09 3 views
4

ich von den db Aufzeichnungen für einen einzelnen Post (Titel, Körper, Datum)Abfrage ohne Schleife

Zum Beispiel abfragen mag ich meine Frage habe ..

$query = 'SELECT * FROM posts WHERE id=$post_id';

Von dieser Abfrage, wie Kann ich den Titel beispielsweise ohne eine while- oder foreach-Schleife wiedergeben?

+1

Wenn es nur eine einzelne Zeile zurückgibt, was ist es wichtig? –

+0

Verwenden Sie 'if', nicht' while' – a1ex07

+0

Brauchen Sie wirklich alles? (*)? – Drewdin

Antwort

5

Sie können nur eine mysql_fetch_assoc() (oder eine ähnliche Funktion) aufrufen. Wie folgt:

$sql = "SELECT * FROM table"; 
$row = mysql_fetch_assoc(mysql_query($sql)); 
echo $row['title']; 

Dies ist die einfachste und lesbarste Möglichkeit, dies mit den MySQL-Funktionen zu tun.

2

können Sie mysql_result verwenden:

$sql = 'SELECT * FROM posts WHERE id=$post_id'; 
$query = mysql_query($sql); 
echo mysql_result($query, 0, 'title'); 

Dies wird das Feld title zum ersten (0) Reihe Echo.

1

Wenn Sie Funktionen wie mysql_fetch_array verwenden, müssen Sie nicht iterieren. Selbst, wenn Sie es tun, du bist nur das Ergebnis der nächsten Zeile immer verfügbar, bis es null zurückgibt:

$query = mysql_query("SELECT * FROM table"); 
while($row = mysql_fetch_array($query)) { 
    var_dump($row); 
} 

Also, das in der Abfrage für jede Zeile zu tun ist technisch das gleiche:

$query = mysql_query("SELECT * FROM table"); 

$row = mysql_fetch_array($query) 
var_dump($row); 
// Array() 
$row = mysql_fetch_array($query) 
var_dump($row); 
// Array() 
$row = mysql_fetch_array($query) 
var_dump($row); 
// null < the "while" statment will stop here 

Dann können Sie mysql_fetch_array einmal anrufen und das ist es.

Viel Glück!