PHP MYSQL:IF语句(比较select语句中的数据)(错误:什么都不显示)

时间:2014-02-07 06:01:12

标签: php mysql if-statement

我有一个像这样的PHP代码:

$query = mysql_query('SELECT movie_tittle, sinopsis, actors, poster
                     FROM (SELECT movie_tittle, sinopsis, actors,
                         poster, cinema from `margoplatinum`.movie
                     UNION
                     SELECT movie_tittle, sinopsis, actors, poster, cinema 
                        from `detos21`.movie
                     UNION
                     SELECT movie_tittle, sinopsis, actors, poster, cinema 
                        from `plaza21`.movie) AS a
                     WHERE a.movie_tittle = "Comic 8"');

IF ( 'cinema' == "Margo Platinum") {

 $json  = '{"film": [';

 while($row=mysql_fetch_array($query))
    {
        $char = '"';

        $json .='{
        "movie_tittle":"'.str_replace($char,'`',strip_tags($row["movie_tittle"])).'",
        "sinopsis":"'.str_replace($char,'`',strip_tags($row["sinopsis"])).'",
        "actors":"'.str_replace($char,'`',strip_tags($row["actors"])).'",
        "poster":"http://10.0.2.2/cinemainfo/margoplatinum/image/'.$row["poster"].'"},';

    }
$json = substr($json,0,strlen($json)-1);

$json .= ']}';

// print json
echo $json;
}

 IF ( 'cinema' == "21 Delta Town Square") {

$json  = '{"film": [';

 while($row=mysql_fetch_array($query))
    {
        $char = '"';

        $json .='{
        "movie_tittle":"'.str_replace($char,'`',strip_tags($row["movie_tittle"])).'",
        "sinopsis":"'.str_replace($char,'`',strip_tags($row["sinopsis"])).'",
        "actors":"'.str_replace($char,'`',strip_tags($row["actors"])).'",
        "poster":"http://10.0.2.2/cinemainfo/detos21/image/'.$row["poster"].'"},';

    }
$json = substr($json,0,strlen($json)-1);

$json .= ']}';

// print json
echo $json;
}

 IF ( 'cinema' == "21 Plaza") {

$json  = '{"film": [';

 while($row=mysql_fetch_array($query))
    {
        $char = '"';

        $json .='{
        "movie_tittle":"'.str_replace($char,'`',strip_tags($row["movie_tittle"])).'",
        "sinopsis":"'.str_replace($char,'`',strip_tags($row["sinopsis"])).'",
        "actors":"'.str_replace($char,'`',strip_tags($row["actors"])).'",
        "poster":"http://10.0.2.2/cinemainfo/plaza21/image/'.$row["poster"].'"},';

    }
$json = substr($json,0,strlen($json)-1);

$json .= ']}';

// print json
echo $json;
}

我有三个数据库,我想从中获取一些数据。所以我使用UNION条款。它适用于其他PHP代码。

现在,我从select语句中获取数据,我想将cinema列中的数据与字符串进行比较,例如"Margo Platinum",如果True,则转换为JSON代码。 但问题是,当我执行该代码时,它不会返回任何内容来显示。 这段代码是否正确? 请帮我写一个正确的:( 我真的很感谢你的任何帮助。 谢谢:))

2 个答案:

答案 0 :(得分:0)

哎呀。我不能在上面评论,所以必须写一个答案。 上面的人已经给你你的答案,只是有点复杂。 通过

'cinema' == "Margo Platinum"

你只是比较两个字符串,所以它永远不会等于true,这就是为什么你的代码在那个条件下什么也不做。

我注意到你也在使用不推荐使用的mysql_query和mysql_fetch_array。您可能想要使用mysqli_query和mysqli_fetch_array。 我也没有看到你把电影专栏的结果放到一个叫做电影的变量的地方,但我对json并不熟悉。

无论如何,你要比较两个不起作用的字符串。

答案 1 :(得分:0)

可能的解决方案(未经测试):

$query = mysql_query("SELECT movie_tittle, sinopsis, actors, poster, 'margoplatinum' AS code
                     FROM `margoplatinum`.movie
                     UNION
                     SELECT movie_tittle, sinopsis, actors, poster, 'detos21' AS code
                     FROM `detos21`.movie
                     UNION
                     SELECT movie_tittle, sinopsis, actors, poster, 'plaza21' AS code
                     FROM `plaza21`.movie
                     WHERE movie_tittle = 'Comic 8'");

$json  = '{"film": [';

while($row=mysql_fetch_array($query))
{
    $char = '"';
    $json .='{
        "movie_tittle":"'.str_replace($char,'`',strip_tags($row["movie_tittle"])).'",
        "sinopsis":"'.str_replace($char,'`',strip_tags($row["sinopsis"])).'",
        "actors":"'.str_replace($char,'`',strip_tags($row["actors"])).'",
        "poster":"http://10.0.2.2/cinemainfo/' . $row["code"] . '/image/'.$row["poster"].'"},';
}
$json = substr($json,0,strlen($json)-1);
$json .= ']}';

// print json
echo $json;