Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zwracanie wynikow zapytania... problem z petla..
itsover
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 1.02.2003

Ostrzeżenie: (0%)
-----


<?
$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??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
kurtz
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 786
Pomógł: 0
Dołączył: 18.03.2002
Skąd: Wroclaw/Warszawa

Ostrzeżenie: (0%)
-----


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)) { ..}


--------------------
.. make web your home ..
Go to the top of the page
+Quote Post
itsover
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 1.02.2003

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
kurtz
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 786
Pomógł: 0
Dołączył: 18.03.2002
Skąd: Wroclaw/Warszawa

Ostrzeżenie: (0%)
-----


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


--------------------
.. make web your home ..
Go to the top of the page
+Quote Post
itsover
post
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 1.02.2003

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post
evo
post
Post #6





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 4.02.2003

Ostrzeżenie: (0%)
-----


zwroc uwage gdzie masz $b++ i gdzie to powinno byc?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 00:09