2014-10-15 2 views
-2

Итак, я пытался сгенерировать свою базу данных sql для json, но имя таблицы не создается. Как получилось? Что мне нужно изменить, чтобы он также генерировал имя таблицы?Почему имя объекта JSon не анализируется?

<?php 
    //Create Database connection 
    $db = mysql_connect("***","***","***"); 
    if (!$db) { 
     die('Could not connect to db: ' . mysql_error()); 
    } 

    //Select the Database 
    mysql_select_db("***",$db); 

    //Replace * in the query with the column names. 
    $result = mysql_query("SELECT * FROM table", $db); 

    //Create an array 
    $json_response = array(); 

    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
     $row_array['id'] = $row['id']; 
     $row_array['first_name'] = $row['first_name']; 
     $row_array['last_name'] = $row['last_name']; 
     $row_array['email'] = $row['email']; 
     $row_array['country'] = $row['country']; 
     $row_array['ip_address'] = $row['ip_address']; 

     //push the values in the array 
     array_push($json_response,$row_array); 
    } 
    echo json_encode($json_response); 

    //Close the database connection 
    fclose($db); 

?> 

смотрел на это в течение нескольких часов, просто не знаю, что случилось ...

Я надеюсь, что вы, ребята, можете мне помочь!

+1

Пожалуйста, покажите ожидаемый выход. Что вы подразумеваете под «именем таблицы [сгенерированным]»? –

ответ

0

Поскольку имя таблицы не возвращается в базу данных!

Если вы хотите его вернуть, оберните свой объект $json_response в другой массив. Например.

echo json_encode(array('table_name' => $json_response)) 

Так говорит, что вы используете mysql_ * функцию, которые небезопасный и осуждаются. Переходите к MySQLi или PDO и к подготовленным операторам.

+0

Не могли бы вы рассказать мне, что я должен изменить? – ImAtWar

+0

Вам нечего менять. SQL-запросы никогда не возвращают имя таблицы. Но вы можете просто заменить свою строку «эхо» той, которую я опубликовал выше, настроив «table_name». – Qualcuno

+1

И если вы имеете в виду «что я должен изменить для базы данных» ... Затем прекратите следовать руководствам, написанным для PHP4, и используйте новые драйверы базы данных: php.net/mysqli или php.net/pdo. Обратите внимание, что расширение, которое вы используете, MySQL (не «i») устарело. @ImAtWar – Qualcuno

0

Ваш цикл по результатам запроса к базе данных, она не будет включать имя таблицы, если вручную добавить его в ответ ...

$json_response = array('table' => 'table name here', 'results' => array());

и ..

array_push($json_response['results'],$row_array); 
Смежные вопросы