Liebes Forum,
ich erhoffe mir Hilfe bei folgendem Problem
Vorhaben:
mir werden aus einem Formular eine von mir getroffene Auswahl an "Zielgruppen" im Array übergeben. Diese Auswahl variiere ich je nach Erfordernis, das heißt die Anzahl der übergebenen Inhalte ist flexibel. Ich will die übergebenen Werte folgendermaßen weiterverarbeiten.
1) Da ich nur die ID der Zielgruppen übermittelt bekomme, will ich die ID's in der Tabelle "zielgruppen" auslesen, um dann die "namen" der jeweiligen Zielgruppe an beliebiger Stelle auf meiner Seite ausgeben zu können. In dieser Tabelle sind insgesamt 6 Zielgruppen mit Namen und ID notiert.
2.) Desweiteren will ich diese Werte in einer Select-Abfrage nutzen, um nur die Veranstaltungen aus der Tabelle "veranstaltungen" auszuwählen, die für die von mir ausgewählten Zielgruppen freigegeben sind. Dabei sind alle Kombinationen möglich, sprich es ist es möglich, dass für eine Veranstaltung nur eine Zielgruppe hinterlegt wurde, für eine andere Veranstaltung können auch auch mal 3, 4 oder 5 Zielgruppen hinterlegt sein.
IST-Stand
- die variablen Kriterien bekomme ich per POST richtig übermittelt, ich kann alle ID's ausgeben und ich bekomme schon einen! (leider immer nur den letzten ) Namen aller ausgewählten Zielgruppen angezeigt.
Frage zu 1.)
Stimmt meine Vermutung, dass ich den Schlüsseln vor dem Auslesen Werte zuweisen muss und wie macht man das, wenn sich die Werte bei jeder Abfrage ändern - dann habe ich doch keinen festen Schlüssel mit einem festen Wert, den ich nach Belieben abfragen kann?
Vorab schon einmal vielen Dank für Eure Hilfe Marie
Hier die Scripte:
Empfang der Daten aus meinem Formular - Anzahl der übergebenen Werte stimmt und die ausgegebenen ID's stimmen mit meiner Auswahl überein
1)
Hiermit lese ich meine Zielgruppen aus - was auch funktioniert, allerdings wird bei einer Mehrfachauswahl nur der jeweils letzte Name (also der mit der höchsten ID in der Datenbank) ausgegeben:
2.) falls es schon von Bedeutung ist, hier noch das Script, um die die Veranstaltungen abzufragen - so funktioniert es bereits,
Zur Info: hier werden auch schon die Zielgruppen abgefragt, die für eine Veranstaltung hinterlegt sind - und es werden gemäß dieser Abfrage auch alle Zielgruppen ausgegeben. Ich will aber nicht alle angezeigt bekommen, sondern nur die, die ich ausgewählt habe. Das muss in die Where-Bedingung eingebaut werden, aber noch habe ich keinen Plan wie das geht. Ich denke, Problem eins muss ich erst lösen, dann komme ich auch hier weiter?
ich erhoffe mir Hilfe bei folgendem Problem
Vorhaben:
mir werden aus einem Formular eine von mir getroffene Auswahl an "Zielgruppen" im Array übergeben. Diese Auswahl variiere ich je nach Erfordernis, das heißt die Anzahl der übergebenen Inhalte ist flexibel. Ich will die übergebenen Werte folgendermaßen weiterverarbeiten.
1) Da ich nur die ID der Zielgruppen übermittelt bekomme, will ich die ID's in der Tabelle "zielgruppen" auslesen, um dann die "namen" der jeweiligen Zielgruppe an beliebiger Stelle auf meiner Seite ausgeben zu können. In dieser Tabelle sind insgesamt 6 Zielgruppen mit Namen und ID notiert.
2.) Desweiteren will ich diese Werte in einer Select-Abfrage nutzen, um nur die Veranstaltungen aus der Tabelle "veranstaltungen" auszuwählen, die für die von mir ausgewählten Zielgruppen freigegeben sind. Dabei sind alle Kombinationen möglich, sprich es ist es möglich, dass für eine Veranstaltung nur eine Zielgruppe hinterlegt wurde, für eine andere Veranstaltung können auch auch mal 3, 4 oder 5 Zielgruppen hinterlegt sein.
IST-Stand
- die variablen Kriterien bekomme ich per POST richtig übermittelt, ich kann alle ID's ausgeben und ich bekomme schon einen! (leider immer nur den letzten ) Namen aller ausgewählten Zielgruppen angezeigt.
Frage zu 1.)
Stimmt meine Vermutung, dass ich den Schlüsseln vor dem Auslesen Werte zuweisen muss und wie macht man das, wenn sich die Werte bei jeder Abfrage ändern - dann habe ich doch keinen festen Schlüssel mit einem festen Wert, den ich nach Belieben abfragen kann?
Vorab schon einmal vielen Dank für Eure Hilfe Marie
Hier die Scripte:
Empfang der Daten aus meinem Formular - Anzahl der übergebenen Werte stimmt und die ausgegebenen ID's stimmen mit meiner Auswahl überein
PHP-Code:
if(isset($_POST["sem_ort"]) && isset($_POST["zielgruppe"])){
//Daten aus dem Array empfangen -
$ort = $_POST["sem_ort"];
$zielgruppe = $_POST["zielgruppe"];
echo "in diesem Array befinden sich ".count($zielgruppe)." ". "Werte:"."\n" ;
//alle Daten ausgeben /
foreach ($zielgruppe as $zid){
//Ausgabe ID Zielgruppe klappt - Verkettung bereits ausprobiert, bringt aber nichts: $zid[0],$zid[2],$zid[3]." /";
echo "Zielgruppe ".$zid[0]." / ";
}
Hiermit lese ich meine Zielgruppen aus - was auch funktioniert, allerdings wird bei einer Mehrfachauswahl nur der jeweils letzte Name (also der mit der höchsten ID in der Datenbank) ausgegeben:
PHP-Code:
//Zielgruppen auslesen //
$sql4 = "SELECT name FROM zielgruppen WHERE id = ".$zid[0];
$result4 = mysql_query($sql4) or die("Keine Auswahl möglich".mysql_error());
while($row4 = mysql_fetch_object($result4)){
echo "Zielgruppennamen:". " ". $row4->name."<br>";
}
2.) falls es schon von Bedeutung ist, hier noch das Script, um die die Veranstaltungen abzufragen - so funktioniert es bereits,
Zur Info: hier werden auch schon die Zielgruppen abgefragt, die für eine Veranstaltung hinterlegt sind - und es werden gemäß dieser Abfrage auch alle Zielgruppen ausgegeben. Ich will aber nicht alle angezeigt bekommen, sondern nur die, die ich ausgewählt habe. Das muss in die Where-Bedingung eingebaut werden, aber noch habe ich keinen Plan wie das geht. Ich denke, Problem eins muss ich erst lösen, dann komme ich auch hier weiter?
PHP-Code:
//Veranstaltungen auslesen (den übergebenen Ort als Select-Bedingung einfügen: WHERE `ort` = ".$_POST["ort"]." )// AND v.id ='".$zid["0"]."'
$sql = "SELECT v.id, v.titel, v.untertitel, v.beschreibung, v.kosten, DATE_FORMAT(v.start_datum,\"%d.%m.%Y\") AS start, DATE_FORMAT(v.end_datum,\"%d.%m.%Y\") AS ende,
v.start_zeit AS s_zeit, v.end_zeit AS e_zeit, v.image,
o.strasse AS strasse, o.ort AS ort
FROM `veranstaltungen` v
LEFT JOIN orte o ON orte_id = o.id
WHERE `oeffentlich` = 1 AND `ort` = '".$ort."' AND (v.start_datum >= CURDATE()) ORDER BY v.start_datum LIMIT 7";
$result = mysql_query($sql) or die("Keine Auswahl möglich".mysql_error());
Kommentar