2010-03-23 3 views
1

Je connais le $ downloadfile - et je veux le $ user_id. Par essais et erreurs, j'ai trouvé que cela faisait ce que je voulais. Mais il y a 3 requêtes séparées et 3 boucles while. J'ai le sentiment qu'il y a un meilleur moyen. Et oui, je n'ai que très peu d'idée sur ce que je fais :)Est-il possible de combiner ces 3 requêtes mySQL?

$result = pod_query("SELECT ID FROM wp_posts WHERE guid LIKE '%/$downloadfile'"); 
while ($row = mysql_fetch_assoc($result)) { 
    $attachment = $row['ID']; } 

$result = pod_query("SELECT pod_id FROM wp_pods_rel WHERE tbl_row_id = '$attachment'"); 
while ($row = mysql_fetch_assoc($result)) { 
    $pod_id = $row['pod_id']; } 

$result = pod_query("SELECT tbl_row_id FROM wp_pods_rel WHERE tbl_row_id = '$pod_id' AND field_id = '28'"); 
while ($row = mysql_fetch_assoc($result)) { 
    $user_id = $row['tbl_row_id']; } 
+0

Y at-il une erreur à la fin de votre exemple de code? La dernière requête obtient tbl_row_id et vous accédez alors à $ row ['pod_id'] ... – Dominik

+0

Est-ce que '$ user_id' dans la troisième requête est supposé être assigné à $ row ['tbl_row_id']'? –

+0

Comment se fait-il que vous faites des boucles pendant qu'en fait, vous semblez supposer que chaque requête renvoie une seule ligne de résultat? – Dominik

Répondre

1

En supposant que je comprends bien vos questions, cela devrait fonctionner:

SELECT wp.ID, wpr.pod_id, wpr.tbl_row_id 
FROM wp_pods_rel AS wpr 
JOIN wp_posts AS wp 
    ON wp.ID = wpr.tbl_row_id 
WHERE wpr.field_id = '28' 
    AND wp.guid LIKE '%/$downloadfile' 
+0

Hmm, n'obtenez pas d'erreurs mais ne peux pas le faire fonctionner comme prévu. Dois-je être capable de ça encore? $ user_id = $ row ['tbl_row_id']; – ugreen

+0

Non, je ne peux pas le faire fonctionner. Je pense que c'est parce que j'ai besoin de regarder dans wp_pods_rel 2 fois. Une fois quand j'ai le wp.ID pour obtenir le wpr.pod_id et ensuite l'utiliser pour affiner une autre entrée avec le même wpr.pod_id où wpr.field_id = '28' – ugreen

+0

Quel est le résultat prévu? –

0
SELECT wp_posts.ID, wp_pods_rel.pod_id, wp_pods_rel.tbl_row_id 
FROM wp_posts 
JOIN wp_pods_rel ON wp_posts.ID = wp_pods_rel.tbl_row_id 
WHERE wp_posts.guid LIKE '%/$downloadfile' AND wp_pods_rel.field_id = '28' 
Questions connexes