Autor Zpráva
wrestler
Profil
Vytvářím zrovna anketu a došel jsem k zajímavému problému (podařilo se mi ho již vyřešit), který bych vám chtěl představit. Jednotlivé položky ankety jsem tahal z databáze a pomocí dotazu je chtěl vypsat. Nicméně když jsem v kódu měl

while($row = @mysql_fetch_assoc(@mysql_query("SELECT id, hodnota FROM ankety WHERE cislo_ankety = '$cislo_ankety' AND typ = 'odp'", $spoj))){

... //zpracování

}
, tak se kód tvářil jako zacyklený.

Nicméně když jsem dotaz dosadil do proměnné a kód upravil na následující podobu:

$polozky_dotaz = @mysql_query("SELECT id, hodnota FROM ankety WHERE cislo_ankety = '$cislo_ankety' AND typ = 'odp'", $spoj);

while($row = @mysql_fetch_assoc($polozky_dotaz)){

...

}
, tak už kód funguje, jak má.

Víte někdo, čím to je? Jestli ano, mohli byste mi to vysvětlit? Díky
Alphard
Profil
Víte někdo, čím to je?
ano
Jestli ano, mohli byste mi to vysvětlit?
vždyť jsi neustále v cyklu opakoval dotaz a zpracovával první vrácený záznam, jinak to nemohlo dopadnout...
nightfish
Profil
Víte někdo, čím to je? Jestli ano, mohli byste mi to vysvětlit?
při každém vyhodnocení podmínky cyklu while se ten dotaz provedl znovu, a tedy mysql_fetch_assoc vracel pořád první řádek výsledku dotazu

jinak doporučuji vyházet všechny ty zavináče a chyby ošetřovat...
např.
$polozky_dotaz = mysql_query($q = "SELECT...");
if (!$polozky_dotaz) {
  echo "Došlo k chybě při provádění dotazu: $q<br>".mysql_error();
} else {
  while ($row = mysql_fetch_assoc($polozky_dotaz)) {
    ...
  }
}

(a na produkčním serveru samozřejmě nastavit display_errors na off)

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