Anmelden, um zu folgen  
Folger 0
kekskruemel

GET-Variablen in Array und in SQL Abfrage

7 Beiträge in diesem Thema

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.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
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)

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
CODE

dateiname.php?ids[]=zahl1&ids[]=zahl2&ids[]=zahl3&....&ids[]=zahlx

cool.gif

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
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.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
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>';

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Vielen Dank an euch, besonders an 800XE, dass ihr mir dabei geholfen habt. Ich habe es nun an mein Problem hervorragend anwenden können.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Erstellen Sie einen Account oder melde Sie sich an um kommentieren zu können

You need to be a member in order to leave a comment

Create an account

Registrieren Sie einen neuen Account in unserer Community. Es ist einfach!


Register a new account

Anmelden

Haben Sie bereits einen Account? Dann melden Sie sich hier an.


Jetzt Anmelden
Anmelden, um zu folgen  
Folger 0