2014-12-05 2 views
1

Я бег запроса Mysql в файл PHP и разбор его как JSON следующим образом:фильтрацию результатов JSON на основе значения с URL

$json_response = array(); 

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
    $row_array['artist'] = $row['artist']; 
    $row_array['song'] = $row['song']; 

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

echo json_encode($json_response); 

Есть тысячи записей; Есть ли способ фильтровать результаты JSON на основе значения? что-то вроде: mylink.php/artist1 или mylink.php? Artist = 1

Я бы очень признателен за любые идеи.

благодаря

+0

Что ваш запрос MySQL (ЗЕЬЕСТ), и это на сайте? Как пользователь взаимодействует с этим кодом? – JasonCG

+0

Ну, причина, по которой я это делаю, состоит в том, что есть сотни художников, которые каждый раз будут доступны для возвращения своих песен .. И да, это для веб-сайта, но позже он будет доступен в приложении ios, необходимая информация. – airflow

ответ

0

Вы можете сделайте это так:

// Get artist info 
$artist_id = isset($_GET['artist']) ? intval($_GET['artist']) : 0; 
$sql = "SELECT * FROM artist"; 
if($artist_id) 
    $sql .= " WHERE artist=$artist_id"; 
mysql_query($sql); 
+0

Отлично. благодаря – airflow

0

Ну вы должны фильтровать результат с SQL, а не с PHP ...

Попробуйте Google для "MySQL SELECT FROM WHERE" это будет легко поможет вам

0

Во-первых, используемый вами API MySQL устарел и в конечном итоге будет удален. Для любой новой разработки рекомендуется перейти на MySQLI или PDO.

В PHP для получения параметров URL пользователя $_GET superglobal.

$artist = $_GET['artist']; 

Затем вы должны привязать параметр к инструкции SELECT. Вот почему было бы лучше переключиться на MySQLI или PDO, потому что функции mysql_ * в PHP не поддерживают подготовленные инструкции и параметризованные запросы. Подробнее на How can I prevent SQL injection in PHP?

Это сказало, используя mysql_ * здесь способ передать художнику в вашем запросе:

// Query 
$query = sprintf("SELECT * FROM mytable WHERE artist='%s'", 
      mysql_real_escape_string($artist)); 

$result = mysql_query($query); 


$json_response = array(); 

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
    $row_array['artist'] = $row['artist']; 
    $row_array['song'] = $row['song']; 

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

echo json_encode($json_response); 
Смежные вопросы