Autor Zpráva
Hermann
Profil
Určitě se to tu už probíralo ale já to prostě nechápu:) Potřebuju v jednoduchém objednacím systému vypisovat pouze určité výrobky (dle id jejich skupiny) a nedokážu vymyslet jak na to. S php si zatím moc netykám.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <link rel="stylesheet" href="main.css" type="text/css">
   <link href="img/favicon.ico" rel="icon" type="image/png" />
  <title>Hlavní strana</title>

</head>
<body>
<img src="img/header-bkg.jpg" alt="header-bkg.jpg" title="header-bkg" border="0" height="113" width="100%">

<?php 
$spojeni = mysql_connect("", "", "");
if (!$spojeni)
{
echo "nepodařilo se připojit k mysql";
}
else 
{
 mysql_select_db("");
 mysql_query("set names 'utf8'");

$vypis_vse = mysql_query("SELECT zbozi.id, zbozi.kod_zbozi, zbozi.nazev_zbozi, zbozi.popis, zbozi.jednotkova_cena_prodejni, zbozi.obrazek, sklad.mnozstvi FROM zbozi inner join sklad on zbozi.id=sklad.id");
  
 echo "<ul><a>Úvodní stránka</a> | <a>iPod</a> | <a>iPhone</a> | <a>MacBook</a> | <a>iMac</a> | <a href='registrace.html'>Registrace</a></ul>";


echo "<table>";
echo "<tr><td>Název zboží</td><td>Náhled</td><td>Množství</td><td>Cena</td><td>Kód zboží</td><td>Popis</td><td>Množství k nákupu</td></tr>";
$pocet = mysql_num_rows($vypis_vse);
for($i=1;$i<=$pocet;$i++)
{
$zaznam=mysql_fetch_array($vypis_vse);

 echo "<tr><td>". $zaznam["nazev_zbozi"] . "</td><td>" . $zaznam["obrazek"].  "</td><td>" . $zaznam["mnozstvi"].  "</td><td>"  . $zaznam["jednotkova_cena_prodejni"] .  "</td><td>" . $zaznam["kod_zbozi"].  "</td><td>" . $zaznam["popis"].  " </td></tr>";
}
echo "</table>";


}
mysql_close();
?>



</body>
</html>


Nejspíš se podle toho na co kliknu v menu bude předávat ID skupiny výrobků do mysql dotazu ale netuším jak to napsat. Předem díky za pomoc:)
Vojtíšek
Profil *
Hermann:
Řádek 24 změň na:
$vypis_vse = mysql_query("SELECT zbozi.id, zbozi.kod_zbozi, zbozi.nazev_zbozi, zbozi.popis, zbozi.jednotkova_cena_prodejni, zbozi.obrazek, sklad.mnozstvi FROM zbozi inner join sklad on zbozi.id=sklad.id ORDER BY id");


Snad mám pravdu.
Hermann
Profil
Jo tohle chápu. Ale potřebuju aby se zobrazila pouza ta patřičná kategorie (např když kliknu na Ipod zobrazí se pouze zboží v kategorii Ipody).
Vojtíšek
Profil *
Hermann:
Řádek 26:
<a href="?co=ipod">iPod</a>


Řádek 24:
$vypis_vse = mysql_query("SELECT zbozi.id, zbozi.kod_zbozi, zbozi.nazev_zbozi, zbozi.popis, zbozi.jednotkova_cena_prodejni, zbozi.obrazek, sklad.mnozstvi FROM zbozi inner join sklad on zbozi.id=sklad.id WHERE nazev.zbozi='$_GET[co]'");
joe
Profil
Tak jednak musíš mít nějaké kategorie, ty máš vypsané hezky jako odkazy, ale nikam ti nevedou. Jejich cíle by měly být něco jako:
<a href="?kategorie=1">iPod</a> <a href="?kategorie=2">iPhone</a>


Potom v databázi tabulku kategorie a pak vazební tabulku
produkt_kategorie
, která bude mít dva sloupce - id_kategorie a id_produkt. Tím zařídíš, že daný produkt patří do nějaké kategorie.

Pak do SQL dotazu přidáš další JOIN právě na tuto vazební tabulku a podmínku do WHERE, kde id_kategorie = $idKategorie

A to $idKategorie získáš takhle
$idKategorie = isset($_GET['kategorie']) ? intval($_GET['kategorie']) : null;


a pokud $idKategorie bude null, tak tam tu podmínku do SQL dotazu dávat nebudeš a vypíšeš třeba všechno zboží nezávisle na kategorii. Nebo si nejdřív ověříš, jestli taková kategorie vůbec existuje, což je lepší způsob.

Vojtíšek zřejmě neví o SQL injenction.
7.Host
Profil *
nebo také $idKategorie = htmlspecialchars($_GET['kategorie']);

a nechápu proč vypisuješ sloupec po sloupci když to můžeš nahradit * (hvězdičkou) :)

$vypis_vse = mysql_query("SELECT * FROM zbozi inner join sklad on zbozi.id=sklad.id");

samozřejmě pokud si chtěl vypsat jen určité sloupce tak ok.

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: