Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Вопрос по GET
Stave  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 138
Пользователь №: 40254
На форуме: 2 года, 3 месяца
Карма: 4




Здравствуйте, столкнулся с проблемой при выводе страницы по id

Не могу сделать проверку

если id = "" || не существует как таковой, то header("Location: 404.php");


иначе - вывод существующей странице по id


--------------------
Если долго в одних стенах живешь, ты с ними сростаешься
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1355
Пользователь №: 28976
На форуме: 5 лет, 4 месяца, 6 дней
Карма: 77




empty ?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stave  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 138
Пользователь №: 40254
На форуме: 2 года, 3 месяца
Карма: 4




Цитата (Kusss @ 10.01.2016 - 20:56)
empty ?

проверку на пустоту я сделал, но если ввести несуществующий id выводится страница пустая, с лишними стилями блоков


if(empty($id)){
header("Location: 404.php");
}else{
что-что
};


--------------------
Если долго в одних стенах живешь, ты с ними сростаешься
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Медведь  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2482
Пользователь №: 37963
На форуме: 3 года, 3 месяца, 24 дня
Карма: 27




Цитата (Stave @ 10.01.2016 - 21:02)
Цитата (Kusss @ 10.01.2016 - 20:56)
empty ?

проверку на пустоту я сделал, но если ввести несуществующий id выводится страница пустая, с лишними стилями блоков


if(empty($id)){
header("Location: 404.php");
}else{
что-что
};

Проверку к таблице

WHERE `id` = $test


--------------------

Заходил 29.09.2016
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1355
Пользователь №: 28976
На форуме: 5 лет, 4 месяца, 6 дней
Карма: 77




Stave
тогда у тебя не правильный вопрос.
как после запроса , который ничего не вернул отправить на 404 страницу
$sql = mysql_query(....);
if(mysql_num_rows($sql) == 0){
header("Location: 404.php");
die();
}else{
что-что
};
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stave  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 138
Пользователь №: 40254
На форуме: 2 года, 3 месяца
Карма: 4




Цитата (Kusss @ 10.01.2016 - 21:08)

тогда у тебя не правильный вопрос.
как после запроса , который ничего не вернул отправить на 404 страницу
$sql = mysql_query(....);
if(mysql_num_rows($sql) == 0){
    header("Location: 404.php");
    die();
}else{
    что-что
};



Что-то я не совсем понимаю, давайте я представлю код свой, у меня он конечно не очень грамотный, я не разобрался как выдернуть с 3х таблиц разные запросы и вывести их.


if(empty($id)){
header("Location: 404.php");
}else{


Запрос на получение информации о враче
	$r_doctor = mysql_query("SELECT * FROM specialists WHERE type='$id'", $link_connect);
$row_doctor = mysql_fetch_array($r_doctor);
$img_path = './upload_img/doctors/'.$row_doctor["photo"];


Вывод описания категории и врача привязанного к этой категории
$r_category = mysql_query("SELECT * FROM category WHERE type='$id'", $link_connect);
$row_category = mysql_fetch_array($r_category);
echo '
<div id="Intro">
<ul class="Doctor">
<div class="tit">Прием ведет</div>
<li class="photo"><img src="'
.$img_path.'" /></li>
<li class="name">'
.$row_doctor['name_patronymic'].'</li>
<li class="surname">'
.$row_doctor['surname'].'</li>
<li class="settings"></li>
</ul>
<p>'
.$row_category['intro'].'</p>
</div>
'
;


Запрос на прайс к данной категории
$r_price = mysql_query("SELECT * FROM service WHERE type='$id' ORDER BY name ASC", $link_connect);

if(mysql_num_rows($r_price) > 0){
$row_price = mysql_fetch_array($r_price);
do{
echo '
<div id="Price">
<ul>
<li><div class="name">'
.$row_price['name'].'</div> <div class="coin">'.$row_price['coin'].' руб.</div></li>
</ul>
</div>'
;
}
while($row_price = mysql_fetch_array($r_price));
}
}


выводятся в соответствии в полем таблицы type


--------------------
Если долго в одних стенах живешь, ты с ними сростаешься
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1355
Пользователь №: 28976
На форуме: 5 лет, 4 месяца, 6 дней
Карма: 77




объедините
Цитата
Запрос на получение информации о враче
Вывод описания категории и врача привязанного к этой категории

$sql = "
SELECT
s.name_patronymic, s.photo, s.surname,
c.intro
FROM
specialists AS s,
category AS c
WHERE
c.`type` = s.`type` AND
s.`type` = "
.(int)$id."
"
;
$sql = mysql_query($sql, $link_connect);
// Если такого доктора нет
if(mysql_num_rows($sql) == 0){
header("Location: 404.php");
die();
}

$doctor_info = mysql_fetch_assoc($sql);

$img_path = './upload_img/doctors/'.$doctor_info["photo"];
echo '
<div id="Intro">
<ul class="Doctor">
<div class="tit">Прием ведет</div>
<li class="photo"><img src="'
.$img_path.'" /></li>
<li class="name">'
.$doctor_info['name_patronymic'].'</li>
<li class="surname">'
.$doctor_info['surname'].'</li>
<li class="settings"></li>
</ul>
<p>'
.$doctor_info['intro'].'</p>
</div>
'
;
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1355
Пользователь №: 28976
На форуме: 5 лет, 4 месяца, 6 дней
Карма: 77




зачем при переборе полученных строк используют
do{....}while 

if(mysql_num_rows($r_price) > 0){
while($row_price = mysql_fetch_assoc($r_price)) {
echo '
<div id="Price">
<ul>
<li><div class="name">'
.$row_price['name'].'</div> <div class="coin">'.$row_price['coin'].' руб.</div></li>
</ul>
</div>'
;

}
}
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stave  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 138
Пользователь №: 40254
На форуме: 2 года, 3 месяца
Карма: 4




Цитата (Kusss @ 10.01.2016 - 21:53)
зачем при переборе полученных строк используют

Круто) спасибо.

А можете пояснить вот что:

s.surname,
c.intro

s и с - эти буквы как ключи или писать от балды можно?

просто нужно еще третью таблицу подключить с прайсом, не особо это понимаю, ну и это
c.`type` = s.`type` AND s.`type` = ".(int)$id."


Это сообщение отредактировал Stave - 10.01.2016 - 22:51


--------------------
Если долго в одних стенах живешь, ты с ними сростаешься
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1355
Пользователь №: 28976
На форуме: 5 лет, 4 месяца, 6 дней
Карма: 77




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

c.`type` = s.`type`
таблицы соединяются по этому параметры. То есть запрос выполняться ТОЛЬКО при наличии категории и врача.

mysql_fetch_array - тоже стоит заменить на mysql_fetch_assoc.
так как mysql_fetch_array возвращает индексый и ассоциативный массив. в 2 раза больше данных.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stave  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 138
Пользователь №: 40254
На форуме: 2 года, 3 месяца
Карма: 4




Цитата (Kusss @ 10.01.2016 - 23:06)
с и s - это алиасы (переименования). можешь заменить на боллее понятные тебе значения.
s.surname - Если нужно только несколько значений, их проще перечислить ... и из какой они таблицы. Зачем тащить все значения (*), эти значения потребляют оперативную память сервера. Если нагрузка не велика, то будет не заметно... а вот если будет много запросов, в общем экономим ресурсы.

c.`type` = s.`type`
таблицы соединяются по этому параметры. То есть запрос выполняться ТОЛЬКО при наличии категории и врача.

mysql_fetch_array - тоже стоит заменить на mysql_fetch_assoc.
так как mysql_fetch_array возвращает индексый и ассоциативный массив. в 2 раза больше данных.

все, я запутался)))
Это для меня новое, я не могу понять как подключить все, нужно разбираться, спасибо за помощь!)


--------------------
Если долго в одних стенах живешь, ты с ними сростаешься
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stave  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 138
Пользователь №: 40254
На форуме: 2 года, 3 месяца
Карма: 4




на свежую голову гляну


--------------------
Если долго в одних стенах живешь, ты с ними сростаешься
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса