Hej!
i ASP kan man skriva:
while not rs.eof or cnt > 10
där cnt är en räknare som plussas på med 1 varje gång loopen körs. Sålänge det finns poster i databasen och posterna räknas upp till 10 så skrivs data ut.
Hur konverterar man detta till PHP?
12 svar · 412 visningar · startad av ironhead
Hej!
i ASP kan man skriva:
while not rs.eof or cnt > 10
där cnt är en räknare som plussas på med 1 varje gång loopen körs. Sålänge det finns poster i databasen och posterna räknas upp till 10 så skrivs data ut.
Hur konverterar man detta till PHP?
Ser juh snajsigt ut!
Tackar för det....ska testa senare :)
Jag skulle nog ha gjort det direkt i SQL satsen
"SELECT * FROM tabell ORDER BY kolumn DESC LIMIT 10"
Eller har jag missuppfattat helt då jag inte kan nån asp?
Pedda: Nja, ville bara ha koden översatt "rakt av", då den ska användas då jag har tabeller med relationen användare -> film...om flera användare äger en och samma film så kommer selectsatsen att lista:
film1 person1, person2, person3
film2 person2
etc.
Vilket gör att det blir fel antal filmer som loopas ut...
Var nog lite för snabb....får det inte att funka
får inte ut en enda post med denna kod:
$q = "... order by title";
$t = "";
$cnt = 0;
$knt = 0;
while($array = mysql_fetch_array($result) !== false && $knt <= 10)
{
if ($t != $array["title"] ) {
if ($cnt > 0) echo "<br>";
$t = $array["title"];
$cnt = 0;
$knt++;
echo $t;
}
if ($cnt > 0) echo ",";
echo $array["username"];
$cnt++;
}
if ($cnt > 0) echo "<br>";
Funkar bra om jag bara använder:
while($array = mysql_fetch_array($result))
men loopar då ut fel antal
Jag glömde ett par parenteser. Testa det här:
while (($array = mysql_fetch_array($result)) !== false && $knt < 10)
Notera att jag tagit bort likhetstecknet också eftersom du börjar räkna på 0 och vill ha 10 poster.
Det fungerar säkert med != också, men det känns säkrare med !== eftersom det är "false" och inget annat som mysql_fetch_array() returnerar när raderna är slut.
Hej :)
Är det inte så att !== kontrollerar att det verkligen är booleanskt falskt, medan != skulle kunna tolka 0 som falskt (alltså att den även kontrollerar vilken datatyp det handlar om)
Isåfall borde det ju vara !==
MVH Patrik
Patrik81 skrev:
Är det inte så att !== kontrollerar att det verkligen är booleanskt falskt [...]
Det är precis så jag förstått saken i alla fall.
Patrik81 skrev:
Är det inte så att !== kontrollerar att det verkligen är booleanskt falskt, medan != skulle kunna tolka 0 som falskt (alltså att den även kontrollerar vilken datatyp det handlar om)
mundus:~ chansen$ php -r 'printf( "%s\n", ( 0 != FALSE ) ? "True" : "False" );'
False
mundus:~ chansen$ php -r 'printf( "%s\n", ( 0 !== FALSE ) ? "True" : "False" );'
True
1000-tack alla!
Funkade perfekt :)