Mehrere arrays aus Formular anzeigen

zamo76

Erfahrenes Mitglied
Hi Leute,

ich stelle gerade Produkte zum Vergleich gegenüber die durch eine Checkbox ermittelt werden. Das funktioniert soweit ja auch alles bis auf die Tatsache, das immer nur das letzte Produkt angezeigt wird!

Beispiel-Link: ...showme.php?compare=305&compare=311&compare=316

Wie schaffe ich es denn, das alle markierten Produkte angezeigt werden?

Danke im Voraus

zamo76
 
du hast dann auf deiner aufgerufenen Seite die Variable $compare

in $compare steht "305/311/316" drin...

http://at.php.net/manual/de/function.explode.php
explode -- Teilt einen String anhand einer Zeichenkette
array explode ( string separator, string string [, int limit] )

$com_array = explode("/",$compare);

jetzt hast du in
$com_array[0] = 305
$com_array[1] = 311
und in
$com_array[2] = 316 drin stehn


wenn du im link showme.php?compare=305/311/316 noch weitere zahlen angibst, z.B.
showme.php?compare=305/311/316/123/456/789

läuft das Array $com_array einfach weiter...
$com_array[3] = 123
$com_array[4] = 456
$com_array[5] = 789

entweder du beschränkst nun auf eine maximale anzahl an vergleichsprodukten und durchläufst das array so weit, oder du durchläufst das gesamte array mittels schleife

--> arrays: http://at.php.net/manual/de/ref.array.php
 
...also etwas ist mir noch nicht klar!

Wie bekomme ich es denn überhaupt hin, dass es so angezeigt wird:

showme.php?compare=305/311/316.........

Das Tutorial habe ich schon einige Male gelesen aber es ist ne nummer zu hoch für mich
( Anfänger halt )

Vielleicht kann ich einiges hierdurch deutlicher machen:

PHP:
// Variablen aus dem Forumlar übernehmen
$compare = $_GET['compare'];

if(!$orderby) $orderby="id";

$sql=mysql_query("SELECT * FROM tabelle WHERE id = '$compare' ORDER BY $orderby");
echo "<table border=0
.......
while ($ang = mysql_fetch_array($sql)) {
.......
echo "<tr><td height=25 bgcolor=#fbfbfb.........

Jetzt wüsste ich gerne wo ich es überhaupt einbauen müsste...

Danke!

zamo76
 
PHP:
// Variablen aus dem Forumlar übernehmen
$compare = $_GET['compare'];

$qry= "SELECT * FROM tabelle WHERE"; 

$com_array = explode("/",$compare);
$anz_werte = count($com_array);
$i=0;
while($i <= $anz_werte)
{
    $qry .= " OR id = ".$com_array[$i];
    $i ++;
}
//somit generierst du die SQL Abfrage mit den übergebenen IDs

if(!$orderby) $orderby="id";

$qry .= " ORDER BY $orderby"


$sql=mysql_query($qry);


echo "<table border=0
.......
while ($ang = mysql_fetch_array($sql)) {
.......
echo "<tr><td height=25 bgcolor=#fbfbfb.........



das ist mal die ausgabe dann, auf der seite (showme.php?compare=305/311/316)

durch das compare=305/311/316 solltest du eine SQL abfrage in der Art bekommen:
SELECT * FROM tabelle WHERE id = 305 OR id = 311 OR id = 316
und somit im mysql_fetch_array 3 einträge rausbekommen


wie du überhaupt zu dem showme.php?compare=305/311/316 kommst dachte ich ist klar...
ich würd eine zwischenseite machen, in der du die ganzen checkboxen abfragst und je nachdem welche gesetzt ist die ID derjenigen mittels $compare .= $id."/"; schreiben, nach der überprüfung dann mit showme.php?compare=$compare weiterleiten...
 
also ich verstehe diese Teile (xxxxxxxxxxx) nicht:

PHP:
while($i <= $anz_werte)
{
    $qry .= " xxxxxxxxxxxxxxxxxxxOR id = ".$com_array[$i];
    $i ++;
}
//somit generierst du die SQL Abfrage mit den übergebenen IDs

if(!$orderby) $orderby="id";

$qry .= " xxxxxxxxxxxxxxxxxORDER BY $orderby"

Muss da noch was rein?

zamo76
 
Hat denn niemand einen Denkanstoss für mich Komme wirklich nicht weiter...

zamo76

mhh, anscheinend niemand!
 
Zuletzt bearbeitet:
Zurück