Diskuze: Nefunkční if(isset($id))

PHP PHP Nefunkční if(isset($id)) American English version English version

Avatar
Marokis
Člen
Avatar
Marokis:

Ahoj

Potřeboval bych pomoct. Mám produkt který načítá informace z mysql databáze a má na obrázku href ?s=product&id="­.$id." když pak mám ?s=product kde je if(isset($id)) tak mi to nic neukáže, má to ukázat výpis detailu produktu. U každého výpisu mám $id = $newFetch['id'];

Nevíte kde je chyba ?? Předem díky

Zdrojáky jsou tady :

    <?php


   $vypis = mysql_query("SELECT * FROM product WHERE pkategorie = 'INTERIÉR'");
                while($newFetch = mysql_fetch_array($vypis)) {
                $id = $newFetch['id'];
                  $nazev = $newFetch['nazev'];
                  $popis = $newFetch['popis'];
                  $foto = $newFetch['foto'];


                  echo " <div class=\"hlavni-hlavni2\">

        <div class=\"maly-blok-zobrazeni2\">
    <a href=\"?s=product&subs=product&id=".$id."\"><img src=\"".$foto."\" width=\"231px\" height=\"230px\"></a>
    <div class=\"title-foto-blok\">
    ".$nazev."
    </div>
    </div>


    </div> ";
                }



?>
  <?php
if($subs == "product") {
               if (!isset($_GET["id"])) {

 $vypis = mysql_query("SELECT * FROM product");
              while($newFetch = mysql_fetch_array($vypis)) {
              $id = $newFetch['id'];
                $nazev = $newFetch['nazev'];
                $popis = $newFetch['popis'];
                $foto = $newFetch['foto'];


                echo "  <div class=\"hlavni-info\">
  <div class=\"levy-blok-popis\">
  <div class=\"text-bloky-product\">
  <h3 align=\"center\">Popis výrobku</h3>
   <div class=\"text-pro-levy\">".$popis."</div>
   </div>
  </div>
  <div class=\"center-blok-popis\">
   <img class=\"obrazek\" src=\"".$foto."\" width=\"310px\" height=\"450px\">
  <div class=\"title-foto-blok\">
   ".$nazev."
  </div>
  </div>
  <div class=\"left-blok-popis\">
  <div class=\"text-bloky-product2\">
  <h4>Poptávkový formulář</h4>
  <form action=\"send.php\" method=\"POST\">
  Vaše jméno: <input type=\"text\" name=\"jmeno\"> <br>
   Váš email: <input type=\"text\" name=\"email\"> <br>
   Váš telefon: <input type=\"text\" name=\"telefon\"> <br>
   Poptávám: <input type=\"text\" value=\"".$nazev."\" name=\"poptavam\"> <br>
   <input type=\"submit\" value=\"Odeslat poptávku\">
   </form>
  </div>
  </div>
  </div></p>";
              }


                }
              }          else {
                echo "<p>Něco</p>";
                }
      ?>
 
Odpovědět 2.6.2014 8:30
Avatar
Marokis
Člen
Avatar
Marokis:

Ještě bych dodal že v url to id ukáže ale výpis z databáze to neudělá ..

 
Nahoru Odpovědět 2.6.2014 8:53
Avatar
Martin
Člen
Avatar
Odpovídá na Marokis
Martin:

za if v dotazu SELECT nemáš podmínku aby to použilo id

SELECT * FROM prosukt WHERE id = $_GET['id']

Nahoru Odpovědět  +1 2.6.2014 9:02
Je jedno co děláš, ale záleží jak dobře to umíš prodat.
Avatar
Marokis
Člen
Avatar
Marokis:

Bohužel i toto jsem zkoušel a nefunguje.. poslal jsem kód kde to nemám ..

 
Nahoru Odpovědět 2.6.2014 9:06
Avatar
Martin
Člen
Avatar
Odpovídá na Marokis
Martin:

chyba je v
if ($subs == "product")
použij
if ($_GET['subs'] == "product")

Nahoru Odpovědět 2.6.2014 9:33
Je jedno co děláš, ale záleží jak dobře to umíš prodat.
Avatar
Marokis
Člen
Avatar
Odpovídá na Martin
Marokis:

Nic, pořád nefunguje .. bude to tim ID protože když odeberu if (!isset($_GET["i­d"])) { tak to normálně funguje akorát to vypíše úplně všechno co v tabulce je

 
Nahoru Odpovědět 2.6.2014 9:41
Avatar
Martin
Člen
Avatar
Martin:

jj odeber ! to je podmínka pokud není nastaven $_GET['id']

a zároveň použij WHERE v dotazu

Nahoru Odpovědět  +1 2.6.2014 9:49
Je jedno co děláš, ale záleží jak dobře to umíš prodat.
Avatar
Marokis
Člen
Avatar
Odpovídá na Martin
Marokis:

Tak to byla ta chyba .. :-) Moc díky :-)

 
Nahoru Odpovědět 2.6.2014 9:54
Avatar
mkub
Redaktor
Avatar
Odpovídá na Martin
mkub:
SELECT * FROM prosukt WHERE id = $_GET['id']

? to zavana SQL injekciou :D

 
Nahoru Odpovědět  +1 2.6.2014 11:56
Avatar
Marokis
Člen
Avatar
Odpovídá na mkub
Marokis:

Já jsem to udělal jinak :D ale nevadí :-)A to už je sdnad správně ??

("SELECT * FROM product WHERE id = '".mysql_real_escape_string($_GET['id'])."'")
Editováno 2.6.2014 12:34
 
Nahoru Odpovědět 2.6.2014 12:33
Avatar
mkub
Redaktor
Avatar
Odpovídá na Marokis
mkub:

myslim, ze by to uz malo byt dobre...
a dalsia moznost je zabudnut na mysql ovladac a pouzit novsi - PDO, co je objektovy a interne uz osetruje SQL injekcie...
uz sa anbi mysql ovladac nedoporucuje, je oznaceny ako zastaraly, zatial je ponechany kvoli spatnej kompatibilite a casom bude vyradeny z PHP

 
Nahoru Odpovědět 2.6.2014 12:39
Avatar
Marokis
Člen
Avatar
Odpovídá na mkub
Marokis:

Dík kouknu se na to :-)

 
Nahoru Odpovědět 2.6.2014 15:21
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.