Я совершенно новичок в Php, и я пытаюсь отправить json-данные с php на android.I есть следующий код в php для чтения значения из базы данных:
<?php $con=mysql_connect("localhost","root",""); if(! $con) { die('Connection Failed'.mysql_error()); } mysql_select_db("registration",$con); $name="Adam";//$_POST["name"]; $password="charles";//$_POST["password"]; $sql="SELECT * FROM users WHERE name='$name'and password='$password'"; $result=mysql_query($sql, $con); while($row = mysqli_fetch_array($result)) { $details= array( 'name' => $row['name'], 'password' => $row['password'], ); array_push($json, $bus); } $jsonstring = json_encode($json); echo $jsonstring; mysql_close(); ?> Я ожидаю, что результат будет примерно таким:
 [{"name":"Adam","age":"25","surname":"charles"}] 
Если я не ошибаюсь, данные JSON. Но это дает мне ошибку:
 mysqli_fetch_array() expects parameter 1 to be mysqli_result, resource given in... 
а также
 Undefined variable: json in... 
может кто-то pleease сказать мне, что может быть возможной ошибкой
Попробуйте это
 $result=mysql_query($sql, $con); $json = array(); while($row = mysql_fetch_array($result)) { $json[]= array( 'name' => $row['name'], 'password' => $row['password'] ); } $jsonstring = json_encode($json); echo $jsonstring; 
И mysql устарел, когда вы можете использовать mysqli или PDO
В дополнение к изменениям, предложенным sam и pitchinate, также рассмотрите возможность добавления заголовка php для установки типа контента на json
 header('Content-type: application/json'); 
То есть, если вы используете андроид, чтобы запросить удаленную информацию json
  Вы используете mysql_query с mysqli_fetch_array .  Вам нужно использовать mysql_fetch_array . 
Однако функции mysql_ * больше не должны использоваться.
Еще одна ошибка:
 array_push($json, $bus); // i believe $bus should be replaced with $details 
Я думаю, вы должны проверить содержимое переменной $ result (var_dump ()); На самом деле, если результат не определен, ваша программа не войдет в цикл, и $ json не будет определен.
Неопределенная переменная: json вызван тем, что вы пытаетесь сделать array_push ($ json, $ bus), но $ json не существует.
вы должны сначала заявить об этом
 $json = Array(); 
Ошибка mysql, скорее всего, вызвана тем, что вы смешиваете модули mysql и mysqli.
Используйте только mysqli.
 $con=mysqli_connect("localhost","root",""); mysql_select_db("registration",$con); ... $result=mysql_query($sql, $con); 
Также, как правило, неплохо хранить пароли в текстовом виде. Рассмотрим хотя бы хэш-функцию.