webForumDet fria alternativet

PHP - mysql

4 svar · 272 visningar · startad av Troxy

TroxyMedlem sedan mars 20041 505 inlägg
#1

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
#2
<?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
#3

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
#4

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
#5

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.

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)