Jump to content
GIGN Forum

Do While[php]


RMXjunior
 Share

Recommended Posts

Sveiki, man te i problēma.. Šāds kods:

PHP

$result = mysql_query("SELECT id, username FROM users WHERE online=1") or die("Error in who's online query!");

    $row = mysql_num_rows($result);

    echo "MySQL_num_rows: " .$row;

    echo "<ol>";

    do {

    echo "<li><a href='?p=users&id={$users['id'>}'>{$users['username'>}</a><br />";

    } while ($users = mysql_fetch_array($result));

    echo "</ol>";

Un tā sanāk lapā: Visu laiku 1. ir tukšs un sākās no 2. =\

post-12145-1222801625.png

Kāds var pateikt, kāpēc man tur kur 1. nekas nav? Un kāpēc vispār tā ir :D

Link to comment
Share on other sites

wap1337 - Bāzē tā 1 nav.

rāpuli - ar db viss kārtībā, un šis koda gabals nav saistīts ar pārējo koda daļu.

n0r3k - Paldies! Tiešām do {} while bij` pie vainas :P Ja kāds var tad paskaidrojat durakam - kad lieto do { } while, un kad while {} ... skatījos php.net, bet tiešu atbildi nesapratu =\ paskaidrojat lūdzu cilvēku valodā :D

Edited by RMXjunior
Link to comment
Share on other sites

while ( blah ) { ... } ir cikls ar priekšnosacījumu ( izpilda/pārbauda "blah" pirms izpildīt figūriekavu bloku "..." )

do { ... } while ( blah ); ir cikls ar pēcnosacījumu ( izpilda/pārbauda "blah" pēc tam, kad "..." jau izpildīts ).

Pirmajā gadījumā { ... } bloks var neizpildīties vispār, taču otrajā gadījumā tas garantēti vismaz vienu reizi izpildīsies.

Ja tu velc rindiņu ārā tikai pēc tam, kad jau izdrukā tukšumu, tad attiecīgi arī nekas neparādās, jo nebija, ko izdrukāt.

Koda sākumā iemočī "error_reporting(E_ALL)" un php.ini ieslēdz display_errors, tad jautājums atrisinātos automātiski, apmēram šādi: "Notice: variable $users not initialized", jo pirmajā cikla atkārtojumā viņš vēl nebūtu uztaisīts.

Turpmāk jālieto tas, kas attiecīgajā situācijā vajadzīgs, nevis "tikai tas".

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...