IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   БД выводит все стр. кроме одной... (http://www.imho.ws/showthread.php?t=139107)

kasha 07.04.2009 11:51

БД выводит все стр. кроме одной...
 
Всем привет, подскажите пожалуйста, вот такой SQL query:

PHP код:

<?
$a
="SELECT id,period,kat,kand_kp,eek FROM sortering WHERE kat='$kat' && kand_kp between '$start_date' AND '$till' ";
$result=mysql_query($a);
$myrow=mysql_fetch_array($result);


?>
<table>
    <tr>
        <td>
            <table width='420px' bgcolor='#E1E1E1' class='second'>
            <?
            
while ($myrow=mysql_fetch_array($result))
            {
            
printf("    <tr>
                <td>
                    $myrow[0]
                </td>
                <td>
                    $myrow[1]
                </td>
                <td>
                    $myrow[2]
                </td>
                <td>
                    $myrow[3]
                </td>
                <td>
                    $myrow[4]
                </td>
            </tr>
            "
);}
            
            
?>

kand_kp в БД имеет вид данных DATE вида yyyy-mm-dd, и вот проблема в следующем. Я ввожу на странице две даты с какой по какую выбрать и выбираю категорию, всё это из формы посылается через POST в обработчик result.php и значит этот query дает такой вывод, что если в базе например этому промежутку дат и категории выбранной соответствуют 3 записи, то база на странице выводит только 2 записи, и так со всеми категориями, как бы на 1 стр. меньше дает результат.
Я пробовал непосредственно в phpmyadmin писать этот запрос, и все выдает нормально, сколько должен! Подскажите пожалуйста в чем причина может крыться?:idontnow:

EvroStandart 08.04.2009 14:39

Уверен что запрос такойже? Попробуй без подстановки переменных. Из phpmyadmin запрос в скрипт скопировать и сравнить результаты.

А вообще, почему $myrow=mysql_fetch_array($result); в двух местах прописан? Первая команда вроде как раз проскакивает через одну запись.

Naked 10.04.2009 22:18

Цитата:

Сообщение от EvroStandart (Сообщение 1646526)
Уверен что запрос такойже? Попробуй без подстановки переменных. Из phpmyadmin запрос в скрипт скопировать и сравнить результаты.

нет, не в этом дело, действительно $myrow=mysql_fetch_array($result); - сначала выбирает запись и ничего с ней не делает, затем еще раз выбирает запись - соответственно просто вы всегда теряете первую запись из запроса - удалите первый раз вызов $myrow=mysql_fetch_array($result);

Рудко 13.05.2009 09:12

Не стал регистрировать новую тему, т.к. вопрос наверняка пустяковый. Просто БД только изучаю.
Вопрос такой. Как правильно сделать выборку из двух таблиц? Причем выборка из второй таблицы происходит по критериям из первой. Выборка множественная.
Нужен цикл?

rontommy 13.05.2009 10:11

Цитата:

Сообщение от Рудко (Сообщение 1653596)
Как правильно сделать выборку из двух таблиц? Причем выборка из второй таблицы происходит по критериям из первой. Выборка множественная.
Нужен цикл?

Нужен "LEFT JOIN", типа такого
Код:

SELECT * FROM tab1 LEFT JOIN tab2 ON tab1.id=tab2.id WHERE tab1.id = '123' LIMIT 0, 10


Часовой пояс GMT +4, время: 22:08.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.