• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Benutzerspezifische Datensätze auslesen

kRuzeFiX

Neues Mitglied
Hallo!

ich habe schon wieder eine Frage, nur diesmal mit PHP und Datenbanken.
Meine Frage:
Ich habe eine Datenbank mit (Name, Geschlecht, Abteilung, Wohnort) und möchte nun, dass wenn ein Site-Besucher auf das Männlich oder Weiblich Symbol klickt, nur die Datensätze ausgegeben werden, bei denen das Geschlecht jenachdem männlich oder weiblich ist. Die soll am Ende mit allen Eigenschaften möglich sein, also Name, Geschlecht, Abteilung und Wohnort um z.B. Gemeinsamkeiten herauszufinden.

Und um ehrlich zu sein bin ich nach viel Bastelei noch zu keinem wirklichen Ergebnis gekommen weil ich nicht weiss wie ich das realisieren kann. Gegoogelt habe ich auch, wobei ich hier nicht weiss wie ich diese Frage kurz fassen kann.
Das einzig mehr oder weniger handfeste was ich herausgefunden habe ist, dass ich an das Bild durch die POST Variable eine Kategorie anhängen sollte. z.B. ?cat=1 (männlich) oder ?cat=2 (weiblich).

Danke,
Gruß
 
HTML:
<a href="?gender=female" title="Weiblich"><img src="female.png" /></a>
<a href="?gender=male" title="Männlich"><img src="male.png" /></a>

PHP:
if (isset($_GET['gender'])) {
    $gender = ($_GET['gender'] != 'female' && $_GET['gender'] != 'male') ? 'default' : $_GET['gender'];
    $sql = "SELECT * FROM `table` WHERE `gender` = '".mysql_real_escape_string($gender)."'";
    $query = mysql_query($sql);
    $result = mysql_fetch_array($query);

    foreach ($result as $person) {
        print_r($person);
    }
}
 
Ich danke dir für die Antwort, aber irgendwie klappt es nicht. Hier mal mein Quelltext:

...
<body>
<h1>Geschlecht auswählen</h1>
<br /><br /><br />
<div align="center">
<a href="?gender=m" title="Mann"><img src="Bilder/buttons/blau.jpg" width="110" alt="Mann"/></a>
<a href="?gender=w" title="Frau"><img src="Bilder/buttons/violett.jpg" width="110" alt="Frau"/></a>
</div>

<h4>
<?php
mysql_connect("localhost", "XX", "XXX") or die ("Keine Verbindung moeglich!");
mysql_select_db("XXX") or die ("Die Datenbank existiert nicht.");

if (isset($GET['gender'])) {
$gender = ($_GET['gender'] != 'w' && $GET['gender'] != 'm') ? 'default' : $GET['gender'];
$sql = "SELECT * FROM mitarbeiter WHERE Geschlecht = '".mysql_real_escape_string($gender)."'";
$query = mysql_query($sql);
$result = mysql_fetch_array($query);

foreach ($result as $person) {
print_r($person);
}
}
?>
</h4>
</body>
</html>

Ich fass mal die Theorie so zusammen wie ich sie verstanden habe:
Durch drücken auf das entsprechende Bild wird ?gender=m oder w an die URL angehängt, welches durch $_GET wieder ausgelesen wird. das w oder m wird als Variable gespeichert " ' ". Per SQL werden alle Datensätze von "mitarbeiter" ausgelesen wo das Geschlecht = ' ist. Und ' ist durch .mysql_real_escape_string($gender)." ' " jenachdem w oder m.
Dann kommen die querys und durch print_r sollten die Arrays leserlich ausgegeben werden. Jedoch kommt bei mir nichts. Was habe ich falsch gemacht?

Danke, Gruß
 
du hast keine <form> und keinen submit .Außerdem musst du den links noch name´s zuornden.

Abgesehen davon dass man den Plural (auch im englischen) nicht mit Apostroph bildet wofür meinst du braucht er ein form-Tag und was meinst du mit "name's"? Er hat doch Bilder im Link?

Ich würde zudem
PHP:
                $query= mysql_query($sql) or die(mysql_error());

schreiben.
 
Zuletzt bearbeitet:
Oje, das mit dem $_GET habe ich total verschlafen, habe es jetzt geändert, und auch ka9des $query Vorschlag übernommen. Es funktioniert jetzt soweit, dass sich der Code bis zum ersten Datensatz, der m oder w ist vorarbeitet und diesen dann ausgibt. Jedoch werden alle Werte doppelt ausgegeben, z.B.
22MaierMaiermmWolframstraße 32Wolframstraße 32StuttgartStuttgart

Und die restlichen Datensätze werden nicht ausgegeben.

Gruß
 
Danke an alle, habe es aber anders gelöst, falls es euch interessiert:

HTML:
<a href="?gender=m" title="Mann"><img src="buttons/blau.jpg" width="110" alt="Mann"/></a>
<a href="?gender=w" title="Frau"><img src="buttons/violett.jpg" width="110" alt="Frau"/></a>

PHP:
mysql_connect ...;

if (isset($_GET['gender'])) {
$gender = ($_GET['gender'] != 'w' && $_GET['gender'] != 'm') ? 'default' : $_GET['gender'];
$abfrage = "SELECT * FROM mitarbeiter WHERE Geschlecht = '".mysql_real_escape_string($gender)."'";
$ergebnis = mysql_query($abfrage) or die(mysql_error());
$zeilenzahl = mysql_num_rows($ergebnis);
$zeilennummer = 0;
$wahl;

if ($gender != 'm') {
$wahl = "Frau";
} else {
$wahl="Mann";
}

echo "</h4><h2>Geschlecht = $wahl<br/></h2><h4>";

while ($zeilennummer < $zeilenzahl) {
$name = mysql_result($ergebnis,$zeilennummer,'name');
$strasse = mysql_result($ergebnis,$zeilennummer,'straße');
$ort = mysql_result($ergebnis,$zeilennummer,'ort');


echo "$name $strasse $ort <br/>";
$zeilennummer=$zeilennummer+1;
}
}

else {echo "Bitte das gewünschte Geschlecht durch Klick auf einen Button auswählen. (Blau = Mann / Pink = Frau)";}
?>
 
Zurück
Oben