php Daten für Filter setzen

Sorry,
ich hab nicht die ganze Seite gepostet. Das mit der Uhrzeit und dem Datum funktioniert schon richtig und macht keine schwirigkeit.
In der Tabelle sind verschieden Kategorien zB.: Suppen, Vorspeisen, etc.. Aus denen möchte ich ein Button machen. Wenn man dann auf den Button Vorspeise klickt,
dann soll ein Wert zum filtern aus einer Datenbank übergeben werden.

zb.: in der Datenbank ist in der Spalte "$artikel_kat" steht der Wert 2, klickt man auf den Butten (Vorspeisen) dann filtert man über den wert 2 die Vorspeisen heraus,
die weiter unten angezeigt werden.

Die Datensätze werden angezeigt und wenn ich manuell bei .... WHERE artikel_kat = 2") eingeben, dann werden die Datensätze auch richtig gefiltert.
Wie gesagt nur manuell.
 
Du möchtest also eine Tabelle mit Einträgen wie z.B. SUPPEN oder HÜHNERKEULE. Wenn man nun auf "SUPPEN" klickt, soll der Wert für Suppen (Beispiel: 5) an den MySQL-Query "gesendet" werden? Ja? Soll der Button dann a) neben "SUPPEN" stehen oder b) soll das Wort "Suppen" ein Button sein?

Edit:

Bitte zeig mir mal das ganze Skript.
 
Zuletzt bearbeitet:
Erst einmal zum Query:

PHP:
mysql_query("SELECT pid, artikel_nr, artikel_kat, artikel_bez, artikel_ben, artikel_inf, artikel_bes, preis FROM produkt WHERE artikel_kat = '$kate'");

Nun braucht Du natürlich einen Wert in "$kate".

Das kannst Du folgendermaßen machen.

PHP:
   <table>
      <tr>
         <td colspan="5">(Montag bis Freitag von 11:00 - 14:30 Uhr, außer an Feiertagen)</td>
      </tr>
      <tr>
         <td><a href="online_best.php?kate=1">SUPPEN</a></td>
         <td><a href="online_best.php?kate=2">VORSPEISEN</a></td>
         <td><a href="online_best.php?kate=3">SALATE</a></td>
         <td><a href="online_best.php?kate=4">HÜHNERFLEISCH GERICHTE</a></td>
         <td><a href="online_best.php?kate=5">HÜHNERKEULE</a></td>
      </tr>
      <!-- usw. usw. usw. -->
   </table>

Du übergibst den Wert einfach über ein "Get". Ist nicht unbedingt das schönste der Welt, aber ganz okey...

PHP:
if (isset($_GET['Kate']))
{
    $kate = $_GET['Kate'];

    $result = mysql_query("SELECT pid, artikel_nr, artikel_kat, artikel_bez, artikel_ben, artikel_inf, artikel_bes, preis FROM produkt WHERE artikel_kat = '$kate'");
    ...
    ...
    ...
}

Die Get-Variable sollte aber noch abgesichert und ggf. validiert werden.
 
PHP:
<head>
<?php
$timestamp = time();
$datum = date("d.m.Y",$timestamp);
$uhrzeit = date("H:i",$timestamp);
$tage = array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
$tag = date("w");
$aktUhrzeit = date("H:i:s");
$kate = $_get['Kate'];
?>
</head>

<body>
<?php
if ($tag <6) {
    if (($aktUhrzeit >= "11:00:00") && ($aktUhrzeit <= "14:30:00")) {
        ?><a href="online_best.php?kate=20">MITTAGSMENUE</a><?
    } else {
        echo "Heute gibt es keine Mittagsmenues";
    }
} else {
    echo "Heute Ruhetag";
}
?>
(Montag bis Freitag von 11:00 - 14:30 Uhr, außer an Feiertagen)
</td>
<tr>
    <td><a href="online_best.php?kate=1">SUPPEN</a></td>
    <td><a href="online_best.php?kate=2">VORSPEISEN</a></td>
    <td><a href="online_best.php?kate=3">SALATE</a></td>
    <td><a href="online_best.php?kate=4">HÜHNERFLEISCH GERICHTE</a></td>
    <td><a href="online_best.php?kate=5">HÜHNERKEULE</a></td>
</tr>
<tr>
    <td><a href="online_best.php?kate=6">RINDFLEISCH GERICHTE</a></td>
    <td><a href="online_best.php?kate=7">SCHWEINEFLEISCH GERICHTE</a></td>
    <td><a href="online_best.php?Kate=8">ENTENFLEISCH GERICHTE</a></td>
    <td><a href="online_best.php?Kate=9">MEERESFRÜCHTE GERICHTE</a></td>
    <td><a href="online_best.php?Kate=10">GEBRATNER REIS, GEBRATENE NUDELN</a></td>
</tr>
<tr>
    <td><a href="online_best.php?kate=11">VEGETARISCHE GERICHTE</a></td>
    <td><a href="online_best.php?kate=12">NACHTISCH</a></td>
    <td><a href="online_best.php?kate=13">EXTRAS</a></td>
    <td><a href="online_best.php?kate=14">ALKOHOLFREIE GETRÄNKE</a></td>
    <td><a href="online_best.php?kate=15">ALKOHOLISCHE GETRÄNKE</a></td>
</tr>
</table>

<?php
mysql_query("SET NAMES 'utf8'");
if (isset($_get['Kate'])) {
    $result = mysql_query("SELECT pid, artikel_nr, artikel_kat, artikel_bez, artikel_ben, artikel_inf, artikel_bes, preis FROM produkt WHERE artikel_kat = '$kate'");
    while($row = mysql_fetch_object($result)) {
        $pid = $row -> pid;
        $artikel_nr = $row -> artikel_nr;
        $artikel_bez = $row -> artikel_bez;
        $artikel_kat = $row -> artikel_kat;
        $artikel_ben = $row -> artikel_ben;
        $artikel_inf = $row -> artikel_inf;
        $artikel_bes = $row -> artikel_bes;
        $preis = $row -> preis;
    }
}
?>
<table width="1000px" bgcolor="#FFFFFF" border="1px" >
<tr>
<td align="center" width="40px"><font color="#333333"><? echo $artikel_nr ?></font></td>
<td align="left" width="150px" bgcolor="#FFCC01"><font color="#663333"><? echo $artikel_bez ?></font></td>
<td align="left" width="360px"><font color="#000000"><? echo $artikel_ben ?></font></td>
<td align="left" width="250px"><font color="#000000"><? echo $artikel_inf ?></font></td>
<td align="left" width="40px">
<?
if ($artikel_bes == 1) {
    echo $artikel_bes = "<img src='images/ldm_scharf1.jpg' height='20px'>";
} else {
    if ($artikel_bes == 2) {
        echo $artikel_bes = "<img src='images/ldm_scharf2.jpg' height='20px'>";
    } else {
        if ($artikel_bes == 3) {
            echo $artikel_bes = "<img src='images/ldm_scharf3.jpg' height='20px'>";
        }
    }
}
?>
</font></td>
<td align="right"><font color="#0000FF"><? echo $preis ?> €</font></td>
<td align="right">Menge</td>
<td align="center">ausw.</td>
</tr>
</table>
</body>

schaut total super aus. Toll das du dir soviel Zeit genommen hast.
Was er immer noch nicht macht, ist den "Kate-Wert" zu übergeben.

Für Heute hab ich genug, werde morgen Abend weiter machen.

Trotzdem Vielen lieben Dank. (Jetzt sehe ich wieder ein Ziel).
 
Zuletzt bearbeitet:
Du setzt nicht das um was ich dir empfehle...

PHP:
...
...
...

if (isset($_get['Kate']))
{
    $kate = $_GET['Kate']; // DAS IST DER WICHTIGE TEIL

    $result = mysql_query("SELECT pid, artikel_nr, artikel_kat, artikel_bez, artikel_ben, artikel_inf, artikel_bes, preis FROM produkt WHERE artikel_kat = '$kate'");

...
...
...
 
PHP:
<head>
<?php
$timestamp = time();
$datum = date("d.m.Y",$timestamp);
$uhrzeit = date("H:i",$timestamp);
$tage = array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
$tag = date("w");
$aktUhrzeit = date("H:i:s");
$kate = $_get['Kate'];
?>
</head>

<body>
<?php
if ($tag <6) {
    if (($aktUhrzeit >= "11:00:00") && ($aktUhrzeit <= "14:30:00")) {
        ?><a href="online_best.php?kate=20">MITTAGSMENUE</a><?
    } else {
        echo "Heute gibt es keine Mittagsmenues";
    }
} else {
    echo "Heute Ruhetag";
}
?>
(Montag bis Freitag von 11:00 - 14:30 Uhr, außer an Feiertagen)
</td>
<tr>
    <td><a href="online_best.php?kate=1">SUPPEN</a></td>
    <td><a href="online_best.php?kate=2">VORSPEISEN</a></td>
    <td><a href="online_best.php?kate=3">SALATE</a></td>
    <td><a href="online_best.php?kate=4">HÜHNERFLEISCH GERICHTE</a></td>
    <td><a href="online_best.php?kate=5">HÜHNERKEULE</a></td>
</tr>
<tr>
    <td><a href="online_best.php?kate=6">RINDFLEISCH GERICHTE</a></td>
    <td><a href="online_best.php?kate=7">SCHWEINEFLEISCH GERICHTE</a></td>
    <td><a href="online_best.php?Kate=8">ENTENFLEISCH GERICHTE</a></td>
    <td><a href="online_best.php?Kate=9">MEERESFRÜCHTE GERICHTE</a></td>
    <td><a href="online_best.php?Kate=10">GEBRATNER REIS, GEBRATENE NUDELN</a></td>
</tr>
<tr>
    <td><a href="online_best.php?kate=11">VEGETARISCHE GERICHTE</a></td>
    <td><a href="online_best.php?kate=12">NACHTISCH</a></td>
    <td><a href="online_best.php?kate=13">EXTRAS</a></td>
    <td><a href="online_best.php?kate=14">ALKOHOLFREIE GETRÄNKE</a></td>
    <td><a href="online_best.php?kate=15">ALKOHOLISCHE GETRÄNKE</a></td>
</tr>
</table>

<?php
mysql_query("SET NAMES 'utf8'");
if (isset($_get['Kate'])) {
    $result = mysql_query("SELECT pid, artikel_nr, artikel_kat, artikel_bez, artikel_ben, artikel_inf, artikel_bes, preis FROM produkt WHERE artikel_kat = '$kate'");
    while($row = mysql_fetch_object($result)) {
        $pid = $row -> pid;
        $artikel_nr = $row -> artikel_nr;
        $artikel_bez = $row -> artikel_bez;
        $artikel_kat = $row -> artikel_kat;
        $artikel_ben = $row -> artikel_ben;
        $artikel_inf = $row -> artikel_inf;
        $artikel_bes = $row -> artikel_bes;
        $preis = $row -> preis;
    }
}
?>
<table width="1000px" bgcolor="#FFFFFF" border="1px" >
<tr>
<td align="center" width="40px"><font color="#333333"><? echo $artikel_nr ?></font></td>
<td align="left" width="150px" bgcolor="#FFCC01"><font color="#663333"><? echo $artikel_bez ?></font></td>
<td align="left" width="360px"><font color="#000000"><? echo $artikel_ben ?></font></td>
<td align="left" width="250px"><font color="#000000"><? echo $artikel_inf ?></font></td>
<td align="left" width="40px">
<?
if ($artikel_bes == 1) {
    echo $artikel_bes = "<img src='images/ldm_scharf1.jpg' height='20px'>";
} else {
    if ($artikel_bes == 2) {
        echo $artikel_bes = "<img src='images/ldm_scharf2.jpg' height='20px'>";
    } else {
        if ($artikel_bes == 3) {
            echo $artikel_bes = "<img src='images/ldm_scharf3.jpg' height='20px'>";
        }
    }
}
?>
</font></td>
<td align="right"><font color="#0000FF"><? echo $preis ?> €</font></td>
<td align="right">Menge</td>
<td align="center">ausw.</td>
</tr>
</table>
</body>

schaut total super aus. Toll das du dir soviel Zeit genommen hast.
Was er immer noch nicht macht, ist den "Kate-Wert" zu übergeben.

Für Heute hab ich genug, werde morgen Abend weiter machen.

Trotzdem Vielen lieben Dank. (Jetzt sehe ich wieder ein Ziel).
 
@CarlosPF Abgeseen davon, dass du die entscheidende Zeile wieder nicht eingefügt hast, ist der Code relativ gruselig. SQL-Injections, veraltete mysql_*-Extension, Trennung Logik und Layout, wilde Formatierungsangaben im HTML-Code,...
 
Wenn du die Beiträge (zB. https://www.tutorials.de/threads/php-daten-fuer-filter-setzen.399879/#post-2065073) aufmerksam lesen würdest wäre sofort klar, welche Zeile gemeint ist. Die anderen genannten Sachen ...
zu einem gewissen Grad ist das Ansichtssache, aber ich behaupte, die machen den Code tweilweise nicht
nur besser, sondern überhaupt erst richtig (was er zurzeit sowieso nicht ist. Angefangen spätestens bei Zeile 9.)
Du solltest dir wirklich etwas zu diesen Themen anschauen.
 
Zurück