假設我有兩個相關的表設置類似於: table_1:person_id,name; table_2:account_id,person_id,account_type,balance;php/mysql遞歸顯示相關表的相關記錄
我要顯示這樣的結果:
(A)爲person_id - 名稱: (一)ACCOUNT_TYPE - 平衡, (一)ACCOUNT_TYPE - 平衡, (一)ACCOUNT_TYPE - 平衡
(b)爲person_id - 名稱: (b)中ACCOUNT_TYPE - 平衡
(C)爲person_id - 名稱: (c)中ACCOUNT_TYPE - 平衡, (c)中ACCOUNT_TYPE - 平衡
以下是我到目前爲止(我不確定是否應該在2個查詢中完成它,或者只是1個連接的查詢)也是$ where1和$ search是用戶輸入搜索字段,它們目前已經在處理這一頁。和$ Y是我在傳遞變量愚蠢的嘗試,但我不認爲這是一個正確的解決方案,我想要做的事:
$q = "SELECT person_id,
FROM table_1 WHERE $where1 LIKE '$search%'";
$r = @mysqli_query ($dbc, $q);
$q2 = "SELECT person_id, balance, account_type
FROM accounts WHERE person_id LIKE '$y%'";
$r2 = @mysqli_query ($dbc, $q2);
while($row = mysqli_fetch_array($r)) {
echo $row['person_id']. " - " .$row['name']. ":";
$y = $row['person_id'];
echo "</br>";
while($row = mysqli_fetch_array($r2)) {
echo $row['account_type']. " - " .$row['balance'] ."</br>";
}
echo "</br>";
}
目前這款顯示:
(A)爲person_id - 名稱: 的(a)ACCOUNT_TYPE - 平衡 的(a)ACCOUNT_TYPE - 平衡 的(a)ACCOUNT_TYPE - 平衡 (b)中ACCOUNT_TYPE - 平衡 (c)中ACCOUNT_TYPE - 平衡 (c)中ACCOUNT_TYPE - 平衡
( B)person_id - 名字:
(C)爲person_id - 名稱:
我假設而內的,而這是將工作的方式,但我不知道究竟如何去做。而且,這個東西上面顯然有代碼,但是這些東西都可以工作,並且主要與打開數據庫連接和搜索表單有關。
此外,我在這裏包含的代碼是示例代碼,可能是另一種方式的錯誤,但我主要只是尋找一個關於如何構建查詢和遞歸來顯示數據的整體思路我希望它顯示的方式。
在此先感謝您提供的所有幫助。
此外,如果您尚未在代碼中的其他位置執行此操作,則應在清除發佈的數據之前在查詢中使用它以防止SQL注入。 – Revent 2012-08-14 04:18:21
我覺得我應該明白這一點,但有些東西只是不點擊而已。什麼是「如果」在做什麼?這是幹什麼的:「$ output_ary [$ r ['person_id']] [] = $ r;」 ?該foreach(es)去哪裏?我已經做了一些關於我如何工作的假設,並試圖以幾種不同的方式將其應用到我的代碼中,但卻無法獲得我需要的結果。非常感謝您花時間回答這個問題,並再次感謝您能否給我更多幫助。 – bseaworthy 2012-09-03 08:05:39
好吧,我玩了一點,並提出了一個更不優雅的解決方案,似乎在這一點上工作。所以這已經不再那麼緊迫了,但我仍然很想看看究竟做了什麼,因爲我認爲它在將來可能會有用。再次感謝。 – bseaworthy 2012-09-03 08:28:00