20 ответов:
$sth = mysqli_query("SELECT ..."); $rows = array(); while($r = mysqli_fetch_assoc($sth)) { $rows[] = $r; } print json_encode($rows);функции
json_encodeтребуется PHP >= 5.2 и php-json пакета - как уже упоминалось здесьПримечание:
mysqlявляется устаревшей начиная с версии PHP 5.5.0, используйтеmysqliрасширение вместо http://php.net/manual/en/migration55.deprecated.php.
попробуйте это, это создаст ваш объект правильно
$result = mysql_query("SELECT ..."); $rows = array(); while($r = mysql_fetch_assoc($result)) { $rows['object_name'][] = $r; } print json_encode($rows);
http://www.php.net/mysql_query говорит:"
mysql_query()возвращает ресурс".http://www.php.net/json_encode говорит, что он может кодировать любое значение "кроме ресурса".
вам нужно перебрать и собрать результаты базы данных в массив, затем
json_encodeмассив.
Спасибо это мне очень помогло. Мой код:
$sqldata = mysql_query("SELECT * FROM `$table`"); $rows = array(); while($r = mysql_fetch_assoc($sqldata)) { $rows[] = $r; } echo json_encode($rows);
спасибо.. мой ответ звучит так:
if ($result->num_rows > 0) { # code... $arr = []; $inc = 0; while ($row = $result->fetch_assoc()) { # code... $jsonArrayObject = (array('lat' => $row["lat"], 'lon' => $row["lon"], 'addr' => $row["address"])); $arr[$inc] = $jsonArrayObject; $inc++; } $json_array = json_encode($arr); echo $json_array; } else{ echo "0 results"; }
выше не будет работать, по моему опыту, прежде чем вы назовете корневой элемент в массиве к чему-то я не смог получить доступ ни к чему в последний json перед этим.
$sth = mysql_query("SELECT ..."); $rows = array(); while($r = mysql_fetch_assoc($sth)) { $rows['root_name'] = $r; } print json_encode($rows);Это должно сделать трюк!
Pär
приведенный ниже код отлично работает здесь!
<?php $con=mysqli_connect("localhost",$username,$password,databaseName); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $query = "the query here"; $result = mysqli_query($con,$query); $rows = array(); while($r = mysqli_fetch_array($result)) { $rows[] = $r; } echo json_encode($rows); mysqli_close($con); ?>
мое простое исправление, чтобы остановить его, помещая речевые метки вокруг числовых значений...
while($r = mysql_fetch_assoc($rs)){ while($elm=each($r)) { if(is_numeric($r[$elm["key"]])){ $r[$elm["key"]]=intval($r[$elm["key"]]); } } $rows[] = $r; }
извините, это очень долго после вопроса, но:
$sql = 'SELECT CONCAT("[", GROUP_CONCAT(CONCAT("{username:'",username,"'"), CONCAT(",email:'",email),"'}")), "]") AS json FROM users;' $msl = mysql_query($sql) print($msl["json"]);просто:
"SELECT" Select the rows "CONCAT" Returns the string that results from concatenating (joining) all the arguments "GROUP_CONCAT" Returns a string with concatenated non-NULL value from a group
мы могли бы упростить Паоло Bergantino ответ
$sth = mysql_query("SELECT ..."); print json_encode(mysql_fetch_assoc($sth));
Как создать JSON, используя данные из базы данных MySQL
JSON (JavaScript Object Notation) в настоящее время более предпочтителен по сравнению с XML, поскольку он легкий, читаемый и легко управляемый для обмена данными между различными платформами. мы увидим, как данные JSON могут быть созданы из таблицы Employee, хранящейся в базе данных MySQL.
echo json_encode($data);Live: [пример]
<?php define('HOST','localhost'); define('USER','root'); define('PASS',''); define('DB','dishant'); $con = mysqli_connect(HOST,USER,PASS,DB); if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $sql = "select * from demo "; $sth = mysqli_query($con,$sql); $rows = array(); while($r = mysqli_fetch_array($sth,MYSQL_ASSOC)) { $row_array['id'] = $r; **array_push($rows,$row_array);** } echo json_encode($rows); mysqli_close($con); ?>aarray_push($rows,$row_array); помогите построить массив иначе он даст последнее значение в цикле while
эта работа, как добавить метод StringBuilder на java
еще один вариант использования для цикла:
$sth = mysql_query("SELECT ..."); for($rows = array(); $row = mysql_fetch_assoc($sth); $rows[] = $row); print json_encode($rows);единственным недостатком является то, что цикл для медленнее, чем, например, while или особенно foreach
например $result = mysql_query ("SELECT * FROM userprofiles where NAME= 'TESTUSER'");
1.) если $result-это только одна строка.
$response = mysql_fetch_array($result); echo json_encode($response);2.) если $result-это более одной строки. Вам нужно перебрать строки и сохранить их в массиве и вернуть json с массивом в нем.
$rows = array(); if (mysql_num_rows($result) > 0) { while($r = mysql_fetch_assoc($result)) { $id = $r["USERID"]; //a column name (ex.ID) used to get a value of the single row at at time $rows[$id] = $r; //save the fetched row and add it to the array. } } echo json_encode($rows);
Я решил так
Это будет возвращено в ajax как результирующий набор и с помощью JSON parse в javascript части, как это :$stmt->bind_result($cde,$v_off,$em_nm,$q_id,$v_m); $list=array(); $i=0; while ($cresult=$stmt->fetch()){ $list[$i][0]=$cde; $list[$i][1]=$v_off; $list[$i][2]=$em_nm; $list[$i][3]=$q_id; $list[$i][4]=$v_m; $i=$i+1; } echo json_encode($list);obj = JSON.parse(dataX);
У меня такое же требование. Я просто хочу, чтобы напечатать объект в формате JSON, поэтому я использую код ниже. Я надеюсь, что вы найдете что-то в нем.
// Code of Conversion $query = "SELECT * FROM products;"; $result = mysqli_query($conn , $query); if ($result) { echo "</br>"."Results Found"; // Conversion of result object into JSON format $rows = array(); while($temp = mysqli_fetch_assoc($result)) { $rows[] = $temp; } echo "</br>" . json_encode($rows); } else { echo "No Results Found"; }
код:
$rows = array(); while($r = mysqli_fetch_array($result,MYSQL_ASSOC)) { $row_array['result'] = $r; array_push($rows,$row_array); // here we push every iteration to an array otherwise you will get only last iteration value } echo json_encode($rows);
$array = array(); $subArray=array(); $sql_results = mysql_query('SELECT * FROM `location`'); while($row = mysql_fetch_array($sql_results)) { $subArray[location_id]=$row['location']; //location_id is key and $row['location'] is value which come fron database. $subArray[x]=$row['x']; $subArray[y]=$row['y']; $array[] = $subArray ; } echo'{"ProductsData":'.json_encode($array).'}';
проверьте код ниже для использования mysql_fetch и json_encode. Вам нужно будет перебирать строки, но если вы используете mysqli ситуация изменится
$kt_query="SELECT * FROM tbl_xxx"; $kt_result = mysql_query($kt_query) or die('Query failed: ' . mysql_error()); $rows= array(); while($sonuc=mysql_fetch_assoc($kt_result)) { $rows[]=$sonuc; } print json_encode($rows);
Comments