Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод определенного количества строк
 
 автор: Virtus-pro   (04.09.2009 в 15:09)   письмо автору
 
 

Здравствуйте, проблема такова, что я не могу вывести нужное колличество мне строк из базы.
Изначальная строчка такая

$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 то выводятся все доступные по запросу

  Ответить  
 
 автор: Sergeich   (04.09.2009 в 15:40)   письмо автору
 
   для: Virtus-pro   (04.09.2009 в 15:09)
 

А можно увидеть саму структуру базы и как туда заносятся данные?

  Ответить  
 
 автор: Virtus-pro   (04.09.2009 в 15:51)   письмо автору
 
   для: Sergeich   (04.09.2009 в 15:40)
 

а зачем как? мне нужен вывод строк, а не как добавить

  Ответить  
 
 автор: root   (04.09.2009 в 15:40)   письмо автору
 
   для: Virtus-pro   (04.09.2009 в 15:09)
 

как Вы их выводите?

  Ответить  
 
 автор: Virtus-pro   (04.09.2009 в 15:47)   письмо автору
 
   для: 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&amp;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>"
;


  Ответить  
 
 автор: Trianon   (04.09.2009 в 15:49)   письмо автору
 
   для: Virtus-pro   (04.09.2009 в 15:47)
 

Вот Ваши пропажи:
if($r['server_new']==1)continue; // Проверяет сервер на проверки админом или нет
if($r['server_status']==0)continue; // Проверяет сервер включен или нет 

  Ответить  
 
 автор: Virtus-pro   (04.09.2009 в 15:56)   письмо автору
 
   для: 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; // Проверяет сервер включен или нет  


соблюдаются

  Ответить  
 
 автор: root   (04.09.2009 в 16:00)   письмо автору
 
   для: Virtus-pro   (04.09.2009 в 15:56)
 

а Вы уберите эти две строчки с continue и пересчитайте.
Кроме того, непонятно зачем на php делать то, что можно сделать в MySQL

  Ответить  
 
 автор: Virtus-pro   (04.09.2009 в 16:08)   письмо автору
 
   для: root   (04.09.2009 в 16:00)
 

Да, вывелось все. А как будет вот эти 2 условия на SQL?
Покажи на данном примере пожалуйста
$servers = dbquery("SELECT * FROM amx_servers order by votes desc limit 20");

  Ответить  
 
 автор: root   (04.09.2009 в 16:21)   письмо автору
 
   для: Virtus-pro   (04.09.2009 в 16:08)
 

Вы хоть поняли почему вывелось всё?
Что continue делает точно знаете?

WHERE server_new !=1 AND server_status != 0

  Ответить  
 
 автор: Virtus-pro   (04.09.2009 в 17:08)   письмо автору
 
   для: root   (04.09.2009 в 16:21)
 

Спасибо, contine знаю что такое, немедленно завершает текущую итерацию цикла и переходит к новой.

  Ответить  
 
 автор: root   (04.09.2009 в 15:51)   письмо автору
 
   для: Virtus-pro   (04.09.2009 в 15:47)
 

а чего Вы ожидали если у вас continue?

  Ответить  
 
 автор: Trianon   (04.09.2009 в 15:44)   письмо автору
 
   для: Virtus-pro   (04.09.2009 в 15:09)
 

Показывайте код, выводящий результат.
И дамп не помешает.

  Ответить  
 
 автор: Virtus-pro   (04.09.2009 в 16:17)   письмо автору
 
   для: Virtus-pro   (04.09.2009 в 15:09)
 

Да, вывелось все. А как будет вот эти 2 условия на SQL?
Покажи на данном примере пожалуйста
$servers = dbquery("SELECT * FROM amx_servers order by votes desc limit 20");

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования