Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zwracanie wynikow zapytania... problem z petla..
Forum PHP.pl > Forum > PHP
itsover
<?
$sql=mysql_connect("localhost","root","");
$baza=mysql_select_db("blog");
$zapytanie=mysql_query("SELECT * FROM blog WHERE miesiac='$miesiac' LIMIT 0,31");
$b=1;
WHILE($b<=31){
WHILE($dni=mysql_fetch_array($zapytanie)){
$dni2="$dni[4]";
}
if($dni2!="$b"){echo" $b ";}
else{echo" <b>$dni2</b> ";}
$b++;
}
?>
powyzczy kod ma wyswietlac wszystkie dni z danego miesiaca, a te ktore znajduja sie w bazie danych maja byc pogrubione.. niestety zwraca mi jedynie pierwszy rekord. gdzie blad??
kurtz
Cytat
Kod
<?

$sql=mysql_connect("localhost","root","");

$baza=mysql_select_db("blog");

$zapytanie=mysql_query("SELECT * FROM blog WHERE miesiac='$miesiac' LIMIT 0,31");

$b=1;

WHILE($b<=31){

    WHILE($dni=mysql_fetch_array($zapytanie)){

        $dni2="$dni[4]";

    }

    if($dni2!="$b"){echo" $b ";}

    else{echo" <b>$dni2</b> ";}

    $b++;

}

?>

powyzczy kod ma wyswietlac wszystkie dni z danego miesiaca, a te ktore znajduja sie w bazie danych maja byc pogrubione.. niestety zwraca mi jedynie pierwszy rekord. gdzie blad??
dlatego, ze wewnetrzny while nie ma za duzo wspolnego z zewnetrznym. konkretnie: przy pierwszym obiegu $b<31 zostana od razu zwrocone wszystkie wiersze mysql (a wiec w $dni2 wyladuja ostatnia wartosc). potem wykona sie if no 30 razy jeszcze raz zewnetrzny while ale juz bez wewnetrznego.
rozwiazanie: wrzucic tego if-else do wewnetrznego while'a albo po prsotu polaczyc oba while -> while($b<=31 && $dni=mysql_fetch_array($zapytanie)) { ..}
itsover
niestety obydwa rozwiazania niedzialaja.. pierwsze zwraca tyle razey ile jest rekordow w tabeli liczbe 1, a drugie zwraca tyle razy liczy w danej kolejnosci.. dwa rekordy = 1 2 sad.gif
kurtz
Cytat
niestety obydwa rozwiazania niedzialaja.. pierwsze zwraca tyle razey ile jest rekordow w tabeli liczbe 1, a drugie zwraca tyle razy liczy w danej kolejnosci.. dwa rekordy = 1 2 :(
[?]

ja widze tylko jedno rozwiazanie ;) i jakas moja sugestie co do tego jak moglo by wygladac drugie. zarzekac sie nie beda ale powinno dzialac ;)
itsover
Kod
<?

$sql=mysql_connect("localhost","root","");

$baza=mysql_select_db("blog");

$zapytanie=mysql_query("SELECT * FROM blog WHERE miesiac='$miesiac' LIMIT 0,31");

$b=1;

WHILE($b<=31){

    WHILE($dni=mysql_fetch_array($zapytanie)){

        $dni2="$dni[4]";

        if($dni2!="$b"){echo" $b ";}

        else{echo" <a href="index.php?pokaz=blog&mod=arch&dzien=$dni2&miesiac=$miesiac&rok=$rok">$dni2</a> ";}

    }

    $b++;

}

?>

lub
Kod
<?

$sql=mysql_connect("localhost","root","");

$baza=mysql_select_db("blog");

$zapytanie=mysql_query("SELECT * FROM blog WHERE miesiac='$miesiac' LIMIT 0,31");

$b=1;

WHILE($b<=31 && $dni=mysql_fetch_array($zapytanie)){

        $dni2="$dni[4]";

        if($dni2!="$b"){echo" $b ";}

        else{echo" <a href="index.php?pokaz=blog&mod=arch&dzien=$dni2&miesiac=$miesiac&rok=$rok">$dni2</a> ";}

    }

    $b++;

}

?>

hmmm... mi raczej niedziala...
evo
zwroc uwage gdzie masz $b++ i gdzie to powinno byc?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.