2016-07-25 26 views
0

Hier habe ich ein MySQL gemacht, das die Spalten "ID", "Name", "Benutzername", "E-Mail", Alter "hat. Wo auch ich den PHP-Code gemacht habe, um die Daten für die angegebene IDAbrufen von Werten aus MySQL mit PHP

zB:.., wenn der Benutzer-ID eingeben = 3 dann zeigt es die Daten an die ID entsprechenden

aber jetzt möchte ich mehrere Eingänge gesetzt, so dass Benutzer mehr als eine ID eingeben können und Liste sie die entsprechenden Daten der jeweiligen ID

Mein PHP-Code:.

<?php 

if($_SERVER['REQUEST_METHOD']=='GET'){ 

    $id = $_GET['id']; 




    require_once('dbConnect.php'); 

    $sql = "SELECT * FROM user WHERE id='".$id."'"; 

    $r = mysqli_query($con,$sql); 

    $result = array(); 

      while($res = mysqli_fetch_array($r)){ 

    array_push($result,array(
     "id"=>$res['id'], 
     "name"=>$res['name'], 
     "username"=>$res['username'], 
     "email"=>$res['email'], 
     "age"=>$res['age'] 
     ) 
    ); 
      } 
    echo json_encode(array("result"=>$result)); 

    mysqli_close($con); 

} 

Nun gibt diese URL das perfekte Ergebnis: „http://www.allwaysready.16mb.com/Sort.php?id=4

Nun, wie kann ich die entsprechenden Werte für die mehreren IDs erhalten?

+0

nie zur Arbeit gehen, da Sie nie '$ ID' in Ihrer Abfrage verwenden. '$ work' ist undefiniert. –

+0

ich bearbeitet die Frage –

+0

und Sie sind anfällig für [sql Injektion Angriffe] (http://bobby-tables.com) –

Antwort

1

Sie können die Arraysyntax verwenden, um mehrere IDs an Ihr Skript zu übergeben, und MySQL IN() verwenden, um alle gleichzeitig abzufragen.

URL: http://www.allwaysready.16mb.com/Sort.php?id[]=4&id[]1&id[]=2

$ids = $_GET['id']; 
$ids = array_map(function($id) { 
    return (int) $id; 
}, $ids); 
$ids = implode(',', $ids); 

$sql = "SELECT * FROM user WHERE work IN($ids); 

warf ich die IDs auf ganze Zahlen, weil Ihre aktuellen Code weit offen für SQL-Injection ist. Sie sollten wirklich parametrisierte Abfragen verwenden.

+0

Ich bekomme einen Fehler, den Sie mit dem genauen Code plz beantworten können –

+0

Welchen Fehler bekommen Sie? –

+0

Parse-Fehler: Syntaxfehler, unerwartete "ID" (T_STRING) in /home/u115908902/public_html/mysort.php on line 19 –

0

Verwenden Sie die "IN" Zustand:

Wenn ID ist eine Zahl:

SELECT * FROM user WHERE id IN (89, 25); 

Wenn ID ist eine Zeichenfolge, die IDs in Anführungszeichen:

SELECT * FROM user WHERE id IN ('89N', '15B', '25E'); 

Rewrite Ihre Anfrage in PHP, um die Bedingung "In Query" zu verwenden, achten Sie genau auf Ihre Datentypen für die Spaltendefinition. Strings müssen zum Beispiel zitiert werden.

+0

in welchem ​​Format sollte ich die URL verwenden .. –

Verwandte Themen