从PHP中的另一个查询构建SQL查询

时间:2010-05-15 16:02:13

标签: php sql build

当我尝试从PHP代码中的另一个查询构建查询时,我遇到了一些问题 你能告诉我为什么吗? :(

代码:

$First="SELECT ro.RoomID,
               ro.RoomName,
               ro.RoomLogo,
               jr.RoomID,
               jr.MemberID,
               ro.RoomDescription 
          FROM joinroom jr,rooms ro 
         where (ro.RoomID = jr.RoomID)
           AND jr.MemberID = '1' ";

$sql1 = mysql_query($First);

$constract .= "ro.RoomName LIKE '%$search_each%'";
$constract="SELECT * FROM $sql1 WHERE $constract ";// This statment is Make error 

谢谢,查询它现在正在工作! ..

但是当我显示此查询的结果时,我面临另一个问题..

代码:

$run =mysql_query ($sql);

while($runrows=mysql_fetch_assoc($run))         
{
  $RoomName=$runrows["ro.RoomName"];
  $RoomDescription=$runrows["ro.RoomDescription"];

  echo "<center><b>$RoomName</b><br>$RoomDescription<br></center>";
}

2 个答案:

答案 0 :(得分:1)

关于您所面临的错误的最后一部分,您需要删除前缀“ro”。从任务陈述的右边部分。

所以你的实际代码应该是: -

$run = mysql_query ($sql);
while($runrows = mysql_fetch_assoc($run)) {
    $RoomName = $runrows["RoomName"];
    $RoomDescription = $runrows["RoomDescription"];

    echo "$RoomName $RoomDescription";
}

尝试上面这个,&amp;你应该工作得很好;直到&amp;除非您的数据库表或数据库连接中存在关于字段存在的错误。

答案 1 :(得分:0)

您不需要子查询来添加LIKE-part:

SELECT ro.RoomID,ro.RoomName,ro.RoomLogo,jr.RoomID, jr.MemberID,ro.RoomDescription
FROM joinroom jr, rooms ro 
WHERE ro.RoomID = jr.RoomID
  AND jr.MemberID = '1'
  AND ro.RoomName LIKE '%$search_each%'

顺便说一句,确保清理/转义$search_each变量。