GET-Variablen in Array und in SQL Abfrage

kekskruemel

Angesehenes Mitglied
Hallo,

ich bin gerade dabei eine folgendes zu überlegen.
Angenommen ich erhalte in einem GET Aufruf per URL unbegrenzt Daten übermittelt. Diese können eins, zwei oder auch 25 Zahlen sein.

dateiname.php?ids=zahl1,zahl2,zahl3,....,zahlx

Ich benötige diese Zahlen für eine Abfrage per MySQL, die im Grunde so aussieht:

SELECT wert FROM tabelle WHERE id = zahl;

Diese SQL soll nach und nach mit den id's aus der GET URL erfolgen.

Wie kann man das am besten umsetzen, dass die zahlen aus dem GET Aufruf in ein Array kommen und anschließend durch z.B. eine Schleife in die SQL Datei kommen. Oder kann man die auch direkt geschickt so verpacken, dass er alle in einer SQL Abfrage einpackt?
Der durch die SQL gewünschte Wert kann sich dabei jedoch je nach id unterscheiden und wird passend zur id für die Ausgabe benötigt.


Grüße und danke für eure Hilfe.
 
QUOTE (kekskruemel @ Sa 18.06.2011, 17:15)Der durch die SQL gewünschte Wert kann sich dabei jedoch je nach id unterscheiden und wird passend zur id für die Ausgabe benötigt.


hä?


QUOTE (kekskruemel @ Sa 18.06.2011, 17:15)SELECT wert FROM tabelle WHERE id = zahl;



SELECT wert FROM tabelle WHERE id IN (1,2,3,4,5,6)
 
CODE
dateiname.php?ids[]=zahl1&ids[]=zahl2&ids[]=zahl3&....&ids[]=zahlx


cool.gif
 
Ok, also ich habe das nun als SQL eingebaut. An sich erhalte ich auch als Ergebnis die entsprechenden Zeilen.

Ich habe aber folgendes Problem:

Die Zeilen sehen Bspw. so aus:

id / wert / datum / typ_id
35 / 1,489 / datumswert / 1
35 / 1,519 / datumswert / 4
35 / 1,489 / datumswert / 13
523 / 1,489 / datumswert / 1
523/ 1,319 / datumswert / 2
523 / 1,009 / datumswert / 6
890 / 1,489 / datumswert / 1

Nun möchte ich die Daten iim XML Format so formatieren, dass der Grundaufbau so aussieht:

<werte>
<person id= 35>
<wert typ_id=1 value=1,489>
<wert typ_id=4 value=1,519>
<wert typ_id=13 value=1,489>
</person>
<person id=523>
...
</person>
<person id=890>
...
</person>
</werte>

Leider weiß ich nicht, wie ich die Ergebnisse nun so ansprechen soll, dass ich mithilfe von Schleifen egal wie viele ids mir übergeben werden (und auch welche) ich diese Ausgabe aufbauen kann.
 
QUOTE (kekskruemel @ So 19.06.2011, 13:55)Nun möchte ich die Daten iim XML Format so formatieren, dass der Grundaufbau so aussieht:

<werte>
<person id= 35>
<wert typ_id=1 value=1,489>
<wert typ_id=4 value=1,519>
<wert typ_id=13 value=1,489>
</person>
<person id=523>
...
</person>
<person id=890>
...
</person>
</werte>

Leider weiß ich nicht, wie ich die Ergebnisse nun so ansprechen soll, dass ich mithilfe von Schleifen egal wie viele ids mir übergeben werden (und auch welche) ich diese Ausgabe aufbauen kann.

$query .= " ORDER BY id ";


CODE
$query = " SELECT * ";
$query .= " FROM tabelle ";
$query .= " WHERE id IN (1,2,3,4,5,6) ";
$query .= " ORDER BY id ";
$result = mysql_query($query) or die('<hr>'.$query.'<hr>'.mysql_error());
$lastPerson = -1;
$XML .= '<werte>';
while( $line = mysql_fetch_array($result, MYSQL_ASSOC))
{
$Person = $line['id'];
if ( $lastPerson != $Person )
{
if ( $lastPerson != -1 )
$XML .= '</person>';
$XML .= '<person id='.$Person.'>';
}

$XML .= "\n content ... PS: XML ist scheiße ";

$lastPerson = $Person;
}
if ( $lastPerson != -1 )
$XML .= '</person>';
$XML .= '</werte>';


 
Vielen Dank an euch, besonders an 800XE, dass ihr mir dabei geholfen habt. Ich habe es nun an mein Problem hervorragend anwenden können.
 
Zurück
Oben