Есть вопрос?
Зайди на форум

Поиск на сайте: Advanced

Denix - новый дистрибутив Linux. Русификация Ubuntu и установка кодеков

dkws.org.ua
Форум сайта dkws.org.ua
 
Главная    ТемыТемы    АльбомАльбом    РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Проблемы с движком из книги Php 5/6 и Mysql
На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.
 
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP
 
Автор Сообщение
kashchej




Зарегистрирован: 28.06.2010
Сообщения: 3
Откуда: Lemberg

СообщениеДобавлено: Вт Июн 29, 2010 10:33 am    Заголовок сообщения:
Ответить с цитатой

Перепробовал нескалька вариантов!!!!
в переменую $string загнал все содержимое и приписал

do {
$string .= "value";
} while ();

$tpl->set_value('STRING',$string);


браузер показует ошыбку:

Parse error: parse error, unexpected ')' in s:\home\localhost\www\top snake\wiev.php on line 47

47 линия ета:

} while ();

вставил в ():

$myrow2 = mysql_fetch_array($result2)

тобто получилось:

} while ($myrow2 = mysql_fetch_array($result2));

ошибка:

Notice: Undefined variable: result2 in s:\home\localhost\www\top snake\wiev.php on line 47
[Денвер: показать возможную причину ошибки]
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in s:\home\localhost\www\top snake\wiev.php on line 47

и вместе кометнариев выводит не коментарии из БД а:

$result2 = mysql_query("SELECT * FROM coments WHERE cat=\"$id\"",$db); if (mysql_num_rows($result2) > 0) { $myrow2 = mysql_fetch_array($result); do { printf ("

Автор: %s
Дата: %s

%s
", $myrow2["author"], $myrow2["date"], $myrow2["text"]); } while ($myrow2 = mysql_fetch_array($result2)); }value


возможнго ошыбка в чомта другом, выкладиваю полний текс файла:

<?php

require "config.php";

require "template/template.php";

$tpl->get_tpl('template/wiev.tpl');

$menu = file_get_contents('html/menu.html');

$tpl->set_value('MENU',$menu);

$db = mysql_connect($dbhost,$dbuser,$dbpasswd);
mysql_select_db($dbname, $db);

if (isset($_GET['id'])) {$id = $_GET['id'];}

$result = mysql_query("SELECT * FROM models WHERE id=\"$id\"",$db);
$myrow = mysql_fetch_array($result);

$tpl->set_value('TITLE',$myrow['name']);
$tpl->set_value('NAME',$myrow['name']);
$tpl->set_value('PHOTO',$myrow['photo']);
$tpl->set_value('PHOTO_INFO',$myrow['photo_info']);
$tpl->set_value('PHOTO_MINI_1',$myrow['photo_mini_1']);
$tpl->set_value('PHOTO_MINI_2',$myrow['photo_mini_2']);
$tpl->set_value('PHOTO_MINI_3',$myrow['photo_mini_3']);
$tpl->set_value('PHOTO_MINI_4',$myrow['photo_mini_4']);
$tpl->set_value('TEXT',$myrow['text']);

$string = '$result2 = mysql_query("SELECT * FROM coments WHERE cat=\"$id\"",$db);
if (mysql_num_rows($result2) > 0)
{
$myrow2 = mysql_fetch_array($result);

do
{
printf ("<p>Автор: %s <br> Дата: %s </p>
<p>%s</p>", $myrow2["author"], $myrow2["date"], $myrow2["text"]);
}
while ($myrow2 = mysql_fetch_array($result2));
}';

do {
$string .= "value";
}
while ($myrow2 = mysql_fetch_array($result2));

$tpl->set_value('STRING',$string);



$tpl->tpl_parse();
echo $tpl->html;

?>

заранее спасибо за помочь и отличная у Вас книга, много интересного!!!!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вт Июн 29, 2010 11:28 am    Заголовок сообщения:
Ответить с цитатой

kashchej, я ж за тебя код не буду писать!!!! Я тебе показал как пример, основное здесь было:

$string .= "value";

собираем все в одну строку, дальше присваиваем ее переменной шаблона. Цикл while без условия - понятно, что ошибка будет. Включайте смекалку господа!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
kashchej




Зарегистрирован: 28.06.2010
Сообщения: 3
Откуда: Lemberg

СообщениеДобавлено: Ср Июн 30, 2010 1:48 pm    Заголовок сообщения:
Ответить с цитатой

Хотел ещо спрасить в какых случиях ставить . перед =???? и что значит "value", всегда далжно быть value или есть ещо кое какие варианты???
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Ср Июн 30, 2010 2:18 pm    Заголовок сообщения:
Ответить с цитатой

"value" - это значение - то, что ты хочешь присвоить строке
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Dionas




Зарегистрирован: 03.10.2010
Сообщения: 1

СообщениеДобавлено: Вс Окт 03, 2010 9:44 pm    Заголовок сообщения:
Ответить с цитатой

Сложный проект: сайт по продаже недвижимости (стр. 482)
------------------------------
файл index.php (аутентификация)

//проверка имени пользователя и пароля
if ($p=="login")

вот это интересно как оно работает ?))
вновь созданная переменная может иметь какое то значение?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Ср Окт 06, 2010 8:49 am    Заголовок сообщения:
Ответить с цитатой

1) Да может, см. внимательно весь код, она инициализируется
2) Система аутентификации там детская, для коммерческого проекта ее желательно усовершенствовать
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Ср Окт 06, 2010 8:50 am    Заголовок сообщения:
Ответить с цитатой

А вообще проект рабочий - http://dompoisk.com/

Вариант из книги отличается отсутствием дизайна
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Silex




Зарегистрирован: 02.12.2010
Сообщения: 6
Откуда: Ульяновск

СообщениеДобавлено: Сб Dec 04, 2010 11:37 am    Заголовок сообщения:
Ответить с цитатой

здравствуйте! с удовольствием читаю Вашу книгу, но есть замечание:
на диске отсутствуют некоторые листинги:
глава 8: листинги 8.1,8.2,8.3
глава 19: листинги 19.1,19.2,19.3,19.4.
но мне больше всего не хватает файла с sql запросами для создания и заполнения таблиц БД в проекте сайта недвижимости! если не сложно, выложите где-нибудь эти файлы!
Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Сб Dec 04, 2010 12:41 pm    Заголовок сообщения:
Ответить с цитатой

Перед использованием этого листинга проверь, чтобы были именно те поля, которые есть в книге. Сбрасываю дамп реального проекта - я мог переименовать какое-то поле или добавить дополнительное.


-- phpMyAdmin SQL Dump
-- version 2.11.5
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Апр 03 2010 г., 18:22
-- Версия сервера: 5.0.77
-- Версия PHP: 5.2.6

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- База данных: `******`
--

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

--
-- Структура таблицы `n_adv`
--

CREATE TABLE `n_adv` (
`id` int(11) NOT NULL auto_increment,
`comment` varchar(100) default NULL,
`html` text,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=6 ;

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

--
-- Структура таблицы `n_art`
--

CREATE TABLE `n_art` (
`id` int(11) NOT NULL auto_increment,
`title` varchar(250) default NULL,
`html` text,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=7 ;

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

--
-- Структура таблицы `n_fotos`
--

CREATE TABLE `n_fotos` (
`i` int(11) NOT NULL auto_increment,
`id` int(11) NOT NULL,
`fname` varchar(250) default NULL,
PRIMARY KEY (`i`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=88 ;

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

--
-- Структура таблицы `n_main`
--

CREATE TABLE `n_main` (
`id` int(11) NOT NULL auto_increment,
`dt` bigint(20) NOT NULL,
`vip` int(11) NOT NULL default '0',
`uid` int(11) default '1',
`sale` int(11) default '1',
`lease` int(11) default '0',
`obmen` int(11) default '0',
`region_id` int(11) default NULL,
`town_id` int(11) default NULL,
`town` varchar(100) default NULL,
`ntype` int(11) default NULL,
`rooms` int(11) default NULL,
`floor` varchar(10) default NULL,
`sq_all` int(11) default NULL,
`sq_live` int(11) default NULL,
`sq_k` int(11) default NULL,
`wall` varchar(20) default NULL,
`street` varchar(40) default NULL,
`house` varchar(5) default NULL,
`year` int(11) default NULL,
`price` int(11) default NULL,
`price_currency` varchar(3) default NULL,
`price_comment` int(11) default NULL,
`photo` varchar(255) default NULL,
`comment` text,
`publication` int(11) default NULL,
`zem_uch` int(11) default NULL,
`target` int(11) default NULL,
`name_object` varchar(100) default NULL,
`phone` varchar(20) default NULL,
`v` int(11) NOT NULL default '0' COMMENT 'к-во просмотров',
`scode` int(10) NOT NULL COMMENT 'Секретный код для удаления собщения',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=745 ;

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

--
-- Структура таблицы `n_news`
--

CREATE TABLE `n_news` (
`id` int(11) NOT NULL auto_increment,
`dt` int(11) default NULL,
`title` varchar(250) default NULL,
`html` text,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=15 ;

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

--
-- Структура таблицы `n_notepad`
--

CREATE TABLE `n_notepad` (
`id` int(11) NOT NULL auto_increment,
`uid` int(11) NOT NULL,
`oid` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=39 ;

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

--
-- Структура таблицы `n_regions`
--

CREATE TABLE `n_regions` (
`id` int(11) NOT NULL auto_increment,
`rname` varchar(120) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=26 ;

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

--
-- Структура таблицы `n_static`
--

CREATE TABLE `n_static` (
`id` int(11) NOT NULL auto_increment,
`html` text,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2 ;

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

--
-- Структура таблицы `n_towns`
--

CREATE TABLE `n_towns` (
`id` int(11) NOT NULL auto_increment,
`regid` int(11) default NULL,
`tname` varchar(100) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=556 ;

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

--
-- Структура таблицы `n_type`
--

CREATE TABLE `n_type` (
`id` int(11) NOT NULL auto_increment,
`t` varchar(250) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=7 ;

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

--
-- Структура таблицы `n_users`
--

CREATE TABLE `n_users` (
`id` int(11) NOT NULL auto_increment,
`email` varchar(100) NOT NULL,
`uname` varchar(100) NOT NULL,
`phone1` varchar(100) NOT NULL,
`phone2` varchar(20) default NULL,
`region_id` int(11) default NULL,
`town` varchar(50) default NULL,
`pas` varchar(254) default NULL,
`sendm` int(11) default NULL,
`fio` varchar(128) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=30 ;

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

--
-- Структура таблицы `n_uslugi`
--

CREATE TABLE `n_uslugi` (
`id` int(11) NOT NULL auto_increment,
`dt` bigint(20) NOT NULL,
`vip` int(11) NOT NULL default '0',
`uid` int(11) default '1',
`region_id` int(11) default NULL,
`town_id` int(11) default NULL,
`town` varchar(100) default NULL,
`vid_uslug` int(11) NOT NULL,
`comment` text,
`phone` varchar(20) default NULL,
`photo` varchar(250) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=31 ;
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Silex




Зарегистрирован: 02.12.2010
Сообщения: 6
Откуда: Ульяновск

СообщениеДобавлено: Сб Dec 04, 2010 2:41 pm    Заголовок сообщения:
Ответить с цитатой

спасибо за быстрый ответ))
ещё столкнулся с той же проблемой, что топикстартер.
а именно постоянно выходит главное меню.
олег алексеевич указал, что если $p не указана, то будет выведено основное меню (что и происходит собственно).
но при этом же я смотрю на URL и вижу, что $p присваиваются значения (см картинку)
как же быть? и что поменять?
вожусь уже 2 день, облазил эти сценарии движка вдоль и поперек, но не могу понять в чём загвоздка!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Сб Dec 04, 2010 5:32 pm    Заголовок сообщения:
Ответить с цитатой

register_globals включи или же перепиши код без использования register_globals, обращайся к переменным через $_GET['имя'], например, $_GET['p']. Хотя тут зависит от метода передачи, для пост-переменных $_POST[]
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Silex




Зарегистрирован: 02.12.2010
Сообщения: 6
Откуда: Ульяновск

СообщениеДобавлено: Сб Dec 04, 2010 11:18 pm    Заголовок сообщения:
Ответить с цитатой

спасибо, меню заработало Smile
и снова проблема: при переходе на страницу $p=="showpage" :

возникает ошибка, что не может найти такую страницу:

посмотрев на 104 строку понял, что функции mysql_num_rows($r) не передается аргумент.
вбив вручную для примера $id=2, проверил и всё заработало.

код не менял, чтобы потерять $id.
уж хотелось бы до конца разобраться в вашем движке - посоветуйте как поступить в этой ситуации!
куда же всё же девается $id и как это исправить?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вс Dec 05, 2010 6:57 am    Заголовок сообщения:
Ответить с цитатой

Цитата:

посмотрев на 104 строку понял, что функции mysql_num_rows($r) не передается аргумент.
вбив вручную для примера $id=2, проверил и всё заработало.

Посмотри на второй рисунок. У тебя вместо id передается page, исправь код вывода меню, там видно в ссылке ошибка, исправь page на id и все заработает
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Silex




Зарегистрирован: 02.12.2010
Сообщения: 6
Откуда: Ульяновск

СообщениеДобавлено: Вс Dec 05, 2010 2:59 pm    Заголовок сообщения:
Ответить с цитатой

den писал(а):

Посмотри на второй рисунок. У тебя вместо id передается page, исправь код вывода меню, там видно в ссылке ошибка, исправь page на id и все заработает

я так понимаю, что где-то $id застревает в menu.php, не передается обратно в index.php/
а зачем ссылки смотреть? ведь на 2 рисунке до переменной $page дело даже не доходит.
Код:
 
//если сценарий получил код вывода страницы
elseif ($p=="showpage")
    {
    //$id="1"; ///не передаётся ID
   
   $id = @htmlspecialchars($id);
   $id = @strip_tags($id);

   $q = "select * from pages where id=$id";
   $r = mysql_query($q);
   
   if (mysql_num_rows($r)>0)
       {
      $row = mysql_fetch_array($r);
      
      //выводим название страницы
      $page = $page .  "<h1>$row[header]</h1>";
      
      //выводим ссылку "вниз"
      $page = $page .  "<p><center><a name=top></a><a href=#down>Вниз</a></center><p>";
      
      //выводим содержимое страницы
      $page = $page .  "<p><br><br>$row[content]";
      
      //выводим ссылку на версию для печати
      $page = $page .  "<p><p><a target=_blank href=print.php?page=$id>Версия для печати</a>";
      
      //выводим ссылку "вверх"
      $page = $page .  "<p><br><p><center><a name=down></a><a href=#top>Наверх</a></center>";
      
       }
      //выводим НЕТ такой страницы
      else $page = $page .  "<h1>Нет такой страницы!</h1>";
    }

обработчик не может выполнить запрос:
Код:
   $q = "select * from pages where id=$id";
   $r = mysql_query($q);

так как $id ему не передана.
где смотреть ошибку- в menu.php?
недавно начал изучение php - сложно сразу сориентироваться ((
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вс Dec 05, 2010 3:13 pm    Заголовок сообщения:
Ответить с цитатой

Цитата:

где смотреть ошибку- в menu.php?

конечно, id не передается потому что menu.php не генерирует ссылки нужного плана
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Показать сообщения:   
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP Часовой пояс: GMT
На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.
Страница 5 из 8
 Главная страница сайта
 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
© Колисниченко Денис