[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ни как не пойму в чем дело
mid
Всех с наступающим,ещё раз за сегодня ;)
Опять проблема :(
Вот код:
index.php
<?php include("connect/functions.php");

shablonezator();

?>

functions.php

<?php
function
connect($host,$user,$password,$table){
$mysql_C = mysql_connect($host,$user,$password);
mysql_select_db($table,$mysql_C);
}
/**
*Моя функция,которая упрощает подключения
*К баз данных MySQL
*/


function sql($sql){
$mysql_Q = mysql_query($sql);
global $mysql;
$mysql = mysql_fetch_array($mysql_Q);
}
/**
*Моя функция,которая упрощает
* SQL запрос
*/


function shablonezator()
{

$page = $_GET['page'];
if($page == '')
{
$url = "index.php?page=index";
header("Location:$url");
}
/**
* Если $_GET['page'] пустая
* То переадрисируем на главную страницу
*/

connect("localhost","cms","cms","cms");
/**
* Подключаемся к базе с помощью моей функции
*/

sql("SELECT `title`,`content` FROM `index` WHERE `page`='$page'");
/**
* Делаем SQL запрос с помощью моей функции (мне кажется здесь беда)
*/

$title = $mysql['title'];
$content = $mysql['content'];
/**
* Загоняем в переменные инфу с бд
*/

$time = date("H");
/**
* Определяем время
* А далее сморя сколько время подбираем шаблон,к ошибке не относиться!
*/

if($time == '7' or $time == '8' or $time == '9' or $time == '10' or $time == '11')
{
$tpltitle = file_get_contents("templates/u/title.tpl");
$tplcontent = file_get_contents("templates/u/content.tpl");
$index = str_replace('{TITLE}',$title,$tpltitle);
$index .= str_replace('{CONTENT}',$content,$tplcontent);
echo $index;
exit();
}
if($time == '12' or $time == '13' or $time == '14' or $time == '15' or $time == '16' or $time == '17' or $time == '18' )
{
$tpltitle = file_get_contents("templates/d/title.tpl");
$tplcontent = file_get_contents("templates/d/content.tpl");
$index = str_replace('{TITLE}',$title,$tpltitle);
$index .= str_replace('{CONTENT}',$content,$tplcontent);
echo $index;
exit();
}
if($time == '19' or $time == '20')
{
$tpltitle = file_get_contents("templates/v/title.tpl");
$tplcontent = file_get_contents("templates/v/content.tpl");
$index = str_replace('{TITLE}',$title,$tpltitle);
$index .= str_replace('{CONTENT}',$content,$tplcontent);
echo $index;
exit();
}
if($time == '21' or $time == '22' or $time == '23' or $time == '24' or $time == '1' or $time == '2' or $time == '3' or $time == '4' or $time == '5' or $time == '6')
{
$tpltitle = file_get_contents("templates/n/title.tpl");
$tplcontent = file_get_contents("templates/n/content.tpl");
$index = str_replace('{TITLE}',$title,$tpltitle);
$index .= str_replace('{CONTENT}',$content,$tplcontent);
echo $index;
exit();
}
}

?>




Спустя 4 минуты, 26 секунд (31.12.2011 - 18:29) mid написал(а):
function connect($host,$user,$password,$table){
$mysql_C = mysql_connect($host,$user,$password);
mysql_select_db($table,$mysql_C);
}


function sql($sql){
$mysql_Q = mysql_query($sql);
global $mysql;
$mysql = mysql_fetch_array($mysql_Q);
}


Без этих функций,используя дедовский метод mysql_connect Тупо и тд все работает!

Спустя 15 секунд (31.12.2011 - 18:29) inpost написал(а):
mid
5 месяцев, уже пора: http://irbis-team.com/15/1/8

Переделывай. Уважай себя и читателей. Ты же не 1 строчку даёшь.

Спустя 1 минута, 14 секунд (31.12.2011 - 18:30) caballero написал(а):
Цитата
Вывод из бд не работает и в тоже время ошибку не выдает!

Или работает но возвращает пустой набор по причине отсутствия данных по данному запросу

Спустя 2 минуты, 7 секунд (31.12.2011 - 18:32) mid написал(а):
inpost ,конечно,сейчас все сделаю как нужно!Просто нг помогаю на стол накрывать и тружусь:)
Сейчас исправлюсь! smile.gif

Спустя 53 секунды (31.12.2011 - 18:33) mid написал(а):
Цитата (caballero @ 31.12.2011 - 15:30)

Или работает но возвращает пустой набор по причине отсутствия данных по данному запросу

Есть в бд все.Я же говорю если по обычному вытаскивать mysql_query("SELECT..") то все выводиться!

Спустя 10 минут, 37 секунд (31.12.2011 - 18:44) johniek_comp написал(а):
<?php
function
connect($host,$user,$password,$table){
$mysql_C = mysql_connect($host,$user,$password);
mysql_select_db($table,$mysql_C);
}

$mysql = mysql_fetch_array($mysql_Q);

function sql($sql){
$mysql_Q = mysql_query($sql);
global $mysql;
}


вот так нада

а чему равна $sql?
а это че такое?
sql("SELECT `title`,`content` FROM `index` WHERE `page`='$page'");

Спустя 5 минут, 26 секунд (31.12.2011 - 18:49) mid написал(а):
johniek_comp,пользовательские функции:)
Нее,то что предложил:
function connect($host,$user,$password,$table){
$mysql_C = mysql_connect($host,$user,$password);
mysql_select_db($table,$mysql_C);
}

$mysql = mysql_fetch_array($mysql_Q);

Совершенно не то)))
И если даже делать так,то нужно на переменную $mysql_Q в функции global прописать или return.

Беда..Надо выпить,тогда и дело само собой решиться :D :D :D

:rolleyes:

Спустя 1 минута, 26 секунд (31.12.2011 - 18:50) mid написал(а):
cool.gif надо начинать пить

Спустя 1 минута, 7 секунд (31.12.2011 - 18:52) mid написал(а):
johniek_comp
Цитата (johniek_comp @ 31.12.2011 - 15:44)
а чему равна $sql?

Настоятельно рекомендую почитать вам про пользовательские функции!

Спустя 2 минуты, 42 секунды (31.12.2011 - 18:54) inpost написал(а):
johniek_comp
Я понимаю, что ты стал много советовать, но я исправляю тебя в соседней теме, а ты снова те же ошибки допускаешь!
Я бы тебе посоветовал, больше прислушиваться к замечаниям в твой адрес, а так же прочитать тему, что выше ссылку я дал, и оформлять нормальным стилем.

Спустя 3 минуты, 5 секунд (31.12.2011 - 18:57) mid написал(а):
Цитата (inpost @ 31.12.2011 - 15:54)
Я понимаю, что ты стал много советовать, но я исправляю тебя в соседней теме, а ты снова те же ошибки допускаешь!

Я исправил что мне так сказали!Я так понимаю,что в функции shablonezatщr() не работают другие функции как connect(); sql(); Верно?А как сделать чтобы они заработали я не понимаю..

Спустя 39 секунд (31.12.2011 - 18:58) mid написал(а):
Вот и написал ph34r.gif

Спустя 49 секунд (31.12.2011 - 18:59) johniek_comp написал(а):
inpost
Я раз почитал попробовал что это за глобал, и применил сразу вот так
$login = "admin";                         
$password = "admin";
$dbname = "news";
$sqlhost = "localhost";
function mysqlconnect ()
{
global $dbname;
global $sqlhost;
global $sqlusername;
global $sqlpassword;
global $connection;
$connection = mysql_connect($sqlhost,$sqlusername,$sqlpassword) or die (mysql_error());
$db = mysql_select_db($dbname) or die (mysql_error());
}


у меня работает, наверно запутался где-то если говоришь что не прав.

Спустя 59 секунд (31.12.2011 - 19:00) mid написал(а):
Цитата (inpost @ 31.12.2011 - 15:54)
Я понимаю, что ты стал много советовать

Ну а разве это плохо? wink.gif

johniek_comp,тут в другом проблема..Понимаешь я использую в одной функции результат другой..Вот по этому и не работает..

Спустя 1 минута, 36 секунд (31.12.2011 - 19:01) mid написал(а):
А $sql это что то типо условия..ну если
function mid($name){
echo $name;
}

то если использовать функцию так mid("ВАсек")
То в итоге выведеться: Васек

Спустя 3 минуты, 46 секунд (31.12.2011 - 19:05) johniek_comp написал(а):
mid
Цитата
Ну а разве это плохо? 

Я просто когда на форум пришел, спрашивал типо такого: а че этот код делает?
$echo 'Happy New Year!';



а если без функций?

Спустя 1 час, 57 минут, 7 секунд (31.12.2011 - 21:02) mid написал(а):
Можно без функции..Но..Мне хочется научится работать с функциями..Тем более когда много sql Запросов функция sql которая у меня там есть,очень упрощает жизнь:)

Спустя 2 минуты, 32 секунды (31.12.2011 - 21:05) mid написал(а):
Ещё к ней надо дописать проверку,типо если есть уже такие переменные,которые создаются в той функции,удалять их,а остальное все оставить..

Спустя 11 минут, 8 секунд (31.12.2011 - 21:16) mid написал(а):
Все понял.Вот тут нужно было не так:

function sql($sql){
$mysql_Q = mysql_query($sql);
global $mysql;
$mysql = mysql_fetch_array($mysql_Q);
}

А так

function sql($sql){
$mysql_Q = mysql_query($sql);
$mysql = mysql_fetch_array($mysql_Q);
return $mysql;
}

Вот итог

<?php
function
connect($host,$user,$password,$table){
$mysql_C = mysql_connect($host,$user,$password);
mysql_select_db($table,$mysql_C);
}


function sql($sql){
$mysql_Q = mysql_query($sql);
$mysql = mysql_fetch_array($mysql_Q);
return $mysql;
}


function shablonezator()
{
$page = $_GET['page'];
if($page == '')
{
$url = "index.php?page=index";
header("Location:$url");
}
connect("localhost","cms","cms","cms");
$mysql_array = sql("SELECT `title`,`content` FROM `index` WHERE `page`='$page'");
$title = $mysql_array['title'];
$content = $mysql_array['content'];
$time = date("H");
if($time == '7' or $time == '8' or $time == '9' or $time == '10' or $time == '11')
{
$tpltitle = file_get_contents("templates/u/title.tpl");
$tplcontent = file_get_contents("templates/u/content.tpl");
$index = str_replace('{TITLE}',$title,$tpltitle);
$index .= str_replace('{CONTENT}',$content,$tplcontent);
echo $index;
exit();
}
if($time == '12' or $time == '13' or $time == '14' or $time == '15' or $time == '16' or $time == '17' or $time == '18' )
{
$tpltitle = file_get_contents("templates/d/title.tpl");
$tplcontent = file_get_contents("templates/d/content.tpl");
$index = str_replace('{TITLE}',$title,$tpltitle);
$index .= str_replace('{CONTENT}',$content,$tplcontent);
echo $index;
exit();
}
if($time == '19' or $time == '20')
{
$tpltitle = file_get_contents("templates/v/title.tpl");
$tplcontent = file_get_contents("templates/v/content.tpl");
$index = str_replace('{TITLE}',$title,$tpltitle);
$index .= str_replace('{CONTENT}',$content,$tplcontent);
echo $index;
exit();
}
if($time == '21' or $time == '22' or $time == '23' or $time == '24' or $time == '1' or $time == '2' or $time == '3' or $time == '4' or $time == '5' or $time == '6')
{
$tpltitle = file_get_contents("templates/n/title.tpl");
$tplcontent = file_get_contents("templates/n/content.tpl");
$index = str_replace('{TITLE}',$title,$tpltitle);
$index .= str_replace('{CONTENT}',$content,$tplcontent);
echo $index;
exit();
}
}

?>




Спустя 12 минут, 56 секунд (31.12.2011 - 21:29) Winston написал(а):
Цитата (mid @ 31.12.2011 - 20:16)
function sql($sql){
$mysql_Q = mysql_query($sql);
$mysql = mysql_fetch_array($mysql_Q);
return $mysql;
}

У тебя будет всегда возвращаться только 1 запись, даже если в результате запроса будет несколько. Лучше так написать:
Свернутый текст
function sql($sql){
if(!is_resource($sql))
{
$data = array();
$mysql_Q = mysql_query($sql);
while($mysql = mysql_fetch_array($mysql_Q))
$data[] = $mysql;

return $data;
}
else
return
$sql
}
Цитата (mid @ 31.12.2011 - 20:16)
if($time == '12' or $time == '13' or $time == '14' or $time == '15' or $time == '16' or $time == '17' or $time == '18' )

Зачем числа брать в одинарные кавычки, я так и не понял :huh:
Цитата (mid @ 31.12.2011 - 20:16)
if($page == '')
{
$url = "index.php?page=index";
header("Location:$url");
}

Замени на
if(empty($page))
{
$url = "index.php?page=index";
header("Location:$url");
exit;
}
Цитата (mid @ 31.12.2011 - 20:16)
if($time == '7' or $time == '8' or $time == '9' or $time == '10' or $time == '11')

Можно заменить на:
if($time >= 7 && $time <= 11)

Это
Цитата (mid @ 31.12.2011 - 20:16)
if($time == '12' or $time == '13' or $time == '14' or $time == '15' or $time == '16' or $time == '17' or $time == '18' )

На это
if($time >= 12 && $time <= 18)

Ну и это
Цитата (mid @ 31.12.2011 - 20:16)
if($time == '21' or $time == '22' or $time == '23' or $time == '24' or $time == '1' or $time == '2' or $time == '3' or $time == '4' or $time == '5' or $time == '6')

На
if(($time >= 1 && $time <= 6) || ($time >= 21 && $time <= 24))

Это
Цитата (mid @ 31.12.2011 - 20:16)
$index = str_replace('{TITLE}',$title,$tpltitle);
$index .= str_replace('{CONTENT}',$content,$tplcontent);

Можно вынести в ф-ю.

Ну это так... на первый взгляд.

Спустя 22 минуты, 13 секунд (31.12.2011 - 21:51) johniek_comp написал(а):
Winston
фига се...уже выпил за столом?

Спустя 2 минуты, 26 секунд (31.12.2011 - 21:54) Winston написал(а):
Цитата (johniek_comp @ 31.12.2011 - 20:51)
фига се...уже выпил за столом?

Трезвенники не пьют tongue.gif

Спустя 1 час, 18 минут (31.12.2011 - 23:12) inpost написал(а):
johniek_comp
Представим на секундочку, что каждый твой шаг должен быть логичный абсолютно!
У нас есть переменная (значение, которое меняется) и Константа (которая не меняется, одна навсегда).
Теперь у нас есть параметры для соединения с БД ОДНИ навсегда, значит это у что? Правильно, константа(!), прямая логика. А константа видна везде, она суперглобальная, и постоянно global писать не надо. И твои 10 строк можно заменить на 5, + выиграть в обычной логике приложений.

mid
То я не тебе писал. Тебе - изучи стиль, исправь и выстави обновленный код, если хочешь, чтобы я помог тебе smile.gif

Спустя 2 часа, 17 минут, 21 секунда (1.01.2012 - 01:29) Ramzil_Nixon написал(а):
mid, зачем ты в каждой странице подключаешь базу? не легче создать файл, записать туда данные подключения, и просто инклюдировать?


_____________
По любому вопросу : programmer-php@mail.ru
Быстрый ответ:

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