2011-07-08 6 views
1

これらの文をマージする正しい構文は何でしょうか?私わからないよ、それはここで働いて手に入れた正しい結合構文

<?php 
    $tag_shows_result = mysql_query("SELECT * 
            FROM tags 
            WHERE tagname = '$n' 
             AND `show` > 0"); 
    while ($row = mysql_fetch_array($tag_shows_result)) { 
    $shows_to_tag_result = mysql_query("SELECT * 
              FROM shows 
             WHERE id = ".$row['show']." 
             ORDER BY name ASC"); 
    while ($row = mysql_fetch_array($shows_to_tag_result)) { 
?> 
&nbsp;<a href="./show.php?id=<?php echo $row['id']; ?>" title="<?php echo $row['name']; ?>"><img src="./images/shows/<?php echo $row['id']; ?>.jpg" width="150" height="150" border="0" alt="<?php echo $row['name']; ?>" /></a> 
<?php } } ?> 

を使用する機能に参加したのは、正しい形式喜びで使用されるフィールドで推測

<?php 
$tag_shows_result2 = mysql_query("SELECT * FROM tags JOIN shows ON tags.show = shows.id WHERE tagname='$n' AND `show` > 0 ORDER BY shows.name ASC"); 
while ($row = mysql_fetch_array($tag_shows_result2)) 
{ 
?> 
&nbsp;<a href="./show.php?id=<?php echo $row['id']; ?>" title="<?php echo $row['name']; ?>"><img src="./images/shows/<?php echo $row['id']; ?>.jpg" width="150" height="150" border="0" alt="<?php echo $row['name']; ?>" /></a> 
<?php } ?> 
+0

mysqlのクエリ結果の保存の両方が同じ変数 '$のrow' ... – diEcho

+0

doesntの物のみのものイムからの呼び出しなどではない正しい方法であります最初のクエリは番組表の番組IDと同じ番組IDです – rackemup420

答えて

2
SELECT * 
FROM tags 
JOIN shows ON tags.show = shows.id 
WHERE tagname='$n' and show>0 

であるが、これは何であるべきです欲しいです。

+0

警告:mysql_fetch_array():指定された引数は、/home/a5410474/public_html/tags/tag.phpのオンラインの有効なMySQL結果リソースではありません80 – rackemup420

+0

申し訳ありませんが、私は笑の何かのスペルミスの完璧なtyを – rackemup420

+0

なぜ使用する '*'あなたは2つだけの属性が必要ですか? – diEcho

3

空想を取得する必要はありません:

SELECT show.* FROM tags 
JOIN shows ON (tags.show = show.id) 
WHERE tags.tagname = ? 
ORDER BY show.name ASC 

あるいは、さらに簡単:たぶん

SELECT * FROM shows WHERE id IN (
    SELECT show FROM tags WHERE tagname = ? 
) ORDER BY name ASC 
+0

あなたはORDER BY句を忘れてしまったが、それ以外の点では素晴らしい。おそらく、準備されたステートメントを使用する方法の例を追加しますか? –

0

SELECT tags.id, tags.name 
FROM tags, shows 
WHERE tags.tagname = '$n' and shows.id = tags.show and tags.show>0 
2

てみ

SELECT s.id, s.name FROM `shows` s 
INNER JOIN tags t ON t.id=s.show 
WHERE t.tagname='$n'AND s.`show` > 0 

その後、uは好きなやり方表示...

ALL D BEST :)

+0

'id'と' name'は 'tags'テーブルから来ていると思います。 – diEcho