Autor | Zpráva | ||
---|---|---|---|
flying gentleman Profil |
#1 · Zasláno: 2. 8. 2005, 11:09:14 · Upravil/a: flying gentleman
No ahojte,
tak už jsem se dostal k tomu, jak udělat archív. Normálně zachytám nadpisy článků z db, hodím je jako odkazy, takže pak po kliknutí na nějakej odkaz vznikne ta adresa napsaná v threadu. Jenomže já nevím, jak mám po kliknutí na ten odkaz vypsat celej ten článek. Zatím to vždycky končí tím, že se sice změní adresa z localhost/home/archiv.php na localhost/home/archiv.php?56, ale obsah zůstane stejnej-seznam článků:( Jak to teda mám celej ten článek vypsat, když kliknu na ten odkaz? Jo, kód vypadá asi nějak takhle: <?php $dbconn=mysql_connect("localhost","root","") or die("Nepovedlo se spojit se serverem"); $dbname=mysql_select_db("weblog",$dbconn) or die ("Nepovedlo se otevřít databázi"); $sql="select * FROM articles ORDER BY time desc LIMIT 6,1000"; $result=mysql_query($sql,$dbconn); echo"<ul>"; while($data=mysql_fetch_assoc($result)){ $time=Date("d. n. Y H:i", $data['time']); ?> <li><a href="archiv.php?<?php print $data['ID']; ?> "><?php print $data['nadpis']; ?> </a> / <?php echo $time;?> </li> <?php } echo "</ul>"; ?> |
||
Hugo Profil |
#2 · Zasláno: 2. 8. 2005, 12:27:42
flying gentleman
Pokud dobre chapu dotaz, tak ti staci zmenit tento radek $sql="select * FROM articles WHERE ID = ".$_SERVER["QUERY_STRING"]; |
||
flying gentleman Profil |
#3 · Zasláno: 2. 8. 2005, 12:31:15
Jaký řádek mi stačí změnit?
|
||
WertriK Profil * |
#4 · Zasláno: 2. 8. 2005, 12:34:38
Řekl bych že spíš potřebuješ neco jako toto:
<? $dbconn=mysql_connect("localhost","root","") or die("Nepovedlo se spojit se serverem"); $dbname=mysql_select_db("weblog",$dbconn) or die ("Nepovedlo se otevřít databázi"); if ($action="show_id") { $sql="select * FROM articles WHERE ID= ".$id; $result=mysql_query($sql,$dbconn); } else { $sql="select * FROM articles ORDER BY time desc LIMIT 6,1000"; $result=mysql_query($sql,$dbconn); echo"<ul>"; while($data=mysql_fetch_assoc($result)) { $time=Date("d. n. Y H:i", $data['time']); echo "<li><a href=\""archiv.php?id=<?php print $data['ID']; ?>&action=show_id\">"; echo $data['nadpis']; echo "</a> / $time </li>"; } echo "</ul>"; ?> možná to bude házet nejakou chybu, ale nemelo by.... |
||
flying gentleman Profil |
#5 · Zasláno: 2. 8. 2005, 12:36:19
WertriK:tak to háže jen bílou obrazovku:)
|
||
flying gentleman Profil |
#6 · Zasláno: 2. 8. 2005, 12:41:09
No abyste to správně pochopili, tak tohle
<?php $dbconn=mysql_connect("localhost","root","") or die("Nepovedlo se spojit se serverem"); $dbname=mysql_select_db("weblog",$dbconn) or die ("Nepovedlo se otevřít databázi"); $sql="select * FROM articles ORDER BY time desc LIMIT 6,1000"; $result=mysql_query($sql,$dbconn); echo"<ul>"; while($data=mysql_fetch_assoc($result)){ $time=Date("d. n. Y H:i", $data['time']); ?> <li><a href="archiv.php?<?php print $data['ID']; ?> "><?php print $data['nadpis']; ?> </a> / <?php echo $time;?> </li> <?php } echo "</ul>"; ?> má vypsat seznam všech nadpisů článků jako odkazy a po kliknutí bych chtěl vypsat článek. Odkazy b samozřejmě měly zmizet:) |
||
Hugo Profil |
#7 · Zasláno: 2. 8. 2005, 12:41:14
flying gentleman
Pokud chces zobrazit clanek, tak ho musis natahnout z db, na to pouzijes ten dotaz co jsem psal o par prispevku vys. Jen musis osetrit pripad, kdy chces zobrazit jen seznam clanku. To je to co psal wertrik. |
||
flying gentleman Profil |
#8 · Zasláno: 2. 8. 2005, 12:41:45
Když tak www.misulinek.wz.cz/archiv.php ať aspoň víte, co to dělá:)
|
||
flying gentleman Profil |
#9 · Zasláno: 2. 8. 2005, 12:42:42
To WertriKovo ne a ne rozchodit, je tam asi nějakej problém s uvozovkama a apostrofama, ale je jich tolik, že tu chybu nemůžu najít.
|
||
Hugo Profil |
#10 · Zasláno: 2. 8. 2005, 12:45:34
if ($action="show_id")
Chybi tam jedno rovnitko if ($action=="show_id") echo "<li><a href=\""archiv.php?id=<?php print $data['ID']; ?>&action=show_id\">"; echo "<li><a href=\"archiv.php?id=<?php print $data['ID']; ?>&action=show_id\">"; Doufam, ze jsem nic neprehledl |
||
flying gentleman Profil |
#11 · Zasláno: 2. 8. 2005, 12:47:20
Pořád nic. Uvozovky jsou svině:)
|
||
Hugo Profil |
#12 · Zasláno: 2. 8. 2005, 12:49:03
Jeste je chyba tady
echo "<li><a href=\""archiv.php?id=<?php print $data['ID']; ?>&action=show_id\">"; |
||
flying gentleman Profil |
#13 · Zasláno: 2. 8. 2005, 12:52:59
Ne-e, prostě to nefunguje:(
|
||
flying gentleman Profil |
#14 · Zasláno: 2. 8. 2005, 12:54:14
Dívám se na to v PSPadu (zvýrazněná syntaxe), ale neumím tu chybu najít.
|
||
Hugo Profil |
#15 · Zasláno: 2. 8. 2005, 13:07:16 · Upravil/a: Hugo
Takto je to syntakticky spravne
<?php $dbconn=mysql_connect("localhost","root","") or die("Nepovedlo se spojit se serverem"); $dbname=mysql_select_db("weblog",$dbconn) or die ("Nepovedlo se otevøít databázi"); if ($action=="show_id") { $sql="select * FROM articles WHERE ID= ".$id; $result=mysql_query($sql,$dbconn); } else { $sql="select * FROM articles ORDER BY time desc LIMIT 6,1000"; $result=mysql_query($sql,$dbconn); } echo"<ul>"; while($data=mysql_fetch_assoc($result)) { $time=Date("d. n. Y H:i", $data['time']); echo "<li><a href=\"archiv.php?id=".$data['ID']."&action=show_id\">"; echo $data['nadpis']; echo "</a> / ".$time." </li>"; } echo "</ul>"; ?> |
||
flying gentleman Profil |
#16 · Zasláno: 2. 8. 2005, 13:08:48
f ($action=="show_id") {
$sql="select * FROM articles WHERE ID= ".$id; $result=mysql_query($sql,$dbconn); Hugo:předpokládám správně, že do této části mám doplnit zachycení článku? Jako echo $data['article']??? |
||
flying gentleman Profil |
#17 · Zasláno: 2. 8. 2005, 13:11:22
Takže dělá to zhruba tohle:pokud kliknu na nějakej odkaz, přesměruje mě to znova na ten seznam odkazů a pod ním to vypíše "Nadpis článkuResource id #cislo"
|
||
flying gentleman Profil |
#18 · Zasláno: 2. 8. 2005, 13:12:35
Update: tak to resource id#cislo byla chyba v syntaxi, tu jsme odstranil, ale pořád mě to háže ten seznam článků i po kliknutí:(
|
||
Hugo Profil |
#19 · Zasláno: 2. 8. 2005, 13:14:56
Misto $id pouzij $_SERVER['QUERY_STRING']
asi takto f ($action=="show_id") { $sql="select * FROM articles WHERE ID= ".$_SERVER['QUERY_STRING']; $result=mysql_query($sql,$dbconn); $data = MySQL_Fetch_Assoc($result); Potom budes mit nadpis v $data['article'] P.S.: Neuvazoval jsi nekdy o tom, precist si neco o php?? |
||
flying gentleman Profil |
#20 · Zasláno: 2. 8. 2005, 13:15:43
Hele tak doma to nefacha ale na www.misulinek.wz.cz/pokus.php jo! To je zajímavý.
|
||
Hugo Profil |
#21 · Zasláno: 2. 8. 2005, 13:15:48
Jo a jeste musis upravit tu podminku, mela by vypadat nejak takto
if ($_SERVER['QUERY_STRING'] != '') |
||
flying gentleman Profil |
#22 · Zasláno: 2. 8. 2005, 13:16:40
Hugo: já vím, jsem lama. Ale už jsem se naučil zachytávat výpis z db pomocí těch mysql_fetch_assoc/array.
Jen jsem se ujišťoval:) |
||
flying gentleman Profil |
#23 · Zasláno: 2. 8. 2005, 13:20:19
Hugo: v čem je výhoda toho $_SERVER['QUERY_STRING']???
Stejně mi to s tím háže nějakou chybu, takže tam nechám to id. |
||
Hugo Profil |
#24 · Zasláno: 2. 8. 2005, 13:21:23
Protoze doma asi nemas povolene register_globals, misto $id pouzij $_GET['id'] a pojede to.
Tu podminku neupravuj. Psal sem to pro ten odkaz co je v nadpisu teto diskuze. |
||
Hugo Profil |
#25 · Zasláno: 2. 8. 2005, 13:23:20
flying gentleman
v čem je výhoda toho $_SERVER['QUERY_STRING']??? Myslel sem, ze mas ty odkazy ve stylu http://localhost/home/archiv.php?56 Pak musis pouzit $_SERVER['QUERY_STRING'], coz je promenna, ktera obsahu retezec z URL (ten za otaznikem). Ale ty predavas cislo clanku pomoci ?id=56&..., takze tam dej $_GET['id'] |
||
flying gentleman Profil |
#26 · Zasláno: 2. 8. 2005, 13:25:04
Aha, díky za vysvětlení. Doma jsem to nerozjel ani pomocí předávání GEt, takže už nevím. No hlavně že to fachá na wz.
|
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0