2017-03-19 3 views
1

Ich versuche, einfach eine SQL-Ergebnismenge über PHP ohne die hinzugefügten Schlüssel => Wert-Paare, die ich so sehr liebe. > _ <PHP: vereinfachte sql resultset, kein Müll

Der folgende Code ist in der Lage, Werte aus den Schlüsselwertpaaren zu extrahieren, gibt es aber zweimal hintereinander.

Ergebnisse: "was; was; im; im; schauend; schauend; for; for;".

Ich weiß, dass ich etwas sehr Grundlegendes vermisse und es wäre VITAL, wenn das geklärt werden könnte ... Ich habe versucht, diese Zeit und Zeit wieder zu ändern, und das ist das nächste, das ich zur REAL gewünschten Ausgabe bekommen kann.

gewünschte Ergebnisse: "was; im; suchen; für;".

+1

die erste foreach mit $ results = $ dbh-> query ($ sql) – altoids

+2

Es klingt wie' PDO ersetzen. Also versuchen Sie es als 2. Parameter hinzufügen -> '$ dbh-> query ($ sql, PDO :: FETCH_ASSOC)' – Sean

+0

Sie hatten Recht, Sean! Vielen Dank! Das hat mich verrückt gemacht, lol. – thecomissar

Antwort

1

PDO gibt höchstwahrscheinlich sowohl Spaltennamen als auch ordinale Positionen als $key in Ihrer Map zurück. Sie können die Ausgabe filtern, indem Sie prüfen, ob sie den Schlüssel is_numeric enthalten, und nur die Werte zurückgeben, die den Ordinalwerten entsprechen.

$dbh = new PDO('mysql:host=localhost;dbname=???', $user, $pass); 
$sql = "SELECT * FROM products"; 
foreach ($dbh->query($sql) as $results) 
{ 
    foreach($results as $key => $value){ 
     if (is_numeric($key)) { 
      echo $value.';'; 
     } 
    } 
} 

Wie @Sean erwähnt, können Sie ausschließlich die Spaltennamen (oder Ordnungspositionen) zurückkehren, indem Sie einen entsprechenden Wert in den zweiten Parameter der query Funktionsaufruf übergeben:

$dbh = new PDO('mysql:host=localhost;dbname=???', $user, $pass); 
$sql = "SELECT * FROM products"; 
foreach ($dbh->query($sql, PDO::FETCH_ASSOC) as $results) 
{ 
    foreach($results as $key => $value){ 
     echo $value.';'; 
    } 
} 
+1

Danke, das klappt auch! – thecomissar

1

Aus Gründen der andere Entwickler und ich möchte den Code in Barebones finalisieren, damit die Lesbarkeit leichter von anderen erlernt oder manipuliert werden kann. DANKE FÜR DIE HILFE, GUYS !!! query() `` kehrt beide PDO :: FETCH_ASSOC` und `PDO :: FETCH_NUM`:

$dsn='mysql:host=localhost;dbname=YOUR_DATABASE'; 
$user='USER_NAME'; 
$pass='PASSWORD'; 

$dbh = new PDO($dsn, $user, $pass); 

foreach ($dbh->query("SELECT * FROM YOUR_TABLE", PDO::FETCH_ASSOC) as $results){ 
    foreach($results as $key => $value){ 
     echo $value; 
    } 
}