webForumDet fria alternativet
Logga in / Bli medlem

PHP - mysql

PHP

4 svar · 272 visningar · startad av Troxy

Medlem sedan mars 20041 505 inlägg
Trådstart#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

Medlem 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);
?>
Medlem 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?

Medlem 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? :/

Medlem 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.

269 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)