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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2011, 07:47   #1
Ast
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 117
По умолчанию sql и php

Комментарии хранятся в следующей таблице:
CREATE TABLE IF NOT EXISTS `comments` (
`c_id` int(11) NOT NULL AUTO_INCREMENT,
`c_parent_id` int(11) DEFAULT NULL,
`c_obj_id` int(11) NOT NULL,
`c_username` varchar(255) NOT NULL,
`c_email` varchar(255) NOT NULL,
`c_publ_date` datetime NOT NULL,
`c_text` text NOT NULL
PRIMARY KEY (`c_id`),
KEY `c_obj_id` (`c_obj_id`),
KEY `c_parent_id` (`c_parent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1;

Необходимо написать код, который выводит комментарии в виде иерархической структуры для указанного объекта (например, новости). Должна использоваться рекурсия. При этом разрешается выполнить только один sql-запрос. Так же следует учитывать, что в поле «c_obj_id» хранится ID объекта, к которому привязаны комментарии. Разрешается использовать только стандартные средства PHP.

пхп вроде понимаю немного а вот с скл туго, в денвере ведь есть скл5 как в нём создать базу и куда эти данные нужно записывать чтобы вывести комментарий. спасибо за помощь.
Ast вне форума Ответить с цитированием
Старый 13.11.2011, 12:11   #2
Ast
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 117
По умолчанию

c sql немного разобрался http://www.sdelaysite.com/kniga/tool...-dannih-denwer хорошая статья.


<?
/* Переменные для соединения с базой данных */
$hostname = "localhost";
$username = "myusername";
$password = "mypassword";
$dbName = "products";

/* Таблица MySQL, в которой хранятся данные */
$userstable = "clients";

/* email администратора */
$adminaddress = "administration@me.com";

/* создать соединение */
mysql_connect($hostname,$username,$ password) OR DIE("Не могу создать соединение ");
/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());

echo "<CENTER>";
echo "Привет, ".$_POST['name'];
echo "<BR><BR>";
echo "Спасибо за ваш интерес.<BR><BR>";
echo "Вас интересуют ".$_POST['preference'].". Информацию о них мы пошлем вам на email: ".$_POST['email'];
echo "</CENTER>";

/* Отправляем email-ы */
$subj = "Запрос на информацию";
$text = "Уважаемый ".$_POST['name']."!
Спасибо за ваш интерес!
Вас интересуют ".$_POST['preference']."
Мы их распространяем бесплатно.
Обратитесь в ближайший филиал нашей компании и получите ящик этого продукта.";
mail($_POST['email'], $subj, $text);

$subj="Поступил запрос на информацию";
$text = $_POST['name']." интересовали ".$_POST['preference']." email-адрес: ".$_POST['email'];
mail($adminaddress, $subj, $text);

/* составить запрос для вставки информации о клиенте в таблицу */
$query = "INSERT INTO $userstable VALUES('$name','$email', '$preference')";
/* Выполнить запрос. Если произойдет ошибка - вывести ее. */
mysql_query($query) or die(mysql_error());
echo "Информация о вас занесена в базу данных.";

/* Закрыть соединение */
mysql_close();
?>

допустим пример по яблокам. тут сразу ошибка на mysql_connect($hostname,$username,$ password) OR DIE("Не могу создать соединение "); как выбрать базу к какой подключаться? и сколько в моем задании нужно делать строк в скл базе?
Ast вне форума Ответить с цитированием
Старый 13.11.2011, 12:22   #3
Ast
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 117
По умолчанию

если пытаюсь подключиться через командную строку к sql прописывая путь:
E:\webservers\usr\local\mysql-5.1\bin\mysql.exe
пишет:
ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO)

какие команды есть для работы через командную строку? чтоб ввести пользователя и пароль, но если мы под root то он пустой и чтоб уже в sql выбрать саму базу данных которую создали в phpmyadmin.=(
Ast вне форума Ответить с цитированием
Старый 13.11.2011, 12:58   #4
artyom256
Новичок
Джуниор
 
Регистрация: 13.11.2011
Сообщений: 10
По умолчанию

попробуй так:
mysql.exe -u root
Но только, если у рута не стоит пароль.
==========
Только зачем на PHP к MySQL через командную строку подключаться?
Чем mysql_connect() не устраивает?

Последний раз редактировалось artyom256; 13.11.2011 в 13:01.
artyom256 вне форума Ответить с цитированием
Старый 13.11.2011, 13:15   #5
Ast
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 117
По умолчанию

оуууу спасибо огромнейшие) зашел, ну как бы для меня sql ново и хочется освоить все что он может.

a mysql_connect() что такое $hostname это путь к базе данных или имя базы? $username это понятно с паролем.
mysql_connect($hostname,$username,$ password) OR DIE("Не могу создать соединение ");
ну и основной вопрос остается.

Необходимо написать код, который выводит комментарии в виде иерархической структуры для указанного объекта (например, новости). Должна использоваться рекурсия. При этом разрешается выполнить только один sql-запрос. Так же следует учитывать, что в поле «c_obj_id» хранится ID объекта, к которому привязаны комментарии. Разрешается использовать только стандартные средства PHP.

Как и куда заносить эти данные?
Ast вне форума Ответить с цитированием
Старый 13.11.2011, 13:18   #6
artyom256
Новичок
Джуниор
 
Регистрация: 13.11.2011
Сообщений: 10
По умолчанию

$hostname - имя хоста, к которому коннектится твой скрипт. Если база данных находится на твоём компьютере, то задавай 'localhost' или '127.0.0.1'.
artyom256 вне форума Ответить с цитированием
Старый 13.11.2011, 13:21   #7
Ast
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 117
По умолчанию

спасибо большое, щас попробую.

а по

CREATE TABLE IF NOT EXISTS `comments` (
`c_id` int(11) NOT NULL AUTO_INCREMENT,
`c_parent_id` int(11) DEFAULT NULL,
`c_obj_id` int(11) NOT NULL,
`c_username` varchar(255) NOT NULL,
`c_email` varchar(255) NOT NULL,
`c_publ_date` datetime NOT NULL,
`c_text` text NOT NULL
PRIMARY KEY (`c_id`),
KEY `c_obj_id` (`c_obj_id`),
KEY `c_parent_id` (`c_parent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1;

можешь подсказать?
Ast вне форума Ответить с цитированием
Старый 13.11.2011, 13:30   #8
Ast
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 117
По умолчанию

под
mysql_connect($localhost,root) OR DIE("Не могу создать соединение ");
заходит)
ура ура ура)))))
Ast вне форума Ответить с цитированием
Старый 13.11.2011, 13:38   #9
Ast
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 117
По умолчанию

с этим примером про яблоки, создал базу products
выполняет скрипт и после всего выдает в браузере:

*текст*

Table 'products.clients' doesn't exist.

зашел в phpmyadmin в базе пусто. )=
Ast вне форума Ответить с цитированием
Старый 13.11.2011, 13:57   #10
Ast
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 117
По умолчанию

хм в базе дописал таблицы овощи в них:
1
Field id
Type INT
Length/Values 4
Default None
attributes UNSIGNED

2
Field text
Type VARCHAR
Length/Values 40
Default None
Collation utf8_general_ci

только выдает тоже самое в браузере:

*текст*

Table 'products.clients' doesn't exist.

и база не как не дополняется.

Последний раз редактировалось Ast; 13.11.2011 в 14:18.
Ast вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL и PHP. Клиентская часть. Mr_freeman Помощь студентам 0 28.10.2011 00:15
Посоветуйте литературу по PHP и SQL Web-Gangsta Свободное общение 1 05.04.2010 22:25
Проблема с выводом SQL в PHP easy-to-kill PHP 2 02.08.2009 14:57