TroxyMedlem sedan mars 20041 505 inlägg Hej. Jag har precis börjat lite med PHP. Innan har jag suttit med ASP men har tröttnat lite på det eftersom det är så mycket licenskonstnader för allt. I alla fall:
Hur loopar man på enklast sätt igenom alla poster man hämtat med en SQL-fråga?
Man får ju vad jag har förstått tillbaka alla resultat i någon special-array.
Mvh Emil
PeeerMedlem sedan mars 20025 907 inlägg <?php
mysql_connect('host', 'user', 'pass');
mysql_select_db('db');
$resource = mysql_query('select kolumn, kolumn2 from tabell');
while ($row = mysql_fetch_array($resource)) {
echo $row['kolumn'] . $row['kolumn2'] .'<br />';
}
mysql_free_result($resource);
?>
TroxyMedlem sedan mars 20041 505 inlägg Tack så mycket!
Det är en sak jag inte förstår...Hur vet den att den ska gå vidare till nästa post efter varje varv i while-loopen?
TroxyMedlem sedan mars 20041 505 inlägg Jag får detta felmeddelande nu när jag hämtar poster ur databasen:
Warning: mysql_query(): Your query requires a full tablescan...Use EXPLAIN to optimize your query.
Min SQL-fråga:
SELECT * FROM tblcategories order by category asc
Vad är det för fel? :/
aasahMedlem sedan mars 20034 471 inlägg
Troxy skrev:
... Det är en sak jag inte förstår...Hur vet den att den ska gå vidare till nästa post efter varje varv i while-loopen?
Därför att villkoret i while-slingan samtidigt tar fram nästa rad. Alltså, du har:
while ($row = mysql_fetch_array($resource)) {
....
}
Detta uttryck:
$row = mysql_fetch_array($resource)
lägger successivt in värdet från en viss rad (uppifrån och ner i resultatraderna) i $row. När alla rader hämtats och man fortsätter att hämta "nästa" så returneras false i stället. Därmed fungerar while. Så länge det finns fler rader, kör. När raderna tog slut, gå vidare.
Angående ditt SQL-fel, så är det nog bättre att ställa den frågan i SQL-forumet.