Neolink

Статус
  • Активный

Последние сообщения Neolink

  • F.A.Q.Постраничный вывод информации из БД (пагинатор) • 17 февраля 2008 г. 21:10

    Уникальные ответы. Спасибо. Для disk отвечаю использую смотри внимательней, к нему ни каких притензий нет.Знаю чем get отличаеться от post и что? Потому вас и спрашиваю, что сделать что бы работало.
    Уникальные ответы. Спасибо. Для disk отвечаю использую смотри внимательней, к нему ни каких притензий нет.
    Знаю чем get отличаеться от post и что? Потому вас и спрашиваю, что сделать что бы работало.
  • F.A.Q.Постраничный вывод информации из БД (пагинатор) • 17 февраля 2008 г. 18:07

    Да, тока не в этом дело.Проблема собственна следующая если кто заметил.При переходе на вторую страницу данные введенные в форму не передаються на эту самую страницу. Как вариант вижу обозначить эти переменные как глобальные. Но как понимаю это не бзопасно. Так кто-нибудь поможет?
    Да, тока не в этом дело.
    Проблема собственна следующая если кто заметил.
    При переходе на вторую страницу данные введенные в форму не передаються на эту самую страницу. Как вариант вижу обозначить эти переменные как глобальные. Но как понимаю это не бзопасно. Так кто-нибудь поможет?
  • F.A.Q.Постраничный вывод информации из БД (пагинатор) • 17 февраля 2008 г. 17:22

    ОККод правда не маленький… сразу всем спасибо кто дочитает его до конца.<form action="output.php" method="post"><input type="hidden" name="seenform" value="y"><table border="1p" summary=""> <tr> &...
    ОК
    Код правда не маленький… сразу всем спасибо кто дочитает его до конца.

    <form action="output.php" method="post">
    <input type="hidden" name="seenform" value="y">
    <table border="1p" summary="">
    <tr>
    <td>Колличество комнат</td>
    <td>
    <select name="number" size="5">
    <option value="1" selected>Одна.
    </option>
    </select>
    </td>
    </tr>
    <tr>
    <td>Стоимость</td>
    <td>
    <table>
    <tr>
    <td>
    <input name="variant" value="mr" type="radio" checked />Менее<br />
    <input name="variant" value="br" type="radio" />Более
    </td>
    <td>
    <select name="cost" size="7">
    <option value="" selected>Не имеет значения
    </option>
    </select>
    </td>
    </tr>
    </table>
    </td>
    </tr>
    <tr>
    <td>Тип</td>
    <td>
    <select name="type" size="4">
    <option value="x" selected>Не имеет значения
    </option>
    </select>
    </td>
    </tr>
    <tr>
    <td>Этаж</td>
    <td>
    <select name="etaj">
    <option value="x" selected>Не имеет значения
    </option>
    </select>
    </td>
    </tr>
    <tr>
    <td>Этажность
    </td>
    <td>
    <select name="etajnost" size="1" maxlength="5">
    <option value="x" selected>Не имеет значения
    </option>
    </td>
    </tr>
    <tr>
    <td>Улица</td>
    <td>
    <select name="street">
    <option value="x" selected>Не имеет значения
    </option>
    </select>
    </td>
    <tr>
    <tr>
    <td>
    </td>
    <td>
    <input type="submit" value="Искать." />
    </td>
    </tr>
    </table>
    </form>


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

    Ну а вот файл экшена

    <?php
    $cost = $_POST['cost'];
    $number = $_POST['number'];
    $etaj = $_POST['etaj'];
    $etajnost = $_POST['etajnost'];
    $type = $_POST['type'];
    $street = $_POST['street'];


    if($street == "x"):
    $street1 = "";
    else:
    $street1 = " AND street = '$street'";
    endif;

    if($type == "x"):
    $type1 = "";
    else:
    $type1 = " AND type = '$type'";
    endif;

    if($etaj == "x"):
    $etaj1 = "";
    else:
    $etaj1 = " AND etaj = $etaj";
    endif;

    if($etajnost == "x"):
    $etajnost1 = "";
    else:
    $etajnost1 = " AND etajnost = $etajnost";
    endif;

    if($variant == "mr"):
    $op = "<";
    else:
    $op = ">";
    endif;

    if(isset($cost)):
    $cost1 = "";
    else:
    $cost1 = " AND cost = $cost";
    endif;

    /*Данные для листалки*/
    $nums = 10;
    if (isset($_GET['page']))
    {$page = intval($_GET['page']);}
    else
    {$page = 1;}
    $neighbours = 6;
    /*Конец данных для листалки*/

    @mysql_connect("localhost","root") or die ("I'm can't connect to MySQL");
    @mysql_select_db(stady) or die ("I'm can't connect to DB");
    $query = "SELECT COUNT(*) AS `counter` FROM `apartament`";
    $sql = mysql_query($query) or die(mysql_error());
    $row = mysql_fetch_assoc($sql);
    $elements = $row['counter'];
    $pages = ceil($elements/$nums);
    //СОСЕДИ
    $left_neighbour = $page - $neighbours;
    if ($left_neighbour < 1) $left_neighbour = 1;
    $right_neighbour = $page + $neighbours;
    if ($right_neighbour > $pages) $right_neighbour = $pages;
    //КОНЕЦ СОСЕДЯМ
    if ($page < 1){$page = 1;} elseif ($page > $pages){$page = $pages;} //ПРОВЕРКА НА БОЛЬШЕ МЕНЬШЕ ЧЕМ ЕСТЬ
    $start = ($page-1)*$nums;
    echo 'Колличество страниц:'." $pages".'<br />';

    echo "'$number' '$cost1' '$etaj1' '$etajnost1' '$type1' '$street1' '<br />'";
    $query = "SELECT * FROM apartament WHERE number = '$number' $cost1 $etaj1 $etajnost1 $street1 $type1 $street1 LIMIT $start, $nums";
    echo $query;

    $result = mysql_query($query);
    if(mysql_num_rows($result) == 0):
    echo "По вашему запросу ничего не найденно. Попробуйте расширить запрос.";
    else:

    echo "<table><tr><th>Контакт</th><th>Цена</th><th>Кол. ком.</th><th>Этаж/ Этажность</th><th>Улица</th><th>Тип</th><th>Состояние</th><th>Нал. телефона</th><th>Примечание</th></tr>";
    while(list($name, $phone, $email, $cost, $number, $etaj, $etajnost, $street, $type, $condition, $telephone, $description, $begin, $end) = mysql_fetch_row($result)):
    echo "<tr>
    <td>$name<br />$phone<br />$email</td><td>$cost тыс.руб.</td><td>$number</td><td>$etaj/$etajnost</td><td>$street</td><td>$type</td><td>$condition</td><td>$telephone</td><td>$description</td>
    </tr>
    ";
    endwhile;
    echo "</table>";





    if ($page> 1)
    {
    print ' <a href="?page=1">Начало</a> … <a href="?page=' . ($page-
    1) . '">Назад</a> ';
    }

    if ($page == 1)
    {
    print ' Начало … Назад ';
    }

    for ($i=$left_neighbour; $i<=$right_neighbour; $i++)
    {
    if ($i != $page)
    {
    print '<a href="?page=' . $i . '">' . $i . '</a> ';
    }
    else
    {
    print ' <b>' . $i . '</b> ';
    }
    }

    if ($page < $pages)
    {
    print '<a href="?page=' . ($page+1) . '">Вперед</
    a> … <a href="?page=' . $pages . '">Конец</a>';
    }

    if ($page == $pages)
    {
    print ' Вперед … Конец ';
    }

    endif;
    ?>


    Сразу говорю, вариант с расположением на одной странице формы и её экшена у меня тоже есть но там при переходе по ссылке на вторую страницу перекидывает опять на форму. Однако следует отметить, что после того как перекинет при нажатии на кнопку "Искать." выходишь именно на правильную страницу. Вообщем одни загадки.
    Спасибо.
  • F.A.Q.Постраничный вывод информации из БД (пагинатор) • 17 февраля 2008 г. 16:52

    Доброго вам времени.Подкинули ссылку с другого сайта на эту статью. Попробовал применить данный совет к моему скрипту. И сразу же столкунулся с непреодолимым чувством, образовавшимся в моей голове, и чуть позже, распространившимся, по всему телу, я понял меня колбасит…Вопрос собственна гов...
    Доброго вам времени.
    Подкинули ссылку с другого сайта на эту статью. Попробовал применить данный совет к моему скрипту. И сразу же столкунулся с непреодолимым чувством, образовавшимся в моей голове, и чуть позже, распространившимся, по всему телу, я понял меня колбасит…
    Вопрос собственна говоря такой:
    Есть форма в которую воодиться информация в последствии по этой информаии отбираеються данные из БД и конечно выводяться на кинескоп. В этом месте я дописал ваш код. Данные отбираються нормально по всем параметрам введенным в форму. Строк БД выводиться тоже стока скока указал в LIMIT однако при переходе по ссылке на вторую страницу все отказываеться работать пишет что ошибка данных для запроса к БД. Полагаю, что данные введенные в форму не передаються на вторую страницу. Кто-нибудь может с этим помочь?