我想打印所有成员报告(抱怨),以这种形式的管理: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