Autor | Zpráva | ||
---|---|---|---|
Pan X Profil |
#1 · Zasláno: 25. 6. 2011, 14:49:47
Zdravím, mám tu menší problém a nevím si sním rady...
Mám tu funkci, která vytváří sql dotaz na základě parametrů, které dostane $sql = 'SELECT * FROM `br_texts` WHERE posittion = \''.$posittion.'\''; if(isset($order)){ $sql .= ' ORDER BY '.$order; $sql .= ' '.$sort; } if(isset($limit)){ $sql .= ' LIMIT '.$limit; } echo $sql; $query = MySQL_Query($sql); echo MySQL_Error(); $w = null; while($db = MySQL_Fetch_Array($query)){ if($posittion == 'index_text'){ $w .= '<h1>'.$db['header'].'</h1>'; }if($posittion == 'actual'){ $w .= '<div class="aktualita"><h2>'.$db['header'].'</h2>'; } $w .= '<p>'.$db['text'].'</p>'; if($posittion == 'actual'){ $w .= '<p class="aktualita_datum">'.date("d.m.Y H:i", $db['date']).'</p> <p class="aktualita_tlacitko_cerny"><a href="">Zobrazit celé</a></p> <div class="clear"></div></div>'; } return $w; } když si enchám vypsat $sql výsledek je takto: SELECT * FROM `br_texts` WHERE posittion = 'actual' LIMIT 20 |
||
panther Profil |
#2 · Zasláno: 25. 6. 2011, 15:25:37
Pan X:
nezdá se mi na konci while ten return, nedělá tam neplechu on? Mělo by tam být spíše echo.
|
||
Pan X Profil |
#3 · Zasláno: 25. 6. 2011, 15:50:43
panther:
Ha, díky moc ... ten return měl být až za tím while... toho sem si nevšiml... „Mělo by tam být spíše echo“ S tímdle nevím... Pokud vím tak je "pravidlo" že by funkce nebo methody měli výsledky vrace a nikoliv vypisovat.... |
||
panther Profil |
#4 · Zasláno: 25. 6. 2011, 16:01:38 · Upravil/a: panther
Pan X:
„Pokud vím tak je "pravidlo" že by funkce nebo methody měli výsledky vrace a nikoliv vypisovat“ ano, však ty tu žádnou funkci nemáš. Máš tam jen cyklus, což je control structure, nikoliv function. Více v příkladech v manuálové stránce věnované while. Ono, když ti to trochu přiblížím, while je na podobné úrovni jako podmínka if (též není funkce), v té taky vypisovat můžeš. Druhá věc je, jestli vypisovat chceš, nebo vypisuješ až někde v šabloně. Ono, kdybychom šli do důsledků, celé zvěrstvo v tvém kódu nespočívá ve volbě echo vs. return, ale v tom, že v PHP tvoříš celé HTML bloky.
|
||
Pan X Profil |
#5 · Zasláno: 26. 6. 2011, 16:08:27
panther:
„ano, však ty tu žádnou funkci nemáš. Máš tam jen cyklus, což je control structure, nikoliv function.“ Neuvědomil jsem si že tu není celý kód... To co tu je je uvnitř funkce... „Druhá věc je, jestli vypisovat chceš, nebo vypisuješ až někde v šabloně“ Vypisuji až v šabloně „ale v tom, že v PHP tvoříš celé HTML bloky.“ Todle je věc o které vím, že dělám špatně. Ale nedaří se mi někde zjistit jak to řešit, jak to dělat správně... |
||
panther Profil |
#6 · Zasláno: 27. 6. 2011, 04:03:15 · Upravil/a: panther
Pan X:
„Todle je věc o které vím, že dělám špatně. Ale nedaří se mi někde zjistit jak to řešit, jak to dělat správně...“ naplnit pole a v šabloně vypsat. $data = array(); while($row = mysql_fetch_array($query)) { $data[] = $row; } a v šabloně něco takového (takto by to vypadalo se smarty, nevím, co přesně používáš) {foreach from=$data item=row} <h1>{$row.header}</h1> ... {/foreach} |
||
Časová prodleva: 13 let
|
0