Portál AbcLinuxu, 14. května 2025 03:07
Ahoj,
potřeboval bych poradit ohledně cyklu v php: Mám cyklus
while ($result_row = mysql_fetch_row(($result)))
{
$result_row[0]=$nejaka_promena
}
echo $nejakapromena;
Ale nefunguje to, jak mam udelat, aby to jelo?
Díky
Diskuse byla administrátory uzamčena.
FAQ: Proč byl uzamčen/smazán můj dotaz v Poradně?
while ($vysledek=mysql_fetch_row($dotaz))
{
$nejaka_promena=$vysledek[0];
}
echo("$nejaka_promena");
echo("$nejaka_promena");Fuj, to je ale prasárna! Výpis obsahu proměnné se provádí jednoduchým
echo $nejaka_promena;
. O parsování textu v uvozovkách.
$sql = "select cfadod, druhmater, dalsiudajemater from material"; $sql_result = mysql_query($sql,$connection) or die ("Nemohu provést dotaz"); Zde hlavička tabulky while ($row = mysql_fetch_array($sql_result)) { $D1 = $row["cfadod"]; $D2 = $row["druhmater"]; $D3 = $row["dalsiudajemater"]; echo" Zde výpis z tabulky .. } echo "/konec tabulky";
while ($row = mysql_fetch_array($sql_result)) {Toto by se dalo vylepšit,
mysql_fetch_array
implicitně vrací pole s asociativními i numerickými klíči, výsledek dotazu je tedy de facto předán dvakrát. Buď použít mysql_fetch_assoc
, nebo mysql_fetch_row
, nebo alepsoň u mysql_fetch_array
specifikovat typ výsledku druhým parametrem.
Dále jsou zbytečně použity uvozovky (double-quotes), viz syntax datového typu string
.
Sice nevím, jak vypadá kód pro výpis z tabulky, ale myslím si, že je zbytečné duplikovat $row["cfadod"]
do $D1
, $row["druhmater"]
do $D2
a tak dále. Není problém vypisovat hodnoty přímo z toho asociativního pole, kopírovat jej do dalších proměnných netřeba.
$i=0; while($result_row = mysql_fetch_array($result, MYSQL_NUM)){ #pokud chceš asociativní pole místo číslovaného, tak místo MYSQL_NUM napiš MYSQL_ASSOC $nejaka_promenna[$i] = $result_row[0]; $i++; }
$nejaka_promenna[$i] = $result_row[0]; $i++;Použití
$i
je zbytečné, lze využít empty square bracket syntax, viz
syntax datového typu array
. Stačí tedy:
$nejaka_promenna[] = $result_row[0];
A ještě, pokud hrajeme na E_NOTICE, je lepší proměnné inicializovat:
$nejaka_promenna = array(); while (…
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.