你好我的数据库查询很慢。在html表中列出4000行的5分钟...请帮助。
**$query = "SELECT * FROM tblRazduzeniUgovori WHERE Status='razduzen'";**
if ($result = mysqli_query($con, $query)) {
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td><input type='checkbox' name='brojUgovora[]' value='" . $row['Broj'] . "'/></td>";
谢谢你。
答案 0 :(得分:0)
首先:在数据库表中添加状态作为索引,这将加快脚本的选择部分。
第二:连接字符串,而不是每次都发出一个echo语句,echo * 4000可能会很慢。
$query = "SELECT * FROM tblRazduzeniUgovori WHERE Status='razduzen'";
$output = '';
if ($result = mysqli_query($con, $query)) {
while($row = mysqli_fetch_array($result))
{
$output .= "<tr>";
$output .= "<td><input type='checkbox' name='brojUgovora[]' value='" . $row['Broj'] . "'/></td>";
}
}
echo $output;
答案 1 :(得分:0)
这可能不是你想要的,但我建议不要显示这么多行,你可以限制:)
<?php
$displayed_items = 100; // items displayed per page
$start = isset($_REQUEST['start']) ? $_REQUEST['start'] : 0;
$end = $start + $displayed_items;
$query = "SELECT * FROM tblRazduzeniUgovori
WHERE Status='razduzen' LIMIT {$start}, {$end}";
?>
<table>
<?php
if ($result = mysqli_query($con, $query)) {
while($row = mysqli_fetch_array($result)): ?>
<tr>
<?php foreach ($a as $row):?>
<td>
<?php echo $a ?>
</td>
<?php endforeach; ?>
</tr>
<?php endwhile; ?>
</table>
<form action='#' method='get'>
<input type='hidden' name='start' value='<?php echo $start + $displayed_items ?>' />
<input type='submit' value='next page' />
</form>
就像你可以看到结果只是点击下一步,不要忘记将ORDER BY添加到查询中