0

我不知道该怎么做。从我在这里找到的答案来看,我认为也许可以使用 jquery/ajax。我需要获取变量 $i 的值并在顶部回显它,但它必须通过我的逻辑才能获得该值。这是我的代码:

echo "<div id='records'><h1 align='center'>Today's Transfers (" . $i . ") </h1>
<table cellspacing='0' cellpadding='0'>
<tr>
<th>Customer Name</th><th>Phone Number</th><th>Disposition</th><th>User</th><th>Date Called</th>
</tr>
";

$i=0;
$sql = "SELECT * FROM vicidial_closer_log WHERE DATE(call_date) = DATE(NOW()) ORDER BY call_date DESC";
$result = mysqli_query($link, $sql, MYSQLI_STORE_RESULT);
   while($row = $result->fetch_assoc()){
        $i++;
        $phone_number = $row['phone_number'];
        $lead_id = $row['lead_id'];
        $disposition = $row['status'];
        ...then echo those variable in my columns and rows...
    }
echo "</table> </div>";
echo $i;

也许还有另一种方法来编写我的代码,这样逻辑就在我输出所有内容之前出现?不知道该怎么做,因为我使用的是 mysql 查询。

4

4 回答 4

0

Do your computations first, then display your data.

Horribly mangled example code:

$count = 0;
$output = '';
$res = mysqli_query("SELECT * FROM...");

while( $row = mysql_fetch($res) ) {
  $output .= "<tr><td>..." . $row['somevar'] . "</td></tr>";
  $count++;
}

echo "<h1>Yadda yadda $count</h1>";
echo "<table>";
echo $output
echo "</table>";
于 2013-10-15T19:27:27.847 回答
0

如果 $i 是返回结果的总数,你可以这样做:

echo mysqli_num_rows($result)

...并在页面顶部执行您的查询。

理想情况下,这将全部在模型中,并由控制器在视图中设置。这样,您就可以将演示文稿与功能逻辑分开。

我建议您阅读有关 MVC 的内容:

于 2013-10-15T19:18:23.737 回答
0

当然,你可以移动echo上面的逻辑。但最好的做法是将逻辑与表示分离。您可以创建一个类来处理这个,或者只是另一个文件,这取决于您的需要。

$i=0;
$sql = "SELECT * FROM vicidial_closer_log WHERE DATE(call_date) = DATE(NOW()) ORDER BY call_date DESC";
$result = mysqli_query($link, $sql, MYSQLI_STORE_RESULT);
   while($row = $result->fetch_assoc()){
        $i++;
        $phone_number = $row['phone_number'];
        $lead_id = $row['lead_id'];
        $disposition = $row['status'];


echo "<div id='records'><h1 align='center'>Today's Transfers (" . $i . ") </h1>
<table cellspacing='0' cellpadding='0'>
<tr>
<th>Customer Name</th><th>Phone Number</th><th>Disposition</th><th>User</th><th>Date Called</th>
</tr>";
于 2013-10-15T19:18:51.567 回答
0

您应该从结果集中获取行数并显示其中的行数i,因为它本质上是相同的。

$num_rows = mysql_num_rows($result);

将代码移到 echo 语句上方:

$i=0;
$sql = "SELECT * FROM vicidial_closer_log WHERE DATE(call_date) = DATE(NOW()) ORDER BY call_date DESC";

$result = mysqli_query($link, $sql, MYSQLI_STORE_RESULT);

并添加

$num_rows = mysql_num_rows($result);
echo "<div id='records'><h1 align='center'>Today's Transfers (" . $num_rows . ") </h1>


i并像以前一样使用您的其余代码。如果您不需要它来做其他事情, 可能会考虑删除它。

于 2013-10-15T19:23:26.153 回答