[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скрипт вывода title для страницы
SunSet
Помогите, пожалуйста, с вот этим скриптом, который сам писал.

PHP
<?php 
include ("../../blocks/base.php");
if (isset(
$_GET['id'])) {$id $_GET['id']; } 
if (!isset(
$id) OR empty($id)) {$id 1; } 
$maximum mysql_query ("SELECT MAX(`id`) FROM `articles` WHERE cat=1",$db); /* проверяем максимум */

$prov mysql_query ("SELECT `cat` FROM `articles` WHERE id=`$id`",$db);

if (
$prov ==1)
    {
    
$titles mysql_query ("SELECT `title`,`meta_d`,`meta_k` FROM articles WHERE id=$id",$db);
    
$tut mysql_fetch_array($titles);
    }

else 
    {
    
$titles mysql_query ("SELECT `title`,`meta_d`,`meta_k` FROM articles_cat WHERE cat=1",$db);
    
$tut mysql_fetch_array($titles);
    }

Второй день с ним маюсь, решил переделать, но всеравно не получается.
Вот табличка, с которой все вытягивается.
user posted image

Проблема в том, что как с таблички видно, в запросе может не существовать id, тогда ей значение присваивается 1. Тут все понятно.
Но из следующей строчки:
PHP
$prov mysql_query ("SELECT `cat` FROM `articles` WHERE id=`$id`",$db);

выбирается cat и проверяется, если она равно 1 = то делаем то-то, если нет, то другое. Но дело в том, что в этой проверке может и вообще никакого результата не быть, как видно в таблице, нету id=4 и нету к нему cat, то чтоб выводилось сообщение какоето, а то ошибку возвращает на эту строку, поскольку в таблице пусто на этот запрос.
И если есть какието грамматические ошибки - прошу поправить. Не всегда разбираюсь где нужно применить "=", а где "==". blink.gif



Спустя 36 минут, 43 секунды (24.08.2009 - 21:30) DeeKeiD написал(а):
PHP
$res mysql_query("SELECT `cat` FROM `articles` WHERE id = '".$id."'",$db);
if(!
$res) { die ('записи в базе не существует'); }
else { .. }
?

Спустя 2 минуты, 28 секунд (24.08.2009 - 21:33) kirik написал(а):
SunSet
Ты долго будешь одни и те же ошибки допускать?

Спустя 9 минут, 39 секунд (24.08.2009 - 21:42) SunSet написал(а):
DeeKeiD
Щас проверю


kirik
Так пробовал через mysql_result, сразу ошибку выбивает mad.gif

Спустя 7 минут, 45 секунд (24.08.2009 - 21:50) SunSet написал(а):
DeeKeiD
Не работает, сообщения 'записи в базе не существует' не выводится если даже специально id=4 поставить.

Спустя 2 минуты, 57 секунд (24.08.2009 - 21:53) DeeKeiD написал(а):
PHP
$res = mysql_query("SELECT * FROM `articles` WHERE `id` = '".$id."'",$db);
$row = mysql_fetch_array($res);
$prov_id = $row[id];
if(!
$prov_id) { die ('error'); }
else { echo 'success'; }

или
PHP
$res = mysql_query("SELECT * FROM `articles` WHERE `id` = '".$id."'",$db);
$row = mysql_fetch_array($res);
$prov_id = $row[id];
if(empty(
$prov_id)) { die ('error'); }
else { echo 'success'; }

Спустя 6 минут, 44 секунды (24.08.2009 - 22:00) SunSet написал(а):
DeeKeiD
Если отсечь кусок моего кода, который за этим запросом идет - то работает, правда $row[id]; поменял на $row[cat];, поскольку мне нужно с cat сравнивать, а не с id.
Сейчас постараюсь под свой код подстроить blink.gif

Спустя 9 минут, 22 секунды (24.08.2009 - 22:09) SunSet написал(а):
DeeKeiD
Подскажи еще одно.. вот есть структура if else, читал что можно несколько if использовать и упускать else, а этот else может внутрь себя включать (if else)?
Просто ж мне потом если в запросе существует чтото, я вытягиваю число категории и нужно его сравнивать ,если оно равно 1 то делаю нужное, а если не равняется то ошибку.

Спустя 4 минуты, 11 секунд (24.08.2009 - 22:13) DeeKeiD написал(а):
PHP
if($a == $b) {
    $ab = 2;
    $cd = 5;
    if($ab == $cd) {
    // действие
    }
    else {
    // действие
    }
}
else {
    $ab = 25;
    $cd = 22;
    if($ab != $cd) {
    // действие
    }
    else {
    // действие
    }
}
както так smile.gif вобще if else это логика - если 1 = 2 тогда то и т.д.

Спустя 17 минут, 35 секунд (24.08.2009 - 22:31) SunSet написал(а):
DeeKeiD
Немного "подкрутил" скрипт, теперь работает так ак надо user posted image Большое спасибо, помог.
Вот
Свернутый текст
PHP
<?php 
include ("../../blocks/base.php");
if (isset(
$_GET['id'])) {$id $_GET['id']; } 
if (!isset(
$id)) {$id 1; } 
$maximum mysql_query ("SELECT MAX(`id`) FROM `articles` WHERE cat=1",$db); /* проверяем максимум */

$res mysql_query("SELECT * FROM `articles` WHERE `id` = '".$id."'",$db);
$row mysql_fetch_array($res);
$prov_id $row[cat];
if(!
$prov_id
    {
    
$titles mysql_query ("SELECT `title`,`meta_d`,`meta_k` FROM articles_cat WHERE cat=1",$db);
    
$tut mysql_fetch_array($titles);
    }
if (
$row[cat] !=1)
    {
    
$titles mysql_query ("SELECT `title`,`meta_d`,`meta_k` FROM articles_cat WHERE cat=1",$db);
    
$tut mysql_fetch_array($titles);
    }
else 
    {
    
$titles mysql_query ("SELECT `title`,`meta_d`,`meta_k` FROM articles WHERE id=$id",$db);
    
$tut mysql_fetch_array($titles);
    }


Еще осталось приделать вывод новости согласно нужному титлу, но то думаю сам смогу сделать


_____________
... и помните! Каким бы ни был PHP, главное - чтобы он был защищенным! :) (PHP с Анфисой Чеховой)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.