SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 09.02.2014 02:55:56

Infinity
Участник
Зарегистрирован: 09.02.2014
Сообщений: 16

Начинающий.

Всем приятного времени суток.
Решил изучить MySQL и понятное дело сразу возникают вопросы , с вашего разрешения попрошу добрых людей подсказать в чем ошибка или просто оптимизировать коды.  Уж будьте снисходительны smile к новичку. Я так подозреваю у меня вопросов будет много, поэтому создам свою ветку.

Собственно вопрос такой. (нет соединения с базой данных) Решил на страничке http://fh38090a.bget.ru/My_pages/coment.php  реализовать коментарий с использованием базы данных MySQL.
Правильно ли мой подход при построении коментария на страничке.
1. на страничке реализуем форму (Имя,идентификатор_коментария, коментарий, ) .( Назвал coment.php)
2. отдельно обработчик формы ( я назвал my_coment.php)
   Здесь  обращаюсь к базе данных для внесения коментария
   mysqli = new mysqli("localhost", "имя пользователя", "пароль", "имя таблицы")
   mysqli->query("INSERT INTO `My_comments` (`name`, `page_id`, `text_comment`) VALUES ('$name', '$page_id', '$text_comment')")
3. На страничке, где форма ( coment.php) подключаюсь к базе данных  MySQL
    mysqli = new mysqli("localhost", "имя пользователя", "пароль", "имя таблицы")
что бы вывести коментарии какие есть в таблице(хотя там нету ни одного коментария пока)
....
но дальше не зашел, так как выпадает сообщение "Не удалось подключиться к MySQL: (1044) Access denied for user 'fh38090a_a'@'localhost' to database 'My_comments' "
что я не так сделал?

И , кстати как понимать выражение mysqli->query, конкретно что значит знак ->


Ищу команду

Неактивен

 

#2 09.02.2014 02:59:50

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Начинающий.

mysqli = new mysqli("localhost", "имя пользователя", "пароль", "имя таблицы")

вместо "имя таблицы" нужно "имя базы данных"

Неактивен

 

#3 09.02.2014 03:11:32

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Начинающий.

Infinity написал:

И , кстати как понимать выражение mysqli->query, конкретно что значит знак ->

Это оператор, использующийся для доступа к методам объектов в PHP.

Почитайте Энди Харрис "PHP/MySQL для начинающих".

Неактивен

 

#4 09.02.2014 03:12:24

Infinity
Участник
Зарегистрирован: 09.02.2014
Сообщений: 16

Re: Начинающий.

Правила говорят
mysqli = new mysqli("localhost", "user", "password", "database");
у меня написано
$mysqli = new mysqli("localhost", "fh38090a_a", "7пароль7", "fh38090a_a");
Насервере в правилах указано: Имя пользователя совпадает с именем БД, так что кажется я правильно написал.

Книгу найду обязательно почитаю

Отредактированно Infinity (09.02.2014 03:12:57)


Ищу команду

Неактивен

 

#5 09.02.2014 03:18:03

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Начинающий.

Судя по ошибке "Не удалось подключиться к MySQL: (1044) Access denied for user 'fh38090a_a'@'localhost' to database 'My_comments' "
вместо имени базы "fh38090a_a" вы использовали имя таблицы "My_comments"

Неактивен

 

#6 09.02.2014 03:23:01

Infinity
Участник
Зарегистрирован: 09.02.2014
Сообщений: 16

Re: Начинающий.

Ок сижу ковыряюсь smile


Ищу команду

Неактивен

 

#7 11.02.2014 00:46:56

Infinity
Участник
Зарегистрирован: 09.02.2014
Сообщений: 16

Re: Начинающий.

Тянет дед репку тянет никак не вытянет smile. Тото и я сижу,  то с одной стороны зайду, то с другой а репкаMySqL какая-то круглая и тяжелая.
Книгу Энди Харрис "PHP/MySQL для начинающих" нашел в Дежавю формате - жирная,... почти 400 страниц - читать долго, быть может  работу стоит вести паралельно, немного книгу читать и страничку ваять.
Нашел несколько Инет страничек про MySQL - но они заумно пишут не могу нить вцепить. Как бы понятно, но ....
Тогда я понемногу буду вопросы закидать может за месячишко придет свет. Ведь наверняка MySQL не сложнее Html. Html я на 5 с минусом знаю smile
можно я начну с простого а кто свободен ответить буду благодарен.
Вопрос 1. Обновление.  Встретил информацию "Если вы работаете с сервером MySQL 4.1.3 или более поздних версий, настоятельно рекомендуется использовать расширение mysqli. "
стоит ли обращать внимание как писать коды новые или старые , к примеру читать книгу для новичков Энди Харриса, а окажется что те коды уже не работают?

Вопрос 2. PhpAdmin.На форуме  встретил, что не стоит пользоваться. Я для начала на бесплатном хостинге тренируюсь, есть там админ, ну присматриваюсь, просто новая вещь в чем его недостатки?
http://fh38090a.bget.ru/1/001.png


Ищу команду

Неактивен

 

#8 11.02.2014 01:17:47

Infinity
Участник
Зарегистрирован: 09.02.2014
Сообщений: 16

Re: Начинающий.

Вопрос. Текст на русском Чтобы работать с базой данных, наверное это надо для себя четко понимать, что этим хотят сказать: "
Что такое API?

Интерфейс программирования приложений, или API, определяет набор классов, методов, функций и переменных, которые можно вызывать из вашего приложения для выполнения поставленных задач. Применительно к PHP приложениям, которые должны взаимодействовать с базами данных, необходимые для этого API, как правило, представлены PHP расширениями.

API могут быть процедурными или объектно-ориентированными. При использовании процедурных API вы вызываете функции для выполнения каких-либо операций, а в случае объектно-ориентированных вы инстанцируете классы и затем вызываете методы созданных объектов. Второй подход, обычно, предпочтительнее, так как он более современный и способствует написанию более организованного кода.
"
http://fh38090a.bget.ru/forum/002.png


Ищу команду

Неактивен

 

#9 11.02.2014 13:54:50

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Начинающий.

Infinity написал:

Вопрос 1. Обновление.  Встретил информацию "Если вы работаете с сервером MySQL 4.1.3 или более поздних версий, настоятельно рекомендуется использовать расширение mysqli. "
стоит ли обращать внимание как писать коды новые или старые , к примеру читать книгу для новичков Энди Харриса, а окажется что те коды уже не работают?

Посмотрите эту статью
PHP: критика перехода с оригинального API MySQL на mysqli и PDO


Infinity написал:

Вопрос 2. PhpAdmin.На форуме  встретил, что не стоит пользоваться. Я для начала на бесплатном хостинге тренируюсь, есть там админ, ну присматриваюсь, просто новая вещь в чем его недостатки?

Свои настройки кодировок, длины запроса, таймаута, пароля и т.д. Не все очевидны. столкнувшись с ошибкой придется определять то ли это в mysql, то ли пхпадмин подгадил.
Лучше пользоваться родными клиентами, которые предлагает MySQL
http://dev.mysql.com/downloads/tools/

Неактивен

 

#10 11.02.2014 14:00:31

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Начинающий.

http://fh38090a.bget.ru/forum/002.png
Это работа с базой через процедурный API MySQL mysqli

P.S. Рекомендую посмотреть FAQ и статьи представленные на сайте (их не много)

Неактивен

 

#11 11.02.2014 14:07:10

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Начинающий.

Кстати, раз вы mysql изучаете с php, то вам очень полезна будет статья Удобные функции PHP для работы с MySQL
да и прочие на http://webew.ru/mysql/ (частично пересекаются с теми, что на этом сайте, но есть ряд имеющих отношение к mysql в php)

Неактивен

 

#12 12.02.2014 13:03:23

Infinity
Участник
Зарегистрирован: 09.02.2014
Сообщений: 16

Re: Начинающий.

Статьи почти понятны. Но немного надо определится с грамматикой кодов. Я решил писать страничку используя html, php и ...+ MySql - коды
Я пока теряюсь в розграничении гда php, а где  MySql- коды,
к примеру
http://fh38090a.bget.ru/forum/003.png
или же это как раз и есть наш АРI, к которому надо привыкнуть и понимать, т.е. это комплекс php  и MySql вместе?


Ищу команду

Неактивен

 

#13 12.02.2014 13:10:53

Infinity
Участник
Зарегистрирован: 09.02.2014
Сообщений: 16

Re: Начинающий.

Что бы уж совсем просто. Сама идея базы данных, как бы проста.

1. Пользователь через форму ввел данные.
2. Дальше вот база данных "Имя", должно быть там файлик с упорядоченными данными.
3. Вот команда вставить INSERT данные.
    Вот команда извлечь SELECT данные.
4. Данные, понятно, какие хочешь могут быть; цыфра, текст...
5. Вывел данные на страничку сайта.

Все просто, а наворотили, сразу и не поймешь smile


Ищу команду

Неактивен

 

#14 12.02.2014 13:19:24

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Начинающий.

Infinity написал:

Все просто, а наворотили, сразу и не поймешь smile

Рад, что вы разобрались smile

Неактивен

 

#15 12.02.2014 13:22:06

Infinity
Участник
Зарегистрирован: 09.02.2014
Сообщений: 16

Re: Начинающий.

Возвращаясь к моей цели "Коментарии"
А вообще путь, что бы четче понимать, что я делаю, т.е. алгоритм.
1. Пользователь вводит в форме текст --- textarea name="text"
2. С формы передается в php-обработчик формы значение --- "text"
3. php принимает, присваивает новую переменную --- $text = $_POST["text"]
4. Эту переменную надо положить в базу данных, это уже комбинация php  и MySql (он же АРI ) --- $mysqli->query("INSERT...VALUES ...$text.." )
5. Если есть данные коментариев, надо извлечь из базы банных
http://fh38090a.bget.ru/forum/004.png
6. Вывод на страничку php код --- print ($text2)

Должны быть правильные рассуждения с грамматикой пока туго smile

Отредактированно Infinity (12.02.2014 15:45:31)


Ищу команду

Неактивен

 

#16 12.02.2014 13:31:20

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Начинающий.

Не, и красное и синее это php код.

Неактивен

 

#17 12.02.2014 14:46:21

Infinity
Участник
Зарегистрирован: 09.02.2014
Сообщений: 16

Re: Начинающий.

А вот так правильно, да?
http://fh38090a.bget.ru/forum/005.png


Ищу команду

Неактивен

 

#18 12.02.2014 14:51:37

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Начинающий.

query это точно php rод, а вот про select .. можно сказать, что это:
1. mysql код - в том смысле что эту команду будет выполнять сервер MySQL
2. php код, так как это всего лишь текстовая строка с скрипте php.

Неактивен

 

#19 12.02.2014 15:01:05

Infinity
Участник
Зарегистрирован: 09.02.2014
Сообщений: 16

Re: Начинающий.

От йолы , думал php код это все что со знаком доллара $, а query - это запрос  MySql,
ок значит правильно будет вот так )
http://fh38090a.bget.ru/forum/006.png


Ищу команду

Неактивен

 

#20 12.02.2014 15:09:31

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Начинающий.

Со знака $ начинаются переменные в php.
Называйте все, что в файле .php кодом php.

Неактивен

 

#21 12.02.2014 15:41:35

Infinity
Участник
Зарегистрирован: 09.02.2014
Сообщений: 16

Re: Начинающий.

vasya написал:

2. php код, так как это всего лишь текстовая строка с (здесь наверное *в) скрипте php.

то есть , даже так
http://fh38090a.bget.ru/forum/007.png

А что же тогда, конкретно, MySql?
Нашел, цитата: "MySQL – это программа-сервер, постоянно работающая на компьютере. Клиентские программы (например, сценарии) посылают ей специальные запросы через механизм сокетов (то есть при помощи сетевых средств), она их обрабатывает и запоминает результат. Затем, также по специальному запросу клиента, весь этот результат или его часть передается обратно. "
Сказано, как  "программа-сервер" - программа это буковки, коды; сервер -это железяки.
"Клиентские программы (например, сценарии)" - это мои php-коды
запросы через механизм сокетов - это вообще електрические цепи, передача цифрового сигнала через разъемчики )

-А по 'русски', это что? Отдельно стоящий сервер со своими файлами, куда обращаются мои php-коды smile

Тогда,  к примеру, вот это все это чиcтый php c запросами к "Чему то там" ( базе данных MySQl )

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;


ведь правильно?

Отредактированно Infinity (12.02.2014 15:42:07)


Ищу команду

Неактивен

 

#22 12.02.2014 16:04:46

Infinity
Участник
Зарегистрирован: 09.02.2014
Сообщений: 16

Re: Начинающий.

Эх, на работу пора (
Пойду чайку попью
http://fh38090a.bget.ru/forum/008.png

Отредактированно Infinity (12.02.2014 16:05:08)


Ищу команду

Неактивен

 

#23 12.02.2014 17:31:02

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Начинающий.

Infinity написал:

Сказано, как  "программа-сервер" - программа это буковки, коды; сервер -это железяки.

Например, лист бывает бумажный формата А4, а бывает на дереве дубовый. Так же и сервер это не только железо.
Погуглите "клиент-серверная архитектура".

Infinity написал:

Тогда,  к примеру, вот это все это чиcтый php c запросами к "Чему то там" ( базе данных MySQl )

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;

Да.

Неактивен

 

#24 19.02.2014 15:01:15

Infinity
Участник
Зарегистрирован: 09.02.2014
Сообщений: 16

Re: Начинающий.

Сначала был день первый smile
Чтобы сказать на страничке «-Привет!»,
Достаточно написать тег <p>-Привет! <-p>


  Но чтобы сказать «-Привет» через окошко комментария
Надо понять, что такое функция, процедура, обьектно-ориентированное программирование , класс, свойства и методы smile и … тому подобные красивые фразы: интерфейс программирования приложений, или API, коннектор, драйвер … Енштейн smile

Если создавать страничку сайта на php + MySql, то сайт php.net как бы задает правила написания страничек в частности сказано:

http://www.php.net/manual/ru/mysqli.overview.php
Если вы работаете с сервером MySQL 4.1.3 или более поздних версий, настоятельно рекомендуется использовать расширение mysqli.

Дальше по тексту 
http://www.php.net/manual/ru/mysqli.qui … erface.php
Цитата:«Расширение mysqli предоставляет двойной интерфейс программисту.
Поддерживаются как процедурная, так и объектно-ориентированная парадигмы программирования.
……
Примеры в этом руководстве будут написаны в объектном стиле в виду того, что объектному подходу отдавалось предпочтение при создании документации.»

   
   Хотелось бы понять, в чем принципиальное отличие между процедурным стилем программирования и объектно-ориентированным стилем  программирования на примере.
   
   Книга (php.net) говорит:
«API могут быть процедурными или объектно-ориентированными.

  При использовании процедурных API вы вызываете функции для выполнения каких-либо операций,
   а в случае объектно-ориентированных вы инсталлируете классы и затем вызываете методы созданных объектов. Второй подход, обычно, предпочтительнее, так как он более современный и способствует написанию более организованного кода. »

Отредактированно Infinity (19.02.2014 15:05:03)


Ищу команду

Неактивен

 

#25 19.02.2014 15:04:21

Infinity
Участник
Зарегистрирован: 09.02.2014
Сообщений: 16

Re: Начинающий.

Структура (как себе представляю;  что объект - таблица это еще бабка надвое гадала )
http://fh38090a.bget.ru/forum/objekt.jpg


Ищу команду

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson