Aus DB Bestimmte werte auslesen

creativeheadz

Erfahrenes Mitglied
Hallo Luete,
ich bin gerade dabeiein ShopSystem zu basteln.... ich habe nun eine SQL Tabelle angelegt die sich Kategorie nennt. Dort gibt es die Spalten id, kategorie.

Auf meiner Webseite lese ich nun die Kategorien aus. Mein Ziel ist es zum Beispiel alle Artikel die zur test mit der id 3 gehören ausgelsen werden sobald man auf die entsprechende Kategorie klickt...

kategorie.php
PHP:
<?

include ("config.php") ;

$abfrage = "SELECT id, cat_name FROM tcm_kategorien ORDER BY id";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
   {
echo "<b>Kategorie</b><br>";
echo "<a href=\"index.php?page=show_artikel&$row->id\">$row->cat_name</a><br>";
   }
?>

PHP:
<?
// hier weiss ich jetzt nicht was ich programmieren muss:(
?>

sql tabelle für Kategorie

-- Tabellenstruktur für Tabelle `tcm_kategorien`
--

CREATE TABLE `tcm_kategorien` (
`id` int(22) unsigned NOT NULL auto_increment,
`cat_name` varchar(250) collate latin1_general_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=7 ;

--
-- Daten für Tabelle `tcm_kategorien`
--

INSERT INTO `tcm_kategorien` VALUES (3, 'Akupunktur- und TCM-Bedarf');
INSERT INTO `tcm_kategorien` VALUES (5, 'Chinesische Heilkräuter');
INSERT INTO `tcm_kategorien` VALUES (6, 'Fertigpräparate');

sql tabelle für artikel

-- Tabellenstruktur für Tabelle `tcm_artikel`
--

CREATE TABLE `tcm_artikel` (
`id` int(22) unsigned NOT NULL auto_increment,
`artikelnr` varchar(250) collate latin1_general_ci NOT NULL,
`artikelname` varchar(250) collate latin1_general_ci NOT NULL,
`beschreibung` varchar(250) collate latin1_general_ci NOT NULL,
`kurze_beschreibung` varchar(250) collate latin1_general_ci NOT NULL,
`bild_url` varchar(250) collate latin1_general_ci NOT NULL,
`preis_netto` varchar(250) collate latin1_general_ci NOT NULL,
`prei_brutto` varchar(250) collate latin1_general_ci NOT NULL,
`mwst` varchar(250) collate latin1_general_ci NOT NULL,
`kategorie` varchar(250) collate latin1_general_ci NOT NULL,
`kundengruppe` varchar(250) collate latin1_general_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=8 ;

--
-- Daten für Tabelle `tcm_artikel`
--

INSERT INTO `tcm_artikel` VALUES (7, '210001011002', 'Moxa Zylinder Präger', 'test', 'test', '', '13,10', '', '', '3', '1');

--------------

Hoffe es hat jemand mein Problem verstanden Gruß daniel
 
Hi creativeheadz,

wenn ich das richtig verstanden habe, kannst du in der MySQL-Abfrage nach "ORDER BY id" noch "WHERE kategorie = $kategorie" angeben, und dann gibt der nur die Daten mit der jeweiligen ID aus.

Gruß di-five
 
ah gut okey das is schonmal super... nur jetz is ja ein weiteres problem.

Wenn man auf den Link der entsprechenden kategorie klickt kommt man ja auf eine neue Seite die show_artikel.php woher weiss diese datei denn jetzt das ich gerade die kategorie mit der id 3 zumbbeipsiel angeklickt habe?
 
Wenn die Kategorie zum Beispiel in einem DropDown-Menu, einem Hidden-Feld oder ausgegeben wird, kannst du dem jeweiligen Teil einen Wert zuweisen, in dem Fall den Wert von der ID.

Du kannst die ID wenn du mit Sessions arbeitest entweder in einer Session speichern, oder du übergibst den Wert einfach mit einem Formular an die nächste Seite.

Gruß di-five
 
creativeheadz hat gesagt.:
<a href=\"index.php?page=show_artikel&$row->id\">$row->cat_name</a>
so sieht der liks aus . get das nicht auch mit diesem link
Hallo,
wenn dann muss der Link so lauten:
Code:
<a href=\"index.php?page=show_artikel&id=$row->id\">$row->cat_name</a>

mfg
forsterm
 
creativeheadz hat gesagt.:
hast du villeicht noch ne erläuterung dazu bin doch nochn anfänger;)
Hallo,
das &id=3 benötigst du um die Id - in dem Fall 3 - in deinem anderen PHP Script
abfragen zu können. Das sieh dann so aus $_GET['id'] in dieser Vaiable steht
nun die Id - in dem Fall ist es also 3.

mfg
forsterm
 
PHP:
<?
$showid=$_GET['id'];

include ("config.php") ;


$abfrage = "SELECT * FROM tcm_artikel where kategorie=$showid";
$ergebnis = mysql_query($abfrage);
if (mysql_num_rows($ergebnis)==0) {
    echo "Es konnte kein Eintrag gefunden werden.";
} else {
    while ($row=mysql_fetch_assoc($ergebnis)) 
    {


  echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
 echo " <tr>";
 echo " <td><b>Artikelnummer</b></td>";
 echo " <td><b>Artikelname</b></td>";
 echo "<td><b>Artikelpreis</b></td>";
 echo "<td><b>Informationen</b></td>";
 echo "<td><b>Betsellen</b></td>";
 echo "</tr>";
 echo "<tr>";
 echo "<td>$row->artikelnr</td>";
 echo "<td>$row->artikelname</td>";
 echo "<td>$row->preis_netto</td>";
 echo "<td>info einsehen</td>";
 echo "<td>in den Warenkorb</td>";
 echo "</tr>";
echo "</table>";

}
}
?>

leider werden mir die artikelnummer preis und artikelname nicht ausgegeben
 
PHP:
<? 
$showid=$_GET['id']; 
 
include ("config.php") ; 
 
 
$abfrage = "SELECT * FROM tcm_artikel where kategorie=$showid"; 
$ergebnis = mysql_query($abfrage); 
if (mysql_num_rows($ergebnis)==0) { 
echo "Es konnte kein Eintrag gefunden werden."; 
} else { 
while ($row=mysql_fetch_object($ergebnis)) 
{ 
 
 
echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">"; 
echo " <tr>"; 
echo " <td><b>Artikelnummer</b></td>"; 
echo " <td><b>Artikelname</b></td>"; 
echo "<td><b>Artikelpreis</b></td>"; 
echo "<td><b>Informationen</b></td>"; 
echo "<td><b>Betsellen</b></td>"; 
echo "</tr>"; 
echo "<tr>"; 
echo "<td>$row->artikelnr</td>"; 
echo "<td>$row->artikelname</td>"; 
echo "<td>$row->preis_netto</td>"; 
echo "<td>info einsehen</td>"; 
echo "<td>in den Warenkorb</td>"; 
echo "</tr>"; 
echo "</table>"; 
 
} 
} 
?>
 
Zurück