mein Titel ist confusing..sorry über that..anyway..kindly Blick auf meinem Code:php/mysql - while-Schleife ..pass Ergebnis in Array?
{ ":
<?php
include('../connectDB.php'); //connect to db
echo '{ ';
echo '"success": 1, ';
echo '"result": [ ';
$result = mysql_query("SELECT * FROM roominventory");
while($row = mysql_fetch_array($result)) { //start while
$getId = $row['id']; //get value
$getRoomId = $row['room'];
echo '{ ';
$ar = $row['arrival']; //assign value to variable
$dep = $row['departure'];
$date = str_replace('-', '/', $ar); //format the date
$formatArr = date('m/d/Y', strtotime($date));
$date2 = str_replace('-', '/', $dep); //format the date
$formatDep = date('m/d/Y', strtotime($date2));
$mSt = strtotime($formatArr) * 1000; //convert to milliseconds
$mEd = strtotime($formatDep) * 1000;
echo '"id": ' . '"' . $getId. '"' . ', ';
$resulta = mysql_query("SELECT * FROM rooms_amenities WHERE id='$getRoomId'");
while($rowa = mysql_fetch_array($resulta)) {
$getName = $rowa['name'];
}
echo '"title": ' . '"' . $getName . '"' . ', ';
echo '"url": ' . '"' . 'http://example.com' . '"' . ', ';
echo '"class": ' . '"' . 'event-warning' . '"' . ', ';
echo '"start": ' . '"' . $mSt . '"' . ', '; //echo the converted date
echo '"end": ' . '"' . $mEd . '" ';
echo '} ';
echo ', '; //comma (should only in between entries and not in the very end of the very last entry)
} //end while
echo '] ';
echo '}';
?>
jetzt dies das Ergebnis der Datei ist Erfolg ": 1," Ergebnis ": [{" id ":" 254 "," title ":" Standardraum 202 "," url ":" exampledotcom "," class ":" event-warning "," start " : "1470693600000", "Ende": "1471384800000"}]}
kein Problem damit. Jetzt, Problem ist, dass, wenn es mehr als 1 Zeile in der Tabelle in meiner Datenbank das Ergebnis wird so:
{"Erfolg": 1, "Ergebnis": [{"id": "255", " title ":" Standardraum 201 "," url ":" beispieldotcom "," klasse ":" event-warning "," start ":" 1471903200000 "," end ":" 1472076000000 "}, {" id ":" 256 "," title ":" Standardraum 202 "," url ":" beispieldotcom "," klasse ":" event-warning "," start ":" 1471903200000 "," end ":" 1472076000000 "},]}
notive das "Komma" auf dem letzten Eintrag "1472076000000"} ,]}
was mein Wunsch/erwartete Ergebnis sollte so sein:
{"Erfolg": 1, "Ergebnis": [{"id": "255", "title": "Standard Zimmer 201", "url": "exampledotcom", "Klasse": "Ereigniswarnung", "Start": "1471903200000", "Ende": "1472076000000"} , {"id": "256", "title": "Standardraum 202", "url ":" exampledotcom "," class ":" ereigniswarnung "," start ":" 1471903200000 "," end ":" 1472076000000 "}]}
beachten Sie das" Komma "nach dem ersten Eintrag und zwischen dem zweiter Eintrag {"id:" ...}, {"id:" ...} und kein Komma nach dem allerletzten Eintrag.
Ich habe versucht, das Komma außerhalb/Ende der While-Schleife zu echo. aber im Ergebnis ist das Komma nur beim allerletzten Eintrag, keine dazwischen
Wenn die letzte Zeile erreicht ist, dann sollte beim letzten Eintrag kein Komma stehen. Ich weiß nicht, wie ich das gewünschte Ergebnis erzielen kann.
Gibt es einen anderen Weg? wie mit array/json_encode? ..aber ich weiß nicht, wie es tun
json_encode() ist dein Freund, du solltest niemals JSON-Strings wie diese erstellen – Borjante
mach einfach ein Array und danach codiere es einfacher. –
Um Ihren Code zu korrigieren, sollten Sie echo ','; vor dem ersten "Echo" {'; " in der while, in einer if staement if (isset ($ ar) {echo ';';} –