Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2012, 13:56   #11
Pingvinenok_Lolo
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 56
По умолчанию

вот, но id не передается т.к. я его получаю только далее из запроса
PHP код:
<form action="main.php?item=estate" method="post">
&nbsp;&nbsp;&nbsp;<tr>
<td width="70">Тип:&nbsp;</td>
<td><select name="mr" size="1">
        <option value=""></option>
        <option value="Квартира">Квартира</option>
        <option value="Дом">Дом/Дача</option>
        <option value="Гараж">Гараж</option>
        <option value="Коммерческая">Коммерческая</option>
        <option value="Участок">Участок</option>
        </select>
        </td>
</tr>
&nbsp;&nbsp;
<tr>
<td width="70">Операция:&nbsp;</td>
<td><select name="mo" size="1">
        <option value=""></option>
        <option value="Купить">Купить</option>
        <option value="Продать">Продать</option>
        <option value="Сдать">Сдать</option>
        <option value="Снять">Снять</option>
        </select>
        </td>
</tr>
<tr>
    <td>&nbsp;&nbsp;&nbsp;<input type="submit" name="seek" value="Найти!"></td>
</tr>
</form>
<?php
$title 
= array("Дата","Район""Кол-во комнат""Площадь""Цена""Контакты""Фото");

$little_image "./photo/little/";

if (empty(
$_POST['mr']) && empty($_POST['mo']))
{
    
$mr "Квартира";
    
$mo "Купить";
}
if (isset (
$_POST['seek']))
{
    
$mr clearData($_POST['mr']);
    
$mo clearData($_POST['mo']);
}

if (isset (
$_GET['details']))
{
    
// как в этот блок передать id нужного объявления??
$id intval($_GET['details']); // пустая $id получается
    
$sql "SELECT `date_dec`, `operation`, `estate_type`, `rooms`, `floor`,`square_all`, `square_live`,
            `square_k`, `wall`, `street`, `area_of_kerch`, `house`, `year`, `price`, `price_currency`,
            `price_comment`, `photo`, `publication`, `zem_uch`, `target`, `name_object`, `comment`,
            `contacts` FROM `table_main` WHERE `id`='"
.$id."'";
    
$data mysql_query ($sql) or die (my_err_sql ());
    
$item mysql_fetch_array ($data);
    
$sql_photo "SELECT `photo_name` FROM `photo` WHERE `id`='".$id."'";
    
$photo mysql_query($sql_photo) or die (my_err_sql());
    
$p mysql_fetch_array ($photo);
    
    require_once 
"./templates/detail.php"// форма вывода подробного объявления
}

$sql "SELECT  `id`, `date_dec`, `operation`, `estate_type`, `rooms`, `floor`,`square_all`, `square_live`,
                `square_k`, `wall`, `street`, `area_of_kerch`, `house`, `year`, `price`, `price_currency`,
                `price_comment`, `photo`, `publication`, `zem_uch`, `target`, `name_object`, `comment`,
                `contacts` FROM `table_main` WHERE `operation`='"
.$mo."' AND `estate_type`='".$mr."'";

    
$data mysql_query($sql) or die (my_err_sql());
    echo 
$mr." -> ".$mo;
    echo 
"<table border=\"1\">";
    foreach (
$title as $value)
    {
        echo 
"<td align=\"center\"> ".$value." </td>";
    }
    
    while (
$item mysql_fetch_array ($data))
    {
        
$sql_photo "SELECT `photo_name` FROM `photo` WHERE `id`='".$id."'";
        
$photo mysql_query($sql_photo) or die (my_err_sql());
        
$p mysql_fetch_array ($photo);
        echo 
"<tr>
        <td>"
.$item["date_dec"]."</td>
        <td>"
.$item["area_of_kerch"]."</td>";
            if ((
$mr == "Квартира") || ($mr == "Дом"))
            {
                echo 
"<td>".$item["rooms"]."</td>";
            }
            else echo 
"<td> - </td>";
        echo 
"<td>".$item["square_all"]."</td>
        <td>"
.$item["price"]." ".$item["price_currency"]."</td>
        <td>"
.$item["contacts"]."</td>";
        echo 
'<td><img src="'.$little_image.$p['photo_name'].'" alt="" /></td>';
        echo 
'<td><a href="main.php?item=estate&details='.$item['id'].'">Подробней</a></td>';
        echo 
"</tr>";
}
echo 
"</table>";
?>
Цитата:
Сообщение от Andkorol Посмотреть сообщение
Вот отсюда:Он же у вас передается в URL.
Только, плиз - не используйте данные из POST & GET в запросах к MySQL без обработки или экранирования хотя-бы, это же явная SQL-injection.
Чего-то не передается... да про SQL-injection знаю но пока успешно про них забываю спасибо заметили
Все работает!!!!!!!!!

Последний раз редактировалось Pingvinenok_Lolo; 29.03.2012 в 14:10.
Pingvinenok_Lolo вне форума Ответить с цитированием
Старый 29.03.2012, 14:12   #12
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Pingvinenok_Lolo Посмотреть сообщение
вот, но id не передается т.к. я его получаю только далее из запроса
Чего-то не передается...
У вас ID передается так: ...main.php?item=estate&details=1234
Это значит, что:
$_GET['item'] = 'estate';
$_GET['details'] = '1234'; - это ваш ID
Доступ к нему в коде:
PHP код:
$id = (int)$_GET['details'];// сразу приводим к целочисленному типу 
И в условии проверки $_GET['details'] замените isset() на empty().
Andkorol вне форума Ответить с цитированием
Старый 29.03.2012, 14:21   #13
Pingvinenok_Lolo
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 56
По умолчанию

Уже разобралась. Заменила на empty().
Код:
if (!empty($_GET['details']))
Работает. Большое Вам человеческое спасибо!!!
p.s. а разве функция intval() не подходит для приведения к целочисленному типу?

Последний раз редактировалось Pingvinenok_Lolo; 29.03.2012 в 14:26. Причина: p.s.
Pingvinenok_Lolo вне форума Ответить с цитированием
Старый 29.03.2012, 14:39   #14
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Pingvinenok_Lolo Посмотреть сообщение
p.s. а разве функция intval() не подходит для приведения к целочисленному типу?
Подходит, но intval() - это функция, а (int) - нативное приведение типов - работает быстрее.
Andkorol вне форума Ответить с цитированием
Старый 29.03.2012, 16:16   #15
Pingvinenok_Lolo
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 56
По умолчанию

с intval(), (int) понятно
теперь другая бяка, если не выбран параметр поиска, то по умолчанию надо выводить какой-то результат, например - Квартиры - Продать, так и работает, но когда выбраны парамерты поиска, и я перехожу по ссылке Подробней (т.е. посылаю новый $_GET запрос) пер-е $mr и $mo обнуляются и выборка опять происходит по умолчанию. Как это исправить? Или как-то сессию прикрутить?
PHP код:
if (empty($_POST['mr']) && empty($_POST['mo']))
{
    
$mr "Квартира";
    
$mo "Купить";
}
if (isset (
$_POST['seek']))
{
    
$mr clearData($_POST['mr']);
    
$mo clearData($_POST['mo']);

Pingvinenok_Lolo вне форума Ответить с цитированием
Старый 29.03.2012, 16:38   #16
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

скорее всего сессии прикручивать
ADSoft вне форума Ответить с цитированием
Старый 29.03.2012, 17:17   #17
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Pingvinenok_Lolo Посмотреть сообщение
но когда выбраны парамерты поиска, и я перехожу по ссылке Подробней (т.е. посылаю новый $_GET запрос) пер-е $mr и $mo обнуляются и выборка опять происходит по умолчанию. Как это исправить? Или как-то сессию прикрутить?
А я бы юзал ЧПУ, ну или GET в крайнем случае - именно для таких вот моментов (фильтры всякие, поиски и т.п.).

Вот выбрал я, допустим, список квартир по определенным параметрам - и хочу этот выбор кому-то показать, посоветоваться например - или просто себе же в Закладки сохранить, чтоб потом не искать заново.
В случае с GET/ЧПУ - нет проблем:
.../main.php?city=23&district=9&type=ap artment&rooms=2
.../23/9/apartment/2
- хоть в Закладки, хоть ссылкой поделиться.
А в случае с сессиями - такое не прокатит, параметры всех фильтров не передать по ссылке, если они в сессии лежат.

Так что тут вам решать, что вам важнее - удобство использования, или "чистота/красота" ваших URL.
Andkorol вне форума Ответить с цитированием
Старый 29.03.2012, 18:27   #18
Pingvinenok_Lolo
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 56
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
скорее всего сессии прикручивать
Прочитала про сессии..чего-то не пойму как эту сессию написать для моего скрипта, ну есть два параметра, которые из формы принимаю, а что в сессию записывать и что с ней дальше делать? Объясните пожалуйста

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Так что тут вам решать, что вам важнее - удобство использования, или "чистота/красота" ваших URL.
На данный момент мне важно чтобы ОНО работало так как задумано ))) Это не какой-то навороченный портал недвижимости, а всего лишь маленький сайтик
Pingvinenok_Lolo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
слайдер контента CodeNOT JavaScript, Ajax 1 04.10.2011 01:23
Просмотр нового контента в IE Lindemann66 HTML и CSS 2 10.08.2011 12:23
Вывод div блока на главной XPsihopaTX PHP 12 06.01.2011 19:05
задача с обновлением Memo и сразу последующим его заполнением инфой по сети NiKiToZZ- Помощь студентам 5 29.12.2010 12:55
Менеджер контента Insainer HTML и CSS 1 27.04.2008 11:06