Autor Zpráva
Okruh
Profil *
Zdravím,
mám asi začátečnickej problém. Potřebuju pomocí fce mail odeslat (v těle zprávy) více výsledků z DB. Nedaří se mi na nic přijít, pokaždé mi příjde jen první řádek a další už ne. Jak se to dá udělat?
Díky za odpovědi...
dtr
Profil *
záleží na tom, jakou db používáte. Každopádně pravděpodobně získáváte z výsledné sady vrácené databází jen první řádek nějak takto:

$res = mysql_query(" SELECT * FROM tabulka ")// Nějaký sql dotaz vracející více řádků
$x = mysql_fetch_assoc($res);


Což je špatně, to opravdu "fetchne" jen první řádek. Vy potřebujete něco takového:

$res = mysql_query(" SELECT * FROM tabulka ")// Nějaký sql dotaz vracející více řádků
$return = array();
while($x = mysql_fetch_assoc($res)) {
      $return[] = $x;
}

Pak je ale potřeba počítat s tím, že $return je pole, takže pro vytažení všech jeho hodnot je třeba ho procházet např. fcí foreach()
Okruh
Profil *
Díky za odpověď.
Používám MySql. Momentálně používám tento kód:
$vysledek5 = mysql_query("SELECT * FROM kosik WHERE zakaznik='".$_COOKIE["PHPSESSID"]."' ORDER BY id");    
while($radek5 = MySQL_Fetch_Array($vysledek5)){
$telo = "<tr><td>".$radek5["zbozi"]."</td><td><strong>".$radek5["nazev"]."</strong> - ".$radek5["jake"]."</td><td>".$radek5["rocnik"]."</td><td>".$radek5["cena"]." Kč</td><td>".$radek5["kusu"]."</td></tr>";   }

Do fce mail dávám jako zprávu proměnou $telo. Pokud odstraním proměnnou telo, tak se příkaz normálně zpracuje. Ale proměnná $telo opravdu zpracuje jen první řádek.

Není nějaká jiná možnost, než pomocí return a foreach, protože z těchto funkcí nejsem moc moudrej a ani Google mi moc neporadil.

Díky za odpovědi...
Joker
Profil
Okruh:
No tenhle kód skutečně pošle jen jeden řádek, ovšem měl by poslat ten poslední.
Protože v každém cyklu do proměnné $telo přiřadíte nějaký kód, čímž se smaže to, co tam bylo předtím.

Když chcete připojit kód k tomu co tam už je, musíte použít operátor pro spojení, tečku.
$telo = $telo . "nějaký kód" 

anebo zkrácená varianta:
$telo .= "nějaký kód" 
Okruh
Profil *
Děkuju, funguje to perfektně...

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:

0