Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
PHP
Rychlé získání dat z sql
30. listopadu 1999, 00.00 | Tip jak rychleji zpracovat data získané z SQL (úspornější kód)..
Úvodem možná někoho zklamu, řeč totiž nebude o žádné zázračné funkci která by zrychlila dotazování v SQL, ale metodě jak si ušetřit čas při práci se získanými daty.
Pro práci se získanými daty existuje několik přístupů: (funkčně si jsou ekvivalentní, většinou jde pouze o ušetřený čas při psaní)
Přímé volání fce mysql_result() a to ve všech místech kde jsou data používána. Tento přístup je časově nenáročný, ale hodí se maximálně pro jedno volání.
Pokud chceme data použít na více místech, uložíme si je do nových proměnných. Tím sice ušetříme mnohé použití funkce na vrácení výsledků, ale stále se (zvláště máme-li hodně dat=sloupců) nevyhneme zdlouhavé inicializaci.
O tom, jak to jde provést efektně vás přesvědčí následující tip.
Využívá se zde funkce mysql_num_fields() pro zjištění počtu sloupců ve výsledku, funkce mysql_field_name pro zjištění jména určitého sloupce a konečně vlastnosti PHP - asociativní pole. V tomto příkladu je hodnota ukládána do pole $GLOBALS, tak aby na ni bylo možné přistupovat i mimo funkci. Pokud toto nahradíte výrazem ${$name}, získáte tak lokální proměnné.
Jméno proměnné pak odpovídá jménu sloupce v databázi.
$res=mysql_query("SELECT * FROM predav WHERE uid='$uid'") or err(mysql_error());
if(!mysql_num_rows($res)) err($err1);
$f=mysql_num_fields($result);
for($i=0; $i<$f; $i++)
{
$name=mysql_field_name($result,$i);
if($name!="uid") $GLOBALS[$name]=mysql_result($result,0,$i);
}
$GLOBALS["datum"]=todatum($GLOBALS["datum"]);
$GLOBALS["zap_dokdy"]=todatum($GLOBALS["zap_dokdy"]);
mysql_free_result($result);
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007