$ _GET和isset()url响应Json

时间:2015-06-12 02:23:58

标签: php mysql json

我在这里使用了很多答案来解决几乎所有问题,但我无法弄清楚如何实现这一目标; 我使用PHP从我的MySQL获取数据,并使用url请求编码为json,所以我去了miweb。 com /_js/ajax/load_content.php?f=1 我从databesa获得了完美的响应,并且回显到json编码,1表示id为1的用户 我的回答如下:

[{"i":"1","n":"Azul","p":"_imgs\/site\/iconos\/0-100\/22\/activo\/ico_00022_138.jpg"}]

如果我去miweb。 com / _js / ajax / load_content.php?f = 2我会得到

[{"i":"2","n":"Lety","p":"_imgs\/site\/iconos\/0-100\/87\/activo\/ico_00087_138.jpg"}]

我需要完成的是去?f = 1,2

miweb.com /_js/ajax/load_content.php?f=1,2并在同一个json中获得响应

  [{"i":"1","n":"Azul","p":"_imgs\/site\/iconos\/0-100\/22\/activo\/ico_00022_138.jpg"},
  {"i":"2","n":"Lety","p":"_imgs\/site\/iconos\/0-100\/87\/activo\/ico_00087_138.jpg"}]

这是我的php脚本:

    require  '../../system/config.php';
if( isset($_GET['h']) ) {
    get_ficha($_GET['h']);

} else {
    die("Solicitud no válida.");
}
function get_ficha( $id) {
    // CONECCION DATABASE//
    $database = new mysqli(HOST, USER, PASS, DBNAME);
    if($database->connect_errno) {
        die("No se pudo conectar a la base de datos");
    }
    mysqli_set_charset($database, "utf8");
    //Sanitize ipnut y preparar query
    if( is_array($id) ) {
        $id = array_map('intval', $id);
        $promo = "WHERE `ID` IN (" . implode( ',', $id ) . ")";
    } else {
        $id = intval($id);
        $promo = "WHERE `ID` = " . $id;
    }
    if ( $result = $database->query( "SELECT * FROM (ficha)" . $promo) ) {
        if( $result->num_rows > 0 ) {
                     $promo  = array();
                     while( $row = mysqli_fetch_array($result)) 
                     { 
                        $id=$row['id'];
                        $nombre=$row['nombre'];
                        $icono=$row['ico_138'];
                        $promo[] = array(
                            'i'=> $id,
                            'n'=> $nombre,
                            'p'=> $icono
                        );
                    }
        } else {
            $promo = array(

                );  
        }
        $result->close();
    } else {
        $promo["success"] = false;
        $promo["data"] = array(
                    'message' => $database->error
                );
    }
    header('Content-type: application/json; charset=utf-8');
    echo json_encode($promo, JSON_UNESCAPED_UNICODE);
    $database->close();
}
exit();

1 个答案:

答案 0 :(得分:0)

你需要爆炸获取变量

get_ficha(explode(',', $_GET['h']));

然后在你的函数中

    if( is_array($id) && count($id) > 1) {
        $id = array_map('intval', $id);
        $promo = "WHERE `ID` IN (" . implode( ',', $id ) . ")";
    } else {
        $id = intval($id);
        $promo = "WHERE `ID` = " . $id;
    }