我想打印所有成員報告(抱怨),以這種形式的管理:PHP檢索,而不是檢索所有錶行的同一行多次
發件人名稱:...
報用戶名: ...
首先,我想直接從投訴表中選擇每個發件人姓名(使用for循環),然後找到匹配的報告用戶名並以這種方式打印所有報告。 請注意,我不保存發件人名稱和報告的用戶名在同一個表,所以我需要做mysql連接才能找到報告的用戶名。
<?php
$raw_results = mysql_query("SELECT * FROM complaint ");
$ln = mysql_num_rows($raw_results);
if($ln > 0){
$results = array();
$results = mysql_fetch_array($raw_results);
for($i=0;$i<$ln;$i++){
$SenderName = mysql_query("SELECT m_name FROM member WHERE (`m_id`LIKE '".$results[1]."') ");
$fetchA = mysql_fetch_array($SenderName, MYSQL_ASSOC);
$ReportedUserId = mysql_query("SELECT r.d_id FROM ride r, complaint c WHERE r.r_id= c.r_id");
$fetchB = mysql_fetch_array($ReportedUserId , MYSQL_ASSOC);
//Afer finding ID I use it to select name
$dname = mysql_query("SELECT m_name FROM member WHERE (`m_id` LIKE '%".$fetchB['d_id']."%') ");
$fetchDname = mysql_fetch_array($dname, MYSQL_ASSOC);?>
<ul data-role="listview" data-divider-theme="d" data-inset="false">
<li data-role="list-divider" role="heading">
<?php echo 'From:'; ?>
<?php echo $fetchA['m_name']; ?></li>
<li data-theme="c" >
<?php echo 'Reported user Name: '; ?>
<?php echo $fetchDname['m_name']; ?>
</li>
</ul>
,我從這段代碼中得到的輸出是表訴印多($ LN)倍一樣的第一行:
- 納達
- 阿里
- 納達
- Ali
....直到$ ln
爲什麼雖然我正在使用循環,但它不會進入下一行? 我試過在數據庫中的查詢,它的工作原理,所以問題不是從數據庫。 我準備寫更多的細節,如果需要:)
我的架構:
Member(m_id, m_name, ...etc)
Ride(r_id, p_id ....etc) *p_id refers to m_id
Complaint(c_id, d_id ..etc)*d_id refers to m_id
the idea is member reports member in a ride
你忘記關閉支架您的循環,或者當你在這裏複製粘貼的時候,它只是缺少? – 2014-09-22 16:29:04
因爲你只在循環之外調用'mysql_fetch_array($ raw_results)'...! – deceze 2014-09-22 16:29:42
不,這只是錯過了這裏 – Najd 2014-09-22 16:30:01