Autor Zpráva
Lion76
Profil *
Zdravim, potreboval bych poradit, jak v cyklu while vypsat v zahlavi nejaky text, dalsi nejaky text po 10-ti zaznamech a nakonec nejaky text v paticce. Lze to prosim nejak udelat?
Joker
Profil
Pokud "po 10 záznamech" znamená každých 10 záznamů, tak nějak takhle:

$i = 0;
echo("Hlavička");
while(neco()){
neco_delej();
$i++;
if(($i % 10) == 0) echo("text po deseti záznamech");
}
echo("Patička");

Pokud "po 10 záznamech" znamená jen za desátým záznamem, bylo by tam místo podmínky (($i % 10) == 0) jenom ($i==10)
FNM
Profil *
Spíš si to dej do cyklu for

např.

$db = funkce_s_pripojenim_k_db();
$query = "SELECT ...";

$result = $db->query($query);

if (($result->num_rows)>0) {

$i = 1;

while ($row = $result->fetch_rows) {

for ($i=1;$i<=10;$i++) {

echo 'záznamy z db';
}
echo 'To co chceš po 10 záznamech'; nebo nastavíš proměnnou $_SESSION, která ti sedí na echu v záhlaví na nějakou hodnotu (text);

for ($i=11;$<=20;$i++) {

echo 'záznamy z db';
}
echo 'To co chceš po 20 záznamech'; nebo nastavíš proměnnou $_SESSION, která ti sedí na echu v záhlaví na nějakou hodnotu (text);


$i++;

}

}




Zhruba takhle, nezkoušel jsem to, ale mělo by ti to přinejmenším napovědět.
FNM
Profil *
Joker byl rychlejší :-)
Joker
Profil
FNM
To je poměrně kuriózní řešení :o)
Myslím, že takhle by to nefungovalo.

A pro výpis z databáze se právě hodí while-cyklus, protože obvykle nevím, kolik těch záznamů bude. Neříkám, že to přes for-cyklus nejde udělat, ale while mi na tohle přijde lepší.
Lion76
Profil *
Joker - FNM

Super, po nekolika upravach to funguje podle mych potreb. Dekuji.
FNM
Profil *
Tak až budu doma, tak to schválně doma zkusím, while tam mám a bez něj by to nešlo. Samozřejmě, tvoje řešení je elegantnější a zabralo míň místa.:-)
Joker
Profil
FNM
No, moje námitka k tomu skriptu je, že to bude správně fungovat jen pro počty záznamů dělitelné dvaceti.
Jinak to buď vyhází kupy varování, nebo by v obou těch for-cyklech musela být kontrola typu:
if(uz_nejsou_zaznamy()) continue;
...což bude ten skript zbytečně zpomalovat (navíc ta kontrola se vždycky udělá 20x, i když budu mít třeba jen jeden záznam)

A ani tak to nebude vypisovat správně, když budu mít třeba dva záznamy, bude výstup:
první záznam
druhý záznam
To co chceš po 10 záznamech
To co chceš po 20 záznamech

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: