Zdravim,
mam takovy maly problemek v scriptu.
Vyberu si z databaze neaky udaje:
$sql = MySQL_Query("SELECT * FROM `neco`");
tedka tu mam cyklus:
for(;;)
{
//tadz chci aby mne se projel ten $sql a zjistil jestli se neco nerovna necemu
while($a = MySQL_fetch_array($sql))
{
if($neco == $a[neco]) necno delej
}
}
A v cem je ta krpa, ze ten while projede jenom jednou a pri dalsim foru uz ne :-( neaky to blby asociativny pole mne tam stve. Nevite jak to vyresit ?
Nechcese mne davat do toho for pokazde sql dotaz (s sql dotazem ve for to faka) pac by to bylo moc velke zatezovani..
DIke ca cau
podle meho je to asi takhle :
ukazatel ukazuje na konec pole $sql a proto znova nechce projet, pokud pouziju reset tak to pise ze nelze pac neni ani pole a ani object. a to je ta krpa no >:(
Proč tam máš ten cyklus while? nestačí jenom $a=MySQL_fetch_array($sql)
pac potrebuju projet vsecky moznosti, ono tech vytazenych radku z db muze byt hodne..
<HTML>while($a = MySQL_fetch_array($sql))
ti projede vsechny moznosti !
to for je tam nesmysl</HTML>
Jsem myslel, že to tam dá tak
for(;;)
{
$vysledek = mysql_fetch_array($sql);
if(neco == neco)......
;}
Ale to už je jen na něm :-)
ten for tam musi bejt kdyz to ma bejt kalendar..
for projidi dny a mezitim musim testovat jestli se neakej ten radek z db nehodi k onu dnu..
Nemusíš to z db vybírat jen pomocí while :-))
Máto svoje výhody, ale i nevýhody....
for(;;) se bude opakovat do nekonecna, az to rekne, ze byl prekrocen casovy limit
jeee, tady tohle nereste jak to bude projizdet, to je snad jasny ze tam je neaka podminka akorat se mne nechtela psat..
ale proste kdyz to vyberu ze DB tak mam tu promenou $sql ale treba uz nemuzu napsat $sql2 = $sql to proste nejde a toa mne stve :-(
Spendlik: no a jak jinak ?
nikdo nevi co ?
lamy jste :o))) ani neporadite :-)
tak si to vsetko nahadz do pola a potom s tym pracuj...
while($a[] = mysql_fetch_array($sql)) {}
a bude teraz pole poli, teda vsetko, co dostanes z tvjoho sql dotazu. trebars si tam daj aj mysql_fetch_object...
Vždyť sem ti to napsal :-)))
no rekl jsi jenom ze to jde jinak ale ne jak :-)
$nieco = "ahoj"
$sql = MySQL_Query("SELECT * FROM `neco`");
$a = MySQL_fetch_array($sql)
foreach ($a as $prvok) {
if ($nieco == $prvok) {
echo "teraz som na ahoj"
}
}
asi by bylo lepsi submitnout trochu delsi kus kodu, hlavne celej SQL dotaz + ty podminky, treba by to slo prepsat do 1 dotazu a usetril bys cas/bandwith
for(;;)
{
$vysledek = mysql_fetch_assoc($sql);
if($vysledek["sloupec"] == "neco") // pokud se něco rovná něčemu
{echo $vysledek["sloupec"];} //pokud jo, vypíše sloupec
else {echo "nic";} //pokud ne vypíše nic
;} //konec cyklu
pokud by to měl být kalendář tak tak
$sql = "SELECT * FROM `neco`;";
$dotaz = mysql_query($sql);
for($i=1;$i<366;$i++)
$vysledek = mysql_fetch_assoc($dotaz);
{echo "Ke dni číslo $i se vztahuje ";
if($vysledek["sloupec"] != "")
{echo vysledek["sloupec"]."<br>\n";}
else
{echo "____<br>\n";}
;}
hm..podivam se na to neco mne taktez napadlo tak zatim vsem diky :-))
Má to jednu podmínku- musíš mít v db 365záznamů :-)
Spendlik: hm.. tak to je trochu vo nicem pac nikdy nevim, kolik jich je.. :-)