Cau, prosim poradte mi, jak nacist data z tabulky do jendorozmerneho pole.
Muj skript nefunguje:
$vysledek1=mysql_query("SELECT * FROM 'tab' WHERE id_sk=1 ORDER BY RAND()");
$tym_prvni_sk=array();
$a=0;
while($zaznam=mysql_fetch_row($vysledek1))
{
$tym_prvni_sk[$a]=$zaznam["polozka"];
$a++;
echo "$tym_prvni_sk[".$a."]=".$tym_prvni_sk[$a]."<br>";
}
Jde mi hlavne o nacteni dat z tabulky do pole.
mozna by bylodobre napsat, co nefunguje... nic mene "ORDER BY RAND()" je hodne ulet. Toto neni dobre..
jinak to vypada dobre.
mozna je zbytecne delat $pole[$a]=$zaznam[x];
staci $pole[] = $zaznam;
a vyhodit $a
Zovna to ORDER BY RAND( ) je normální fungující struktura.
Jinak se mi to nechce zkoušet, ale přemýšlel jsem, proč strkat výstup z db do pole. A nic mě nenapadlo...
je to vicemene pro prehlednost, pac s tema polema pak pracuju dale v celkem slozitych skriptech. Tak jsem si to chtel nejdriv nahazet do pole a pak s tim pracovat. Potreboval bych oindexovane pole. Abych to mohl ovladat pomoci cyklu for. Kdyz bych to udelal bez $a, tak by mi to nahazelo hodnoty za sebe, a bez indexu bych z toho pole nedostal co potrebuju, teda aspon myslim.
To echo na konci melo byt kontrolni, jestli to vubec facha, ale misto toho mi napsal eror: expect T_STRING, nebo tak neco....
no fakt 'order by rand()', no toto? (-;
$a[] = 1;
$a[] = 2;
$a[] = 3;
stvori pole ktere vypada takto:
v $a[0] je 1
v $a[1] je 2
v $a[2] je 3
ted se na to divam podruhe...
ono to funguje, akorat do $a[1] priadis "neco" a pak se divas na $a[2], kde nic neni.
zkus za cyklem pro kontrolu napsat radeji:
print_r($a);
jezismarjaa uz to vidim, trochu trapas :)
...a co dela print_r?
Jinak nevim co mas proti order by(), zatim mi to vsude fungovalo :)
jen tak pro presnost, jak se zadava oindexovane pole?
$pole[$a] nebo $pole[a].
No mozna by to slo udelat bez indexu. Nejdriv by se v cyklu pole postupne naplnovalo a pak by se postupne vyprazdnovalo.
$vysledek1=mysql_query("SELECT * FROM 'tab' WHERE id_sk=1 ORDER BY RAND()");
$tym_prvni_sk=array();
while($zaznam=mysql_fetch_row($vysledek1))
{
$tym_prvni_sk[]=$zaznam["polozka"];
echo $tym_prvni_sk[]."<br>";
}
Myslite, ze by to slo?
ne neslo :)
teda ukladani jde, ale nacitani jen s indexem, ci jakymkoliv jinym identifikatorem.
Pole s indexem: $pole[$a]
...jo a na zaver - VYHYBEJTE SE POUZIVANI myslq_fetch_row a radsi pouzivejte mysql_fetch_array!
jendakenda:
> VYHYBEJTE SE POUZIVANI myslq_fetch_row a radsi pouzivejte mysql_fetch_array!
Proc jako?Nevidim jedinej duvod.Osobne radsi pouzivam stejne pole ciselne a ne asociativni. i to totiz ma sve vyhody.
BTW dotaz mas:
SELECT * FROM 'tab' WHERE id_sk=1 ORDER BY RAND()
Vidis rozdil v porovnani s
SELECT * FROM tab WHERE id_sk='1' ORDER BY RAND()
, coz jsi mel asi namysli?