2010-05-15 7 views
2

Lorsque je tente de construire une requête à partir d'une autre requête dans le code PHP J'ai fait face à un problème
pouvez-vous me dire pourquoi? :(construction requête SQL à partir d'une autre requête dans php

Code:

$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 

grâce, la requête est maintenant .. Les travaux

Mais je faisais face à un autre problème, Quand j'affiche le résultat de cette requête ..

Code

! :

$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>"; 
} 

Répondre

1

En ce qui concerne la dernière partie de l'erreur, vous devez supprimer le préfixe "ro". à partir des parties de droite des déclarations d'affectation.

Ainsi, votre code actuel aurait dû être: -

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

    echo "$RoomName $RoomDescription"; 
} 

Essayez celui-ci ci-dessus, & vous devriez travailler très bien; jusqu'à & à moins qu'il y ait une erreur concernant l'existence de votre champ dans votre table de base de données ou votre connexion à la base de données.

+1

Merci! ça marche bien maintenant! :) – Nina

+0

Merci à vous, pour le tester assez rapidement et le définissant comme la réponse. –

0

Vous n'avez pas besoin d'un sous-requête pour ajouter le LIKE-partie:

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%'

Btw, assurez-vous d'assainir/échapper la variable $search_each.

Questions connexes