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

Форум MySQL

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

 

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

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

тема: Пропускает 1ю запись при выводе
 
 автор: Michail1982   (25.12.2006 в 10:37)   письмо автору
 
 

При выводе информации почему-то постоянно пропускается(не отображается) первая запись
подскажите плз, где ошибка и как её исправить

<?php
    
//проверка данных
$S[1] = preg_replace("|[^"."0123456789%_ ]|"""$S[1]);
$S[2] = preg_replace("|[^"."АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЄЮЯЇІабвгдежзийклмнопрстуфхцчшщьєюяії%_' ]|"""$S[2]);
$S[3] = preg_replace("|[^"."АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЄЮЯЇІабвгдежзийклмнопрстуфхцчшщьєюяії%_' ]|"""$S[3]);
$S[4] = preg_replace("|[^"."АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЄЮЯЇІабвгдежзийклмнопрстуфхцчшщьєюяії%_' ]|"""$S[4]);
    
// Создаём запрос
$arr[1]="T";
$arr[2]="U";
$arr[3]="V";
$arr[4]="W";
$val[1]=" = '";
$val[2]=" like '";
$val[3]=" and ";
$val[4]="'";
$quer='';
for (
$i=1$i<=4$i++)
   {
   
$sub_S[$i] = substr_count($S[$i],"%") + substr_count($S[$i],"_");
   
$num==0;
       if (
$C[$i]=='ON')
          {if (
$num==0)
             {
$num[$i]=1;
               if (
$sub_S[$i]==0)
                 {
$q[$i]=$arr[$i].$val[1].$S[$i].$val[4];}
                     else {
$q[$i]=$arr[$i].$val[2].$S[$i].$val[4];};
             }
             else {if (
$sub_S[$i]==0)
                               {
$q[$i]=$val[3].$arr[$i].$val[1].$S[$i].$val[4];}
                          else {
$q[$i]=$val[3].$arr[$i].$val[2].$S[$i].$val[4];};
             };
          };
    
$quer=$quer.$q[$i];
   };
if (
$quer == null)
{echo 
"<p align='Center'><font size=5>Вы ничего не ввели</font></p>\n";}
else {
    
//Данные для mysql сервера
include "config.php";
if (
$flag==0)
{
$size "SELECT * FROM $dbtable where $quer;";
    
//Считаем количество строк
$res mysql_query($size$link);
$all mysql_num_rows($res);};
    
//Данные
$shag 25;
$start = ($page*$shag)-($shag-1);
    
//Делаем sql запрос
$query "SELECT * FROM $dbtable where $quer Order by U, S LIMIT $start$shag;";
    
//Ставим кодировку, в которой хранятся данные в MySQL
mysql_query("SET CHARSET cp1251");
    
// Запрашиваем
$result mysql_query($query$link);
    
//Проверяем, есть ли результаты
if (mysql_num_rows($result) == -1)
{echo 
"<font size=5>Поиск не дал результатов</font>\n";}
else {
    
//Создаём массив с названиями районов
$ragon[] = 'Балаклійський';
$ragon[] = 'Барвінківський';
$ragon[] = 'Блізнюківський';
$ragon[] = 'Богодухівський';
$ragon[] = 'Борівський';
$ragon[] = 'Валківський';
$ragon[] = 'Великобурлуцький';
$ragon[] = 'Вовчанський';
$ragon[] = 'Зміївський';
$ragon[] = 'Двуречанський';
$ragon[] = 'Дергачівський';
$ragon[] = 'Зачепілівський';
$ragon[] = 'Золочівський';
$ragon[] = 'Ізюмський';
$ragon[] = 'Кегічівський';
$ragon[] = 'Красноградський';
$ragon[] = 'Краснокутський';
$ragon[] = 'Куп"янський';
$ragon[] = 'Лозівський';
$ragon[] = 'Нововодолазький';
$ragon[] = 'Первомайський';
$ragon[] = 'Сахновщінський';
$ragon[] = 'Чугуївський';
$ragon[] = 'Харківський';
$ragon[] = 'Шевченківський';
$ragon[] = 'Дзержинський';
$ragon[] = 'Київський';
$ragon[] = 'Комінтерновський';
$ragon[] = 'Ленінський';
$ragon[] = 'Московський';
$ragon[] = 'Жовтневий';
$ragon[] = 'Орджонікідзевський';
$ragon[] = 'Червонозаводський';
$ragon[] = 'Фрунзенський';
$ragon[] = 'Печенізький';
$ragon[] = 'Коломацький';
echo 
"<font size=5>Результаты поиска</font>\n";
    
//Рисуем таблицу
echo "Всего найдено "$all;
echo 
"<table border=1>\n";
echo 
"<tr><td>Код</td><td>Фамилия</td><td>Имя</td><td>Отчество</td><td>DA</td><td>DB</td><td>Район</td><td>Посмотреть</td></tr>\n";
while(
$rows mysql_fetch_array($result))
{
$qwe=$rows ["UID"];
$url="View.php?id=$qwe";
echo 
"<tr><td>"$rows ["T"], "</td>\n";
echo 
"<td>"$rows ["U"], "</td>\n";
echo 
"<td>"$rows ["V"], "</td>\n";
echo 
"<td>"$rows ["W"], "</td>\n";
echo 
"<td>"$rows ["S"], "</td>\n";
echo 
"<td>"$rows ["BA"], "</td>\n";
echo 
"<td>"$ragon[$rows ["P"]-1], "</td>\n";
echo 
"<td>""<a href=$url>Анкета</a>""</td></tr>\n";}
echo 
"</table>\n";
    
//Рисуем кнопки
$nawP $page 1;
$nawM $page 1;
$maxnaw intval(($all/25)+1);
if (
$maxnaw != ) {
echo 
"Страница "$page" из "$maxnaw;
echo 
"<form action='List.php' method='post'>
<input type='hidden' name='S[1]' value=
$S[1]>
<input type='hidden' name='S[2]' value=
$S[2]>
<input type='hidden' name='S[3]' value=
$S[3]>
<input type='hidden' name='S[4]' value=
$S[4]>
<input type='hidden' name='C[1]' value=
$C[1]>
<input type='hidden' name='C[2]' value=
$C[2]>
<input type='hidden' name='C[3]' value=
$C[3]>
<input type='hidden' name='C[4]' value=
$C[4]>
<input type='hidden' name='flag' value=1>
<input type='hidden' name='res' value=
$res>
<input type='hidden' name='all' value=
$all>
<select size='1' name='page'>"
;
for(
$n=1$n <= $maxnaw$n++)
echo 
"<option>".$n."</option>";
echo 
"<input type='submit' name='submit' value='Перейти'></p></form>";};};
    
// Закрываем соединение
mysql_close($link);}
?>

   
 
 автор: cheops   (25.12.2006 в 11:31)   письмо автору
 
   для: Michail1982   (25.12.2006 в 10:37)
 

$page откуда берётся и какое значение принимает?

   
 
 автор: MIchail1982   (25.12.2006 в 12:02)   письмо автору
 
   для: cheops   (25.12.2006 в 11:31)
 

Вот форма $page - целые положительные числа (с формы передаётся 1)


<?php /*include("Protect/protection.php"); /*include("test.php");*/?>
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
<meta http-equiv="Content-Language" content="ru">
</head>
<body>
<p align="Center"><form action="List.php" method="post">
    <table border="1" id="table1">
        <tr>
            <td><span lang="ru">Код ЗО</span></td>
            <td>
            <input type="checkbox" name="C1" value="ON" tabindex="1"></td>
            <td><input type="text" name="S1" tabindex="2" size="30"></textarea></td>
        </tr>
        <tr>
            <td><span lang="ru">Фамилия</span></td>
            <td>
            <input type="checkbox" name="C2" value="ON" tabindex="3"></td>
            <td><input type="text" name="S2" tabindex="4" size="30"></textarea></td>
        </tr>
        <tr>
            <td><span lang="ru">Имя</span></td>
            <td>
            <input type="checkbox" name="C3" value="ON" tabindex="5"></td>
            <td><input type="text" name="S3" tabindex="6" size="30"></textarea></td>
        </tr>
        <tr>
            <td><span lang="ru">Отчество</span></td>
            <td>
            <input type="checkbox" name="C4" value="ON" tabindex="7"></td>
            <td><input type="text" name="S4" tabindex="8" size="30"></textarea></td>
        </tr>
    </table>
    <p align="center">
<input type="hidden" name="page" value="1">
<input type="hidden" name="flag" value="0">
<input type="submit" name="submit" value="Искать" tabindex="9">
<input type="reset" name="reset" value="Очистить" tabindex="10">
</p>
</form>
</p>
Внимание !!!<br>Символ "%" означает любое количество символов ( включая 0 )<br>, а символ "_" - один символ
</body>
</html>

   
 
 автор: cheops   (25.12.2006 в 12:25)   письмо автору
 
   для: MIchail1982   (25.12.2006 в 12:02)
 

Попробуйте передать 0 - какая реакция скрипта?

   
 
 автор: MIchail1982   (25.12.2006 в 13:04)   письмо автору
 
   для: cheops   (25.12.2006 в 12:25)
 

echo пишет, что запись найдена (или несколько)
но данных не выводит вообще
при переходе на страницу 1 (если результатов много) данные отображаются без первой записи
:0(

   
 
 автор: Michail1982   (25.12.2006 в 21:04)   письмо автору
 
   для: MIchail1982   (25.12.2006 в 13:04)
 

А если так, то всё работает нормально

<?php
    
//проверка данных
$S[1] = preg_replace("|[^"."0123456789%_ ]|"""$S[1]);
$S[2] = preg_replace("|[^"."АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЄЮЯЇІабвгдежзийклмнопрстуфхцчшщьєюяії%_' ]|"""$S[2]);
$S[3] = preg_replace("|[^"."АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЄЮЯЇІабвгдежзийклмнопрстуфхцчшщьєюяії%_' ]|"""$S[3]);
$S[4] = preg_replace("|[^"."АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЄЮЯЇІабвгдежзийклмнопрстуфхцчшщьєюяії%_' ]|"""$S[4]);
    
// Создаём запрос
$arr[1]="T";
$arr[2]="U";
$arr[3]="V";
$arr[4]="W";
$val[1]=" = '";
$val[2]=" like '";
$val[3]=" and ";
$val[4]="'";
$quer='';
for (
$i=1$i<=4$i++)
   {
   
$sub_S[$i] = substr_count($S[$i],"%") + substr_count($S[$i],"_");
   
$num==0;
       if (
$C[$i]=='ON')
          {if (
$num==0)
             {
$num[$i]=1;
               if (
$sub_S[$i]==0)
                 {
$q[$i]=$arr[$i].$val[1].$S[$i].$val[4];}
                     else {
$q[$i]=$arr[$i].$val[2].$S[$i].$val[4];};
             }
             else {if (
$sub_S[$i]==0)
                               {
$q[$i]=$val[3].$arr[$i].$val[1].$S[$i].$val[4];}
                          else {
$q[$i]=$val[3].$arr[$i].$val[2].$S[$i].$val[4];};
             };
          };
    
$quer=$quer.$q[$i];
   };
if (
$quer == null)
{echo 
"<p align='Center'><font size=5>Вы ничего не ввели</font></p>\n";}
else {
    
//Данные для mysql сервера
include "config.php";
/*if ($flag==0)
{$size = "SELECT * FROM $dbtable where $quer;";
    //Считаем количество строк
$res = mysql_query($size, $link);
$all = mysql_num_rows($res);};
    //Данные
$shag = 25;
$start = ($page*$shag)-($shag-1);
*/
    //Делаем sql запрос
//$query = "SELECT * FROM $dbtable where $quer Order by U, S LIMIT $start, $shag;";
$query "SELECT * FROM $dbtable where $quer Order by U, S";
    
//Ставим кодировку, в которой хранятся данные в MySQL
mysql_query("SET CHARSET cp1251");
    
// Запрашиваем
$result mysql_query($query$link);
    
//Проверяем, есть ли результаты
if (mysql_num_rows($result) == -1)
{echo 
"<font size=5>Поиск не дал результатов</font>\n";}
else {
    
//Создаём массив с названиями районов
$ragon[] = 'Балаклійський';
$ragon[] = 'Барвінківський';
$ragon[] = 'Блізнюківський';
$ragon[] = 'Богодухівський';
$ragon[] = 'Борівський';
$ragon[] = 'Валківський';
$ragon[] = 'Великобурлуцький';
$ragon[] = 'Вовчанський';
$ragon[] = 'Зміївський';
$ragon[] = 'Двуречанський';
$ragon[] = 'Дергачівський';
$ragon[] = 'Зачепілівський';
$ragon[] = 'Золочівський';
$ragon[] = 'Ізюмський';
$ragon[] = 'Кегічівський';
$ragon[] = 'Красноградський';
$ragon[] = 'Краснокутський';
$ragon[] = 'Куп"янський';
$ragon[] = 'Лозівський';
$ragon[] = 'Нововодолазький';
$ragon[] = 'Первомайський';
$ragon[] = 'Сахновщінський';
$ragon[] = 'Чугуївський';
$ragon[] = 'Харківський';
$ragon[] = 'Шевченківський';
$ragon[] = 'Дзержинський';
$ragon[] = 'Київський';
$ragon[] = 'Комінтерновський';
$ragon[] = 'Ленінський';
$ragon[] = 'Московський';
$ragon[] = 'Жовтневий';
$ragon[] = 'Орджонікідзевський';
$ragon[] = 'Червонозаводський';
$ragon[] = 'Фрунзенський';
$ragon[] = 'Печенізький';
$ragon[] = 'Коломацький';
echo 
"<font size=5>Результаты поиска</font>\n";
    
//Рисуем таблицу
//echo "Всего найдено ", $all;
echo "<table border=1>\n";
echo 
"<tr><td>Код</td><td>Фамилия</td><td>Имя</td><td>Отчество</td><td>DA</td><td>DB</td><td>Район</td><td>Посмотреть</td></tr>\n";
while(
$rows mysql_fetch_array($result))
{
$qwe=$rows ["UID"];
$url="View.php?id=$qwe";
echo 
"<tr><td>"$rows ["T"], "</td>\n";
echo 
"<td>"$rows ["U"], "</td>\n";
echo 
"<td>"$rows ["V"], "</td>\n";
echo 
"<td>"$rows ["W"], "</td>\n";
echo 
"<td>"$rows ["S"], "</td>\n";
echo 
"<td>"$rows ["BA"], "</td>\n";
echo 
"<td>"$ragon[$rows ["P"]-1], "</td>\n";
echo 
"<td>""<a href=$url>Анкета</a>""</td></tr>\n";}
echo 
"</table>\n";
/*    //Рисуем кнопки
$nawP = $page + 1;
$nawM = $page - 1;
$maxnaw = intval(($all/25)+1);
if ($maxnaw != 1 ) {
echo "Страница ", $page, " из ", $maxnaw;
echo "<form action='List.php' method='post'>
<input type='hidden' name='S[1]' value=$S[1]>
<input type='hidden' name='S[2]' value=$S[2]>
<input type='hidden' name='S[3]' value=$S[3]>
<input type='hidden' name='S[4]' value=$S[4]>
<input type='hidden' name='C[1]' value=$C[1]>
<input type='hidden' name='C[2]' value=$C[2]>
<input type='hidden' name='C[3]' value=$C[3]>
<input type='hidden' name='C[4]' value=$C[4]>
<input type='hidden' name='flag' value=1>
<input type='hidden' name='res' value=$res>
<input type='hidden' name='all' value=$all>
<select size='1' name='page'>";
for($n=1; $n <= $maxnaw; $n++)
echo "<option>".$n."</option>";
echo "<input type='submit' name='submit' value='Перейти'></p></form>";};*/
};
    
// Закрываем соединение
mysql_close($link);}
?>

   
 
 автор: MIchail1982   (26.12.2006 в 13:38)   письмо автору
 
   для: Michail1982   (25.12.2006 в 21:04)
 

Разобрался :0))
надо было
$start = ($page*$shag)-($shag);
вместо
$start = ($page*$shag)-($shag-1);

   
Rambler's Top100
вверх

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