Birden fazla tablo PHP / MySQL veri döngü

2 Cevap php

, Tüm HI

Ben bile sözleriyle içine koymak nasıl anlamaya çalışıyorum, ama bir "çoklu tablo" mysql sorguda ayrı ayrı tablodan çıkış nasıl şekilleneceğini bilmek isteyen duyuyorum. Tablo1 "wall" dan çıkış yaparken döngü içinde biçimlendirilmiş, ancak tablo (kolon action_body) sokulmadan önce table2 "eylemler" den içerik zaten (bağlantıları ile metin 1 satır olarak) biçimlendirilir, içinde çok döngü Ben sadece eylemleri tablodan action_date ve action_body sütunları çıkış olacaktır.

Ben muhtemelen ihtiyacım sonuçlar için (Im doğru hiç bir şey yapıyor ise, yani) doğru sql yöntemini kullanarak, bu yüzden benim acemi örnek düzeltmek için çekinmeyin, ya da bu yaklaşım yeni bir yol önermek değilim.

Sorgu:

$query = "SELECT wall.wall_id, wall.wall_owner_id, wall.wall_user_id,
    wall.wall_post_date, wall.wall_post_content, actions.action_id, 
    actions.action_date, actions.action_user_id, actions.action_title, 
actions.action_body FROM wall, actions 
ORDER BY wall.wall_post_date, actions.action_date DESC";
$result = mysql_query($query);
while( $rows = mysql_fetch_assoc($result) {
// What to put here
}

Herhangi bir yardım, teşekkür, Lea takdir

2 Cevap

Update after comments

SELECT w.* FROM (
    (SELECT 
        'w' as type, 
        wall_id as id,
        wall_owner_id as owner_id,
        wall_user_id as user_id,
        wall_post_date as post_date,
        NULL as title,
        wall_post_content as content
     FROM wall
     WHERE wall_owner_id = x # user id of owner
    )
    UNION
    (SELECT
         'a' as type,
         action_id as id,
         action_user_id as owner_id,
         NULL as user_id,
         action_post_date as post_date,
         action_title as title,
         action_body as content
      FROM actions
      WHERE action_user_id = x # user id of owner
     )
) w 
ORDER BY w.post_date DESC

Eğer belirli bir alanda JOIN yapmadığından, edeceksin muhtemelen istediğinizden daha bir sürü daha fazla veri iki tablo, her satır-satır kombinasyonu olsun.

Sen 2 sorgular, her tablo için birini yaparak, daha iyi olurdu. Her tablonun sonucu ile döngü sırasında, sen dizi anahtar olarak sıralamak istediğiniz alanı ile, bir dizi istediğiniz veri toplayabilir.

Sonra bunu yazdırmak için bunun üzerinden dizi ve döngü sıralamak.