我有一个像这样的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
代码。
但问题是,当我执行该代码时,它不会返回任何内容来显示。
这段代码是否正确?
请帮我写一个正确的:(
我真的很感谢你的任何帮助。
谢谢:))
答案 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;