на самом деле то, что я пытаюсь сделать, это хранить входящие запросы в базе данных, а затем отображать на веб-странице, ограничивающей определенное число, например, 10 с заголовком "Недавние поиски". если вы LIMIT 10 в запросе базы данных, то он останавливается после 10. поэтому мысль отключит цикл, но в обоих случаях он остановится на 10. так что после этого, что когда-либо выполняется, он не будет обновлять его. есть ли кто-нибудь, кто может мне помочь в этой ситуации?
$result = mysql_query("SELECT * FROM query ORDER BY regtime DESC");
while($row = mysql_fetch_array($result))
{
echo "<img src='bullet.gif' align='absmiddle' class='col1ab'><a class='col1ab' href=".$row['web']." >www.".$row['web']."</a><br>";
}
$count = 0;
$result = mysql_query("SELECT * FROM query ORDER BY regtime DESC");
while($count < 10 && $row = mysql_fetch_array($result))
{
$count++;
echo "<img src='bullet.gif' align='absmiddle' class='col1ab'><a class='col1ab' href=".$row['web']." >www.".$row['web']."</a><br>";
}
Ограничить какой массив? Я не вижу массив в вашем коде. Если вы хотите ограничить количество эхо-сигналов, которые вы делаете, вы можете подсчитать переменную, а затем сломаться, как только вы достигнете 10, например:
$result = mysql_query("SELECT * FROM query ORDER BY regtime DESC");
while($row = mysql_fetch_array($result))
{
if ($i++ >= 10) break;
echo "<img src='bullet.gif' align='absmiddle' class='col1ab'><a class='col1ab' href=".$row['web']." >www.".$row['web']."</a><br>";
}
Почему никто не придумал:
SELECT * FROM query ORDER BY regtime DESC LIMIT 0,6
Не запрошенный ответ, но...
Не хранить запросы. Сделайте ваши данные эффективными для поиска. (Дружественная схема поиска, индексирование, разбиение на разделы, дополнительное оборудование)
причины: данные запроса больше не являются реальным временем, если они считываются из таблицы запросов для дублирования данных в таблице запросов требуется больше места для заполнения таблицы запросов требуется больше io.
используйте 2 запроса или оценку (насколько важна точность? (поскольку она хранится, число, скорее всего, неточно))
"SELECT * FROM query ORDER BY regtime DESC" с LIMIT (10) "SELECT count (*) FROM query..."
Попробуйте следующее:
$result = mysql_query("SELECT * FROM query ORDER BY regtime DESC");
$counter = 0;
while($row = mysql_fetch_array($result))
{
echo "<img src='bullet.gif' align='absmiddle' class='col1ab'><a class='col1ab' href=".$row['web']." >www.".$row['web']."</a><br>";
if (++$counter === 10) break;
}
Цикл увеличивает значение переменной $counter
, и когда оно становится равным 10, ключевое слово break
выходит из цикла while
, предоставляя вам всего 10 итераций.
if ($counter === 10) break;
и заменить $counter++;
с if (++$counter === 10) break;
, Это должно сохранить дополнительное чтение, а также.
LIMIT 10
делает в заявлении SQL вwhile
петли вместо этого.