Autor Zpráva
StormHunter
Profil *
Dobrý den,
řeším problém zobrazování článků a po následném rozklikntí jak daný článek zobrazit. Prosím omluvte mé amaterské zpracování.
$login = MySQL_Query("SELECT * FROM clanky ORDER BY id DESC");
   while ($zaznam = MySQL_Fetch_row($login))
    if("$_GET[page_id]"=="a&$strana"){echo"
     <br><big><font color=\"#FF9933\"><b>$zaznam[2]</b></font></big><br>
   <img src=\"images/cara.png\"><br><br>
   <table>
   <tr><td><h3>$zaznam[3]</h3></td></tr>
      <tr><td><td><p align=\"right\"> $zaznam[1],$zaznam[4]</p> </tr>
    </table>
    ";} else{
    
    
    
echo("
 <br><big><font color=\"#FF9933\"><b>Články</b></font></big><br>
   <img src=\"images/cara.png\"><br><br>
 ");
 
$login = MySQL_Query("SELECT * FROM clanky ORDER BY id DESC");

  while ($zaznam = MySQL_Fetch_row($login)){
  $_GET[strana] = $zaznam[0];
    echo "<a href=\"clanky.php?page_id=a&$_GET[strana]\"><h1>$zaznam[2]</h1> 
   "; } }

Spodní část má řešit odkaz u názvu článku a horní má zjistit zda je rozkliknut nějaký článek a pokud ano tak ho má zobrazit.

Děkuji za jakoukoli radu
Radek9
Profil
StormHunter:
Přesně za to, že jdou proměnné vkládat přímo do stringu, PHP nesnáším. (Jinak je to super jazyk, ale tohle mě prostě brutálně štve.)
První řádek by měl vypadat takhle:
if($_GET["page_id"]=="a&".$strana){
A druhý takto:
echo "<a href=\"clanky.php?page_id=a&".$_GET["strana"]."\"><h1>$zaznam[2]</h1>";
Jozin
Profil
Radek9:
if($_GET["page_id"]=="a&".$strana){
tak takto rozhodně ne. Vždyť se ta podmínka nikdy nemůže splnit. Znak & rozděluje indexy proměnné $_GET v adresním řádku. takže $strana je vlastně název další proměnné, což dotazující asi nechce. Nic to však nemění na tom, že podmínka nebude nikdy splněna.

StormHunter:
Copak je v proměnné $strana? Dále proč je page_id = a? pokud má být za page_id identifikátor nějakého článku, tak pak adresa bude vypadat takto:
http://domena.cz/clanky.php?page_id=123, kde 123 je id v DB nikoli
http://domena.cz/clanky.php?page_id=a&123, protože 123 není pak hodnota, ale název indexu, stejně tak jako je page_id
Radek9
Profil
Jozin:
Já netuším, jak to myslel. Upravil jsem mu to jen tak, aby tam nebyly ty proměnné přímo ve stringu. To, jak s tím naloží, je jen a jen na něm.
StormHunter
Profil *
Jozin:
už jsem si to upravil a funguje. „if($_GET["page_id"]=="a&".$strana){“ mělo rozpoznat, jestli proměnná není prázdná, asi neúspěšne. Od vás jsem nepochopil vše, ale $zaznam[0] je id článku. Přes noc ze mě vypadlo toto:

 if ($_GET[clanek]<>''){
   $login = MySQL_Query("SELECT * FROM clanky ORDER BY id DESC");
   while ($zaznam = MySQL_Fetch_row($login))
    if ($_GET[clanek]==$zaznam[0]){
    echo"
     <br><big><font color=\"#FF9933\"><b>$zaznam[2]</b></font></big><br>
   <img src=\"images/cara.png\"><br><br>
   <table>
   <tr><td><h3>$zaznam[3]</h3></td></tr>
      <tr><td><p align=\"right\"> $zaznam[1],$zaznam[4]</p> </tr>
    </table>
    ";}} else{
    
    
    
echo("
 <br><big><font color=\"#FF9933\"><b>Články</b></font></big><br>
   <img src=\"images/cara.png\"><br><br>
 ");
 
$login = MySQL_Query("SELECT * FROM clanky ORDER BY id DESC");

  while ($zaznam = MySQL_Fetch_row($login)){
    echo "<a href=\"clanky.php?clanek=$zaznam[0]\"><h1>$zaznam[2]</h1><br>
   "; } }
   
  
  
  
   ?>

První zvýrazněný zjistí, zda proměnná není prázdná a pokud má nějakou hodnotu, druhý zvýrazněný přiřadí článek k vypsání.
Pokud je proměná prázdná, spodní zvýzarněný zobrazí názvy článků.
StormHunter
Profil *
mimochodem Děkuji za pomoc
czmarci
Profil *
StormHunter:
if ($_GET[clanek]<>''){



Nebylo by lepší v prvním řádku použít:
if(!empty($_GET[clanek])) {
...
}


?
panther
Profil
czmarci:
když už, tak isset($_GET['clanek']) && !empty($_GET['clanek'])
StormHunter
Profil *
raději zůstanu u mé varianty :). Díky!
Davex
Profil
panther:
Stačí jen !empty($_GET['clanek']), protože neexistující proměnná je také prázdná a k upozornění na chybu nedojde.
czmarci
Profil *
panther:
když už, tak
 isset($_GET['clanek']) && !empty($_GET['clanek'])


Jak píše Davex, neexistující proměnná je také prázdná, na druhou stranu také používám isset
if(isset($_GET['action']) && $_GET['action'] == "katalog" && isset($_GET['detail']) && !empty($_GET['detail']) )
panther
Profil
Davex:
aha, to se omlouvám. Žil jsem v domnění, že... Spletl jsem se, děkuji za opravu.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0