|
|
|
| Здравствуйте, проблема такова, что я не могу вывести нужное колличество мне строк из базы.
Изначальная строчка такая
$servers = dbquery("SELECT * FROM ".DB_SERVERS." order by votes desc limit ".$settings['num_servers']);
|
скажем переведем в понятный язык
$servers = dbquery("SELECT * FROM amx_servers order by votes desc limit 20");
function dbquery($query) {
$result = @mysql_query($query);
if (!$result) {
echo mysql_error();
return false;
} else {
return $result;
}
}
|
стоит лимит 20, то выводится только 14 серверов, Ставлю 10, выводится 6 , если больше ставлю где то 40 то выводятся все доступные по запросу | |
|
|
|
|
|
|
|
для: Virtus-pro
(04.09.2009 в 15:09)
| | А можно увидеть саму структуру базы и как туда заносятся данные? | |
|
|
|
|
|
|
|
для: Sergeich
(04.09.2009 в 15:40)
| | а зачем как? мне нужен вывод строк, а не как добавить | |
|
|
|
|
|
|
|
для: Virtus-pro
(04.09.2009 в 15:09)
| | как Вы их выводите? | |
|
|
|
|
|
|
|
для: root
(04.09.2009 в 15:40)
| | Посмотреть можно тут http://virtus-pro.fvds.ru/ просто там хостинг для тестов
Структура базы
sitename varchar(200) NOT NULL default '',
siteurl varchar(200) NOT NULL default '',
siteemail varchar(100) NOT NULL default '',
siteusername varchar(30) NOT NULL default '',
description text NOT NULL,
keywords text NOT NULL,
locale varchar(20) NOT NULL default 'Russian',
enable_registration tinyint(1) unsigned NOT NULL default '1',
license text NOT NULL,
version varchar(10) NOT NULL default '',
AMX text NOT NULL,
proverka int(10) unsigned NOT NULL default '0',
maintenance tinyint(1) unsigned NOT NULL default '0',
maintenance_message text NOT NULL,
num_servers tinyint(1) unsigned NOT NULL default '20',
register_MG1 varchar(300) NOT NULL,
register_MG2 varchar(300) NOT NULL
|
Вот кусок кода из вывода
if(!$serv_num==0){
echo "<th>#</th><th width=350><center>Имя сервера</center></th><th width=150><center>Адрес</center></th><th width=100><center>Карта</center></th><th width=70><center>Игроки</center></th><th width=70><center>Протокол</center></th><th><center>Страна</center></th><th width=70><center>Голоса</center></th></tr>";
$i=0;
while($r=dbarray_fetch($servers)) {
if($r['server_new']==1)continue; // Проверяет сервер на проверки админом или нет
if($r['server_status']==0)continue; // Проверяет сервер включен или нет
$net_vote = $r['votes'];
$i++;
echo"
<tr>
<td>$i</td>
<td><a href='?id=info&serv=$r[server_id]' id='link'>$r[server_name]</a> </td>
<td align='center'>$r[server_ip]</td>
<td align='center'>$r[server_map]</td>
<td align='center'>$r[server_players]/$r[server_maxplayers]</td>
<td align='center'>$r[server_protokol]</td>
<td align='center'><img src='images/flags/$r[server_location].png' height='12' width='16' alt='$r[server_location]' title='$r[server_location]''></td>
<td align='center'><span class='votes_count' id='votes_count$r[server_id]' >$net_vote</span>";
?>
<span class='vote_buttons' id='vote_buttons<?php echo $r['server_id']; ?>'>
<a href='javascript:;' class='vote' id='<?php echo $r['server_id']; ?>'></a>
</span>
<?
echo "
</td>
</tr></tr>";
|
| |
|
|
|
|
|
|
|
для: Virtus-pro
(04.09.2009 в 15:47)
| | Вот Ваши пропажи:
if($r['server_new']==1)continue; // Проверяет сервер на проверки админом или нет
if($r['server_status']==0)continue; // Проверяет сервер включен или нет
|
| |
|
|
|
|
|
|
|
для: Trianon
(04.09.2009 в 15:49)
| | Код весь я писал лично сам,
смотрите
если строка такова
$servers = dbquery("SELECT * FROM amx_servers order by votes desc limit 10");
|
выведется 6 серверов и в коле присутствуют условия эти
if($r['server_new']==1)continue; // Проверяет сервер на проверки админом или нет
if($r['server_status']==0)continue; // Проверяет сервер включен или нет
|
не меняя ничего, просто берем и делаем вот так
$servers = dbquery("SELECT * FROM amx_servers order by votes desc limit 20");
|
Уже выводятся 14
Условия
if($r['server_new']==1)continue; // Проверяет сервер на проверки админом или нет
if($r['server_status']==0)continue; // Проверяет сервер включен или нет
|
соблюдаются | |
|
|
|
|
|
|
|
для: Virtus-pro
(04.09.2009 в 15:56)
| | а Вы уберите эти две строчки с continue и пересчитайте.
Кроме того, непонятно зачем на php делать то, что можно сделать в MySQL | |
|
|
|
|
|
|
|
для: root
(04.09.2009 в 16:00)
| | Да, вывелось все. А как будет вот эти 2 условия на SQL?
Покажи на данном примере пожалуйста
$servers = dbquery("SELECT * FROM amx_servers order by votes desc limit 20");
|
| |
|
|
|
|
|
|
|
для: Virtus-pro
(04.09.2009 в 16:08)
| | Вы хоть поняли почему вывелось всё?
Что continue делает точно знаете?
WHERE server_new !=1 AND server_status != 0 | |
|
|
|
|
|
|
|
для: root
(04.09.2009 в 16:21)
| | Спасибо, contine знаю что такое, немедленно завершает текущую итерацию цикла и переходит к новой. | |
|
|
|
|
|
|
|
для: Virtus-pro
(04.09.2009 в 15:47)
| | а чего Вы ожидали если у вас continue? | |
|
|
|
|
|
|
|
для: Virtus-pro
(04.09.2009 в 15:09)
| | Показывайте код, выводящий результат.
И дамп не помешает. | |
|
|
|
|
|
|
|
для: Virtus-pro
(04.09.2009 в 15:09)
| | Да, вывелось все. А как будет вот эти 2 условия на SQL?
Покажи на данном примере пожалуйста
$servers = dbquery("SELECT * FROM amx_servers order by votes desc limit 20");
|
| |
|
|
|