PHP, SQL acemi yardım

3 Cevap php

Ben aşağıdaki tablo vardır:

Comments
--------
id      PK
cid     
content 
uid
comment

Içeriği ise image / i ?imgID=$cid baskı ve title tablosundan images satırdan veri almak istiyorum ve eğer ben o kadar üzerinde ?threadID=$cid baskı ve threads tablosundan başlığı almak ve istediğiniz bir konu var. Bunu nasıl yapmalıyım?

<h3>Latest comments</h3>
<?php 

$rs = mysql_query("
  SELECT * 
  FROM comments 
  LEFT JOIN threads 
    ON threads.id = comments.cid 
  WHERE comments.uid = $id
");
while ($row = mysql_fetch_assoc($rs)) {
 echo $row['title'];
}

3 Cevap

$q="SELECT c.id, c.cid, c.content, c.uid, c.comment,
    COALESCE(t.title,i.title) AS the_title
    FROM comments c LEFT JOIN threads t ON (c.cid=t.id AND c.content='thread')
                    LEFT JOIN images i ON (c.cid=i.id AND c.content='image');

Yukarıdaki birlikte iki sorguları birleştirir ve bir sütunda başlık niteliği koyar.

 while ($row = mysql_fetch_assoc($rs)) {
   if($row['content'] == "image") {
        echo "?imgID={$cid}";
        $title = mysql_fetch_assoc(mysql_query("SELECT title from images WHERE id = '$cid'");
   } elseif ($row['content'] == "thread") {
        echo "?threadID={$cid}";
        $title = $row['title']; // Will only work as long as there is no title field in comments, oherwise use threads.title
   }
 }
 echo $title;

Buyurun. $ Cid etrafında kaşlı ayraçlar kesinlikle nessecary değil, ama onlar sonradan metin yazdırmak için çalışıyoruz sorunları önlemek ve başka bir şey gibi değişken adını okur.

Ben bir başlangıç ​​noktası olarak these kaynaklardan birini öneriyoruz.