Problem mit implode und IN befehl

Die Scriptsprache PHP fĂĽr die Gestaltung von dynamischen Websites.

Problem mit implode und IN befehl

Beitragvon XxSpiderxX » Fr 19 Jul, 2002 09:32

=) Moin ihrs, ich hab da ein kleines Problem, vielleicht hat das schon wer gelöst.

ich übermittle von einem Formular, sämmtliche Checkboxen ( in ein arraygeladen hier $katname[] ).

die hauptkategorien anzeigen und auslesen geht wunder bar, nur die unterkategorien innerhalb einer Kategorie, packt er mir immer unter die erste, ist bei der Abfrage da unten auch kein wunder, nur habe ich grade keine ahnung, wie ich die ID abhängig von der Kategorie auslese, da müsste ich im grunde ja, jedesmal ein neus query schreiben. in der while schleife, wo ich meine unterkats angebe.

QUERY ABFRAGE

include ("../settings.php");
$conn =db_connect();
if (isset ($katname))
{
$comma = implode(",", $katname);
$auswahl = mysql_query("SELECT * FROM bildungsmassnahmen WHERE bid IN ($comma)",$conn);

DAS ENTSCHEIDENDE QUERY
$masausw = mysql_query("SELECT * FROM massnahmen WHERE hauptmass = ",$conn);



ich hab im Grunde 2 verschachtelte while schleifen.
eine haupt schleife für die Hauptkategorien und innerhalb dieser, die unterkats. Nur Fehlt mir die IDEE ;P wie ich da die werde ( im $katname[] Array stehen, halt die id´s der hauptkategorien ( ermittelt via CHECKBOXEN auf der davorliegende Seite ). Das geht auch alles, nur wie gesagt, die unterteilung der einzelnen Kats nicht, Menüstruktur hab ich so ähnlich gelöst, daß geht aber hier =) hab ich nen riesen Propfen im Kopp =).

Evtl versteht ja einer die Problematik und hat eine Idee. wäre für eine Antwort dankbar!
}
else
{
header("location:ausbanfr.php");
}
XxSpiderxX
 

RE: Problem mit implode und IN befehl

Beitragvon XxSpiderxX » Fr 19 Jul, 2002 10:07

<HTML>Muhar =) habs doch selber gelöst. Ich schreib hier mal hin wies ging =) evtl braucht das mal einer

if (isset ($katname))
{

$i=0;

$comma = implode(",", $katname);
$auswahl = mysql_query("SELECT * FROM bildungsmassnahmen WHERE bid IN ($comma)",$conn);
$masausw = mysql_query("SELECT * FROM massnahmen WHERE hauptmass IN ($comma)",$conn);
$numrow = mysql_num_rows($masausw);
}
else
{
header("location:ausbanfr.php");
}

An der Abfrage hat sich nichts geändert. Das einzige was ich halt mache, ich stelle eine extra abfrage. Erst ermittle ich oben, die gesammtlänge der Treffer und dann stelle ich im grunde die gleiche abfrage nochmal nur mit der id des Arrays..hätt ich auch schon schneller drauf kommen könnten grml. Über $i zähle ich halt den Indexwert höher und höher, bis die letzte Stelle erreicht ist =)


$grrr = mysql_query("SELECT * FROM massnahmen WHERE hauptmass = '$katname[$i]'",$conn);
while ($einzeln=mysql_fetch_array($grrr))
{

?>
<tr>
<td width="55"><?echo ($einzeln["begdau"]);?></td><!--Hier kommt der Beginn und die Dauer der BildungsmaĂźnahme rein-->
<td><?echo ($einzeln["name"]);?></td><!--Hier kommt der Name der BildungsmaĂźnahme rein-->
<td><?echo ($einzeln["kurzbe"]);?></td><!--hier kommt die Kurzbeschreibung der MaĂźnahme rein-->
<td><?echo ($einzeln["abschluss"]);?></td><!--Hier kommt der AbschluĂź oder das Zertifikat rein-->
<!--Hier kommt das Kontrollkästchen rein-->
<td width="50" align="center"><input type="checkbox" value="<?echo($$einzeln[mid]);?>" name="masname[]"></td>
</tr>
<?}$i++;

</HTML>
XxSpiderxX
 


ZurĂĽck zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste