Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RFpro.ru: Программирование на PHP


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

vladisslav
Статус: 5-й класс
Рейтинг: 1065
∙ повысить рейтинг »
Волков Алексей aka Lupo
Статус: 5-й класс
Рейтинг: 315
∙ повысить рейтинг »
Палян Александр Михайлович
Статус: 6-й класс
Рейтинг: 310
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / PHP

Номер выпуска:1185
Дата выхода:21.12.2009, 09:00
Администратор рассылки:Товарищ Бородин, Модератор
Подписчиков / экспертов:639 / 193
Вопросов / ответов:1 / 2
IRC-канал по теме:#php

Вопрос № 175346: Здравствуйте Уважаемые эксперты! Я новичок в mysql. У меня есть база данных wwwammxru_ammx С таблицей Arenda и полями: id date komnata rain adress etazh info cena telefon dop_info Как мне можно реализо...



Вопрос № 175346:

Здравствуйте Уважаемые эксперты! Я новичок в mysql. У меня есть база данных wwwammxru_ammx С таблицей Arenda и полями:

id
date
komnata
rain
adress
etazh
info
cena
telefon
dop_info


Как мне можно реализовать поиск по полю Цена (cena) или Pайон (rain) и правильно вывести на странице используя ниже приведенный код?
И как я могу в данный момент вывести постранично т.е Страница 1.2.3.4.5 и т.д с помощью какой функции по 10 записей постранично, ведь база большая и не удобно ее читать всю...

Отправлен: 16.12.2009, 08:44
Вопрос задал: Т. Павел Анатольевич, Посетитель
Всего ответов: 2
Страница вопроса »


Отвечает Зернов Александр, 1-й класс :
Здравствуйте, Т. Павел Анатольевич.
C помощью оператора LIKE попробуйте.
$like = ....; // через GET или POST задаем слово поиска

$db = mysql_connect("localhost","ammx","1111");
mysql_select_db("wwwammxru_ammx" ,$db);
$sql = mysql_query("select * from Arenda WHERE cena AND rain like '%$like%'") oк die ("Error!"); // получаем массив данных
if((mysql_num_rows($sql)<=0))
{
echo ("Ни чего не найдено!");
}else{
while ($while = mysql_fetch_array($sql )) // формируем список и выводим его как удобно
{
echo ("Данные ".$while [date] ." - дата");
};
mysql_free_result ($sql);
};

Конструкцию mysql_fetch_row лучше заменить на mysql_fetch_array, это позволит создать "именованный" массив в котором к полю удобнее и проще обращаться через его имя $while [date] вместо $while [2], к тому же добавление нового поля где н ибудь в центре избавит вас от переписки кода ибо числовые индексы собьются.

Возможно будут проблемы с кодировкой.

Про постраничный вывод можно прочитать на http://www.tigir.com/paging.htm или на http://www.php.su/articles/?cat=examples&page=020
Редактирование ответа по просьбе ответившего.
-----
∙ Отредактировал: Igor Yu. Pilyugin, Модератор
∙ Дата редактирования: 17.12.2009, 00:50 (время московское)

Ответ отправил: Зернов Александр, 1-й класс
Ответ отправлен: 17.12.2009, 00:06

Оценка ответа: 5
Комментарий к оценке:
Спасибо большое за ответ Александр!!! А выборка данных из БД таким же способом производиться?

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 257829 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает hаcpaka, 3-й класс :
    Добрый вечер.
    Примерно так:

    [code]
    /*...где-то выше...*/
    define('_MAXONPAGE', 10);
    /*.................*/

    $cena = 100; //для примера
    $raion = 'Местный:)'; //для примера
    $currentPage = 2; // для примера - текущая страница

    $sqlLimit = $currentPage > 1 ? ' LIMIT '._MAXONPAGE : ' LIMIT '._MAXONPAGE * $currentPage.' OFFSET '._MAXONPAGE;


    ////Насколько я понял в поле район - строка а не id ?????? если строка то так:
    $sql = mysql_query('SELECT * FROM Arenda WHERE cena = '.(int)$cena.' AND rain = "'.mysql_real_escape_string($raion).'" ');
    ////если все-таки id - то так:
    $sql = mysql_query('SELECT * FROM Arenda WHERE cena = '.(int)$cena.' AND rain = '.(int)$raion.' ');


    /*
    так вы получите записи изначально только для текущей страницы. нес смысла забирать все записи и разбивать их затем в пхп.
    далее в цы кле вы выводите записи текущей страницы и отрисовываете ссылки для навигаци и по страницам. Значения cena, raion $currentPage
    можете брать из $_GET или $_POST соответственно - завсисит от того для чего оно вам надо.
    */

    echo ("<table border ='1'>");
    echo ("<tr> <td align=\"center\"> Кол-во комнат</td> <td align=\"center\"> Район</td> <td align=\"center\">Адрес</td> <td align=\"center\"> Описание</td> <td align=\"center\"> Цена</td> <td align=\"center\"> Телефон</td></tr></p>");
    //mysql_fetch_assoc кстати использовать удонее :)
    while ($tablerows = mysql_fetch_row($sql)){
    echo("<tr><td>$tablerows[2] </td><td>$tablerows[3]</td> <td>$tablerows[4]</td> <td>$tablerows[6]</td> <td>$tablerows[7]</td> <td>$tablerows[8]</td></b> </tr>");
    }
    echo "</table>";[/code]
    Если что-то не понятно - пишите... Хотя я все упростил аж до нельзя... [*5*]

    Ответ отправил: hаcpaka, 3-й класс
    Ответ отправлен: 18.12.2009, 18:10

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 257901 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.12 от 30.11.2009

    В избранное