Autor | Zpráva | ||
---|---|---|---|
marek888 Profil |
#1 · Zasláno: 31. 8. 2013, 19:23:42
Dobrý den. Mám tento PHP kod:
<?php $db_host = "mysql.webzdarma.cz"; $db_username = "---------------"; $db_pass = "--------------"; $db_name = "---------"; @mysql_connect("$db_host", "$db_username", "$db_pass") or die("nepripojeno k databazi"); @mysql_select_db("$db_name") or die("Nespravna databaze, či tabulka!!"); echo "<div id='autor'>"; $q = mysql_query("SELECT * FROM `prispevky` WHERE `obsah` IS NOT NULL ORDER BY `id`") or die(mysql_error()); while ($r = mysql_fetch_array($q)) { echo$r['autor']; } echo "</div>"; echo "<div id='titulek'>"; $q = mysql_query("SELECT * FROM `prispevky` WHERE `obsah` IS NOT NULL ORDER BY `id`") or die(mysql_error()); while ($r = mysql_fetch_array($q)) { echo$r['titulek']; } echo "</div>"; echo "<br>"; echo "<div id='obsah'>"; $q = mysql_query("SELECT * FROM `prispevky` WHERE `obsah` IS NOT NULL ORDER BY `id`") or die(mysql_error()); while ($r = mysql_fetch_array($q)) { echo$r['obsah']; } echo "</div>"; ?> |
||
han5vk Profil |
Robíš to nejako naopak. Vypisuješ zaradom všetkých autorov, potom všetky nadpisy a potom všetky texty. Ty ale potrebuješ vypísať po jednom, celé príspevky. Takto hrozne plytváš prostriedkami, zakaždým ťaháš novú query.
Takto nejako by som to riešil ja: $q = mysql_query("SELECT * FROM `prispevky` WHERE `obsah` IS NOT NULL ORDER BY `id`DESC") or die(mysql_error()); while ($r = mysql_fetch_array($q)) { // Obalový div echo "<div class='prispevok'>; //nadpisok echo "<h1>".$r['titulek']."</h1>"; // autor echo "<small>.$r['autor']."<small>"; //text echo "<p>".$r['obsah']."</p>"; //koniec obalu jednotlivého príspevku echo "</div class='prispevok'>; } Všimni si DESC v query, to je tam preto, aby ti vypisovalo od najvyššieho id /najnovší článok/, nie od najstaršieho. Takto sa ti vypíše každý jeden príspevok do samostatného divu prispevok a bude mať svoj nadpis autora, aj obsah. Samozrejme, tagy si uprav aké chceš, podobne aj CSS, ale používať na všetko divy je dosť prasárna, pozri si Fekální styl.. Toto je ako to robím ja, npotrebujem nič pozicovať, len nastavím marginy a funguje to. Neviem ale, akú štruktúru sa snažíš dosiahnuť, takže by bola dobrá živá ukážka, nech vieme, ako to má vlastne nakoniec byť zoradené a vyzerať. |
||
marek888 Profil |
Díky, ale když sem si to upravil do své formy, tak mi to napsalo sintax error na řádce 153, která neexistuje a že je tam nějakej problém s $end . Pokud bys nalezl problém, budu moc rád. Marek. Zde je dištak kod:
@mysql_connect("$db_host", "$db_username", "$db_pass") or die("nepripojeno k databazi"); @mysql_select_db("$db_name") or die("Nespravna databaze, či tabulka!!"); $q = mysql_query("SELECT * FROM `prispevky` WHERE `obsah` IS NOT NULL ORDER BY `id`DESC") or die(mysql_error()); while ($r = mysql_fetch_array($q)) { echo "<div id='comentare'>"; echo "<h1>". $r['titulek']. "</h1>"; echo "<p>".$r['autor']."</p>"; echo "<p>". $r['obsah']."</p>"; echo "</div>"; ?> |
||
pcmanik Profil |
marek888:
1. Skús sa zahladieť, či ti tam niekde nechýba uzatváracia značka cyklu. 2. Nepoužívaj rozhranie mysql je zastaralé a v budúcnosti bude zmazané, prejdi na mysqli alebo PDO. 3. Nepotlačuj chybové hlášky pomocou @. Nepoužívaj or die. Hneď tvoje druhé or die je hlúposť vyberáš databázu takže je asi nezmysel do chyby napisať že zlá tabuľka. 4. Používaj vystižné názvy premenných $q a $r rozhodne niesu výstižné. 5. Parametre pripojenia a výberu databázy sa nedávajú do úvodzoviek keď sú to premenné. |
||
marek888 Profil |
#5 · Zasláno: 31. 8. 2013, 21:08:30
Díky za rady, už sem to vyřešil, byla to pouze moje nepozornost. Jinak díky za typy, co mám jak předělat.
|
||
juriad Profil |
#6 · Zasláno: 31. 8. 2013, 21:29:31
marek888:
Tím se ti PHP snaží říct, že něco není uzavřené. Nejspíše by mohlo stačit přidat za 11. řádku ukončovací závorku (konec cyklu while) |
||
Časová prodleva: 11 let
|
0