Autor Zpráva
Matess
Profil *
Zdravím,
lze nějak vybrat z DB dva řádky v jednom ciklu WHILE?

Př:
while ($vypis = mysql_fetch_array($result)) {
  echo $vypis["prvni-radek"] . $vypis["druhy-radek"];
}


A pokud by bylo v DB 10 řádků, tak by WHILE zobrazilo jen 5, ale s 10ti údaji.

Diky za odpověď.
Alphard
Profil
musíte vícekrát použít mysql_fetch_array()
Hugo
Profil
while ($vypis = mysql_fetch_array($result)) {
  $vypis2 = mysql_fetch_array($result);
  echo $vypis["prvni-radek"] . $vypis2["druhy-radek"];
}
Joker
Profil
Matess
Viz Hugo, ale podle mě by bylo lepší vybírat řádky po jednom a výpis měnit podle toho, jestli jsou sudé nebo liché.
Při výběru dvou řádků najednou musíte počítat s tím, že počet vybraných řádků může být lichý a potom ten druhý výpis může vyhazovat poznámky o nedefinovaných klíčích pole.
Matess
Profil *
Děkuji!

Joker
A jak prosím zjistím jestli jsou řádky liché nebo sudé?
Watchick
Profil
Matess
$i = 1;
while ($row = mysql_fetch_array($res)){
if($i%2 == 0){
echo "sude";
}else{
echo "liche";
}
$i++;
}
Matess
Profil *
Watchick
Děkuji mnohokrát.
Joker
Profil
Matess
Vždyť jsem to ve svém příkladu napsal.
Jedna možnost je tedy modulo 2, viz Watchick, ale pokud nepotřebujete vědět i číslo řádku, možná je jednodušší použít to, co jsem udělal já.

Ještě tedy vysvětlím teorii za tím:
- Sudá a lichá čísla se střídají- pokud současný řádek je sudý, příští bude lichý a naopak.
- První řádek je lichý (1 = lichá)

Tzn. stačí si udělat bool proměnnou $suda (nebo $licha), na začátku nastavit false (resp. true) a při každém proběhnutí cyklu ji "překlopit"
Příklad jsem už napsal v předchozím příspěvku.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0