我试图编写一个PHP代码/脚本,其中应该执行两个'while'函数。我不知道这是否是正确的方法,但我不知道其他任何事情。
这是完整的代码:
<div class="events">
<div class="eventhead">Log</div>
<?
include_once 'dbcon.php';
$sql2 = "SELECT * FROM event_log ORDER BY id ASC LIMIT 10";
$rs2 = mysql_query($sql2);
while($row2 = mysql_fetch_array($rs2)) {
do {
$id = $row2['id'];
$date = $row2['date'];
$user = $row2['user'];
$action = $row2['action'];
$dept = $row2['dept'];
$desc = $row2['desc'];
if ($dept == "Client") {
$dsql = mysql_query("SELECT * AS title FROM clients WHERE cl_name LIKE '%$desc%'");
} else if ($dept == "Device") {
$dsql = mysql_query("SELECT * AS title FROM devices WHERE dev_id LIKE '%$desc%'");
};
$query = mysql_query($dsql) or die (mysql_error());
while($dq = mysql_fetch_array($query)) {
do {
$did = $dq['id'];
$title = $dq['title'];
?>
<p>• <?= $date ?> | User <?= $user ?> <?= $action ?> <?=$dept ?> - <?= $desc ?>.</p><br />
<p><?= $title ?></p>
<? } while($row2 = mysql_fetch_array($rs2)); ?>
<? } while($dq = mysql_fetch_array($query)); ?>
<? } ?>
<? } ?>
</div>
该行
<p>• <?= $date ?> | User <?= $user ?> <?= $action ?> <?=$dept ?> - <?= $desc ?>.</p><br />
如果我排除这部分代码,则有效:
if ($dept == "Client") {
$dsql = mysql_query("SELECT * AS title FROM clients WHERE cl_name LIKE '%$desc%'");
} else if ($dept == "Device") {
$dsql = mysql_query("SELECT * AS title FROM devices WHERE dev_id LIKE '%$desc%'");
};
$query = mysql_query($dsql) or die (mysql_error());
while($dq = mysql_fetch_array($query)) {
do {
$did = $dq['id'];
$title = $dq['title'];
我想要包含该部分的主要原因是结果应该是一个超链接,它指的是在那里显示名字的客户的ID!
让我这样解释一下。如果此脚本在浏览器中执行而没有脚本的错误部分,则返回以下内容:
►2013-08-2918:19:19 |用户演示更改了客户端 - Myclient。
应该检索 myclient 的数据库ID,并且应该创建超链接“client.php?id = ...”。
所以,当运行第二个while函数时出现问题,我假设...但是如果客户端创建超链接,我怎么能查询另一个DB表来获取ID和Name?
提前谢谢!!
答案 0 :(得分:0)
你有一个额外的;
if ($dept == "Client") {
$dsql = mysql_query("SELECT * AS title FROM clients WHERE cl_name LIKE '%$desc%'");
} else if ($dept == "Device") {
$dsql = mysql_query("SELECT * AS title FROM devices WHERE dev_id LIKE '%$desc%'");
};
最后;不应该在那里
您需要在以下一行中添加额外内容
<? } while($dq = mysql_fetch_array($query)); ?>
应该是
<? }} while($dq = mysql_fetch_array($query)); ?>
然后拿最后一个
<? } ?>
排队。
我没有深入研究逻辑,虽然看起来使用存储过程进行内连接会更容易,但至少这会让你的语法正确排列。
另外,你的php标记样式
<? ?>
最后每行的不是必需的,只需使用
<?php
在第一行和
?>
在最后一个会让它更容易阅读。