Похоже, что что-то не так с вашей конфигурацией, вот несколько вещей, которые вы можете проверить:
php -v
из командной строки и посмотреть, возвращает ли информация о версии или какие-либо ошибки. LoadModule php5_module "c:/php/php5apache2_2.dll"
в файле. Найдите LoadModule php
и убедитесь, что перед ним нет комментария (;
). AddType application/x-httpd-php .php
. Это говорит Apache, чтобы запустить .php
файлы как PHP. Найдите AddType, а затем убедитесь, что есть запись для PHP, и что она раскоментирована. .php
на нем или любое расширение, указанное в определении MIME в point # 3, иначе он не будет выполняться как PHP.
), это не включен на всех серверах по умолчанию, и их использование не рекомендуется. Вместо этого используйте (или включить короткие теги в вашем php.ini с short_open_tag=On
, если у вас есть код, который их использует).
http://localhost/file.php
, не через доступ к локальному файлу file://localhost/www/file.php
И, наконец, проверьте Руководство по PHP для дальнейших советов по настройке .
$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 .
Спасибо .. мой ответ:
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";
}
$rows = json_decode($mysql_result,true);
так просто: -)
$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).'}';
Я решил как это
$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);
Попробуйте это, это создаст ваш объект правильно
$result = mysql_query("SELECT ...");
$rows = array();
while($r = mysql_fetch_assoc($result)) {
$rows['object_name'][] = $r;
}
print json_encode($rows);
<?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
, эта работа похожа на метод append StringBuilder в java
У меня такое же требование. Я просто хочу напечатать объект результата в формате 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";
}
Как создать JSON, используя данные из базы данных MySQL
JSON (Обозначение объекта JavaScript) более предпочтительна в настоящее время по сравнению с XML, поскольку она легка, понятна и легко управляема для обмена данными на разных платформах. мы увидим, как данные JSON могут быть созданы из таблицы Employee, хранящейся в базе данных MySQL.
echo json_encode($data);
Live: [Пример ]
Мое простое исправление, чтобы остановить его, помещая речевые метки вокруг числовых значений ...
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;
}
Ниже приведен код ниже!
<?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);
?>
мы могли бы упростить ответ Паоло Бергантино, как это
$sth = mysql_query("SELECT ...");
print json_encode(mysql_fetch_assoc($sth));
Например, $ result = mysql_query («SELECT * FROM userprofiles, где 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);
Код:
$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);
Еще одна опция, использующая цикл FOR:
$sth = mysql_query("SELECT ...");
for($rows = array(); $row = mysql_fetch_assoc($sth); $rows[] = $row);
print json_encode($rows);
Единственным недостатком является то, что цикл для более медленного, т.е. в то время как или особенно foreach
Вышеупомянутое не будет работать, по моему опыту, до того, как вы назовете корневой элемент в массиве на что-то, до этого я не смог получить доступ к чему-либо в финальном json.
$sth = mysql_query("SELECT ...");
$rows = array();
while($r = mysql_fetch_assoc($sth)) {
$rows['root_name'] = $r;
}
print json_encode($rows);
Это должно сделать трюк!
Pär
http://www.php.net/mysql_query говорит: «mysql_query()
возвращает ресурс».
http://www.php.net / json_encode говорит, что он может кодировать любое значение «за исключением ресурса».
Вам нужно выполнить итерацию и собрать результаты базы данных в массиве, затем json_encode
массив.
Извините, это очень долго после вопроса, но:
$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
GROUP_CONCAT()
ограничено group_concat_max_len
.
– eggyal
11 October 2012 в 07:30
Спасибо, это очень помогло мне. Мой код:
$sqldata = mysql_query("SELECT * FROM `$table`");
$rows = array();
while($r = mysql_fetch_assoc($sqldata)) {
$rows[] = $r;
}
echo json_encode($rows);
Проверьте код ниже для использования 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);
AS
для переименования столбцов в нечто для публичного типа, напримерSELECT blog_title as title
, это чище, а публика не знает, какие именно столбцы из базы данных. – RobertPitt 5 February 2011 в 18:04