2015-02-02 2 views
0

Я пытаюсь отфильтровать из checkboxlist с JSON для Android-приложения. Для целей тестирования я использовал html флажок. Я получаю ошибки, какJson mysql соединение и ошибка преобразования массива.

Примечание: Массив для преобразования строки Предупреждение: mysql_fetch_array() ожидает параметр 1, чтобы быть ресурсом, логический

Мой код требуется ("config.inc.php"); if (! Empty ($ _ POST)) {
$ condition = ""; $ value = ""; $ response = array();
if (! Empty ($ _ POST ['brand'])) { $ value = $ _POST ['brand']; $ valu = implode ("','", $ value); $ condition. = "PhoneMake IN". "('$ Valu')"; } if (! Empty ($ _ POST ['ram'])) { $ value = $ _POST ['ram']; $ valu = implode ("','", $ value); $ condition. = "AND Os_ram IN". "('$ Valu')";

} 
$query ="SELECT * FROM product INNTER JOIN specs WHERE "." $condition GROUP BY PhoneModel"; 

     $query_params = array(
     ':PhoneMake' => $_POST['brand'], 
     ':Os_ram' => $_POST['ram'] 

    ); 

    try { 
     $stmt = $db->prepare($query); 
     $result = $stmt->execute($query_params); 
    } 
    catch (PDOException $ex) { 

     $response["success"] = 0; 
     $response["message"] = "Database Error2. Please Try Again!"; 
     die(json_encode($response)); 
    } 


$a = mysql_query($query); 
    while($b = mysql_fetch_array($a)) 
    { 

    $response["$b[PhoneMake]"][]["$b[PhoneModel]"] = array('OS' => $b['Os_name'], 'Display Size (Inch)' => $b['D_apps'], 'Ram' => $b['Os_ram']); 

} 
    echo json_encode($response); 
    } 
?> 
    <h1>Filter</h1> 
    <form action="" method="post"> 
     <div class="panel-heading filterhead">Filter by brand</div> 
      <label><input type="checkbox" name="brand[]" value="Motorola"> Motorola</label><br> 
      <label><input type="checkbox" name="brand[]" value="Xolo"> Xolo</label><br> 
      </div> 

<div class="panel-heading filterhead">RAM</div> 
      <label><input type="checkbox" name="ram[]" value="512"> 512 MB</label><br> 
      <label><input type="checkbox" name="ram[]" value="1"> 1 GB</label><br> 
      </div> 

    </div> 
     <input type="submit" value="Filter" /> 
    </form> 

config.inc.php

<?php 
    $host = "localhost"; 
    $dbname = "street";  
    $username = "root"; 
    $password = ""; 

    $options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'); 

    try 
    { 

     $db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options); 
    } 
    catch(PDOException $ex) 
    { 
     die("Failed to connect to the database: " . $ex->getMessage()); 
    } 

    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 


    $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); 


    if(function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) 
    { 
     function undo_magic_quotes_gpc(&$array) 
     { 
      foreach($array as &$value) 
      { 
       if(is_array($value)) 
       { 
        undo_magic_quotes_gpc($value); 
       } 
       else 
       { 
        $value = stripslashes($value); 
       } 
      } 
     } 

     undo_magic_quotes_gpc($_POST); 
     undo_magic_quotes_gpc($_GET); 
     undo_magic_quotes_gpc($_COOKIE); 
    } 


    header('Content-Type: text/html; charset=utf-8'); 

    session_start();  

?> 

Я закодированы все правильно, но до сих пор я получаю сообщение об ошибке. И главная проблема - mysql_fetch_array() ожидает, что параметр 1 будет ресурсом, boolean. Помогите мне выйти из этой ошибки. Я хочу использовать файл config.inc.php как есть.

ответ

0

Похоже, в вашем запросе есть опечатка. INNTER JOIN должно быть INNER JOIN.

+0

спасибо. Но все же есть проблема. Будет ли этот код работать, чтобы получить информацию от android и показать вывод? – Dilipwk

+0

Да, у android используется хром-браузер. – EternalHour

Смежные вопросы