查询完成后,根据结果我想制作另一个结果。我可以这样做吗?
$sql="SELECT * FROM programme";
$res=mysql_query($sql);
while($row=mysql_fetch_array($res))
{
echo "$row[0]";
if($row[3]==1)
{
$prgrmsql="SELECT MovieName FROM movie WHERE MovieId=".$row[1];
$prgrmresult=mysql_query($prgrmsql);
while($line=mysql_fetch_array($prgrmresult))
{
echo "$line[0]";
}
}
else if($row[3]==2)
{
$prgrmsql="SELECT SongsName FROM songs WHERE SongsId=".$row[1];
$prgrmresult=mysql_query($prgrmsql);
while($line=mysql_fetch_array($prgrmresult))
{
echo "$line[0]";
}
}
}
但“if”内的查询未执行
答案 0 :(得分:1)
回答这个问题:
SELECT *
FROM (
/* inner function */
SELECT /*something*/
FROM table
)
此外,这样做可能会很昂贵,因此使用JOIN
/* example query */
SELECT *
FROM table1 t1
INNER JOIN table2 t2
ON t1.id = t2.id
对于这个具体问题,最好简单地使用INNER JOIN
,如此:
SELECT *
FROM `programme`
INNER JOIN `movie`
ON `programme`.`/*row three*/` = 1
AND `movie`.`MovieId` = `programme`.`/*first row*/`
答案 1 :(得分:0)
我认为你对单引号和双引号有点混淆。您的查询应该是双引号,变量应该是单引号。哦,当你回声时,你不需要在数组周围使用双引号。在这里,首先是查询:
$prgrmsql = "SELECT MovieName FROM movie WHERE MovieId='$row[1]'";
第二个是相同的。现在回声:
echo $row[0];
当然它适用于双引号,因为当使用双引号时,php解释器会考虑内部代码是什么,但它没有任何意图将它放入双引号中。