Другие языки программирования и технологии
PHP и MySQL. Пишу вот такой код, как в книге написано, но не работает. В чем причина?
<?php include "config.php"; ---------------------------------Это ссылка за файл, где происходит подключение к серверу, и к БД. $ath = mysql_query("select * from city;"); -------Здесь (если не ошибаюсь) происходит выбор из таблицы "city" if($ath) { $author = mysql_fetch_array($ath); --------------Объясните что происходит здесь. echo "номер = ".$author['id']."<br>"; --------Если не ошибаюсь, "id, infa1, infa2" - это ссылки на поля в таблице? echo "пароль = ".$author['infa1']."<br>"; Зачем перед и после .$author['infa1']. стоят точки? echo "e-mail = ".$author['infa2']."<br>"; Почему содержимое echo не заключено в скобки? Это правильно? } else { echo "<p><b>Error: ".mysql_error()."</b></p>"; exit(); } ?>
$author = mysql_fetch_array($ath); --------------Объясните что происходит здесь. - записи из базы возвращаются в виде ассоциативного массива
echo "номер = ".$author['id'].""; --------Если не ошибаюсь, "id, infa1, infa2" - это ссылки на поля в таблице? - ну, можно сказать и ссылки, просто запросы через SELECT * FROM myTable не стоит писать, надо выдергивать только те данные, которые действитеьльно нужны, и дергать все поля без надобности тоже не стоит, при составлении сложных запросов где используются одновременно от 2-х таблиц, у вас база умрет, если вы будите все поля дергать. Пишите так: SELECT id,infa1,infa2 FROM city;
Точки, это конкатенация (склеивание) строки.
infa1, infa2 - учите сударь нормализацию баз данных, иначе будите использовать базы данных неправильно, как в данном примере. Так же не стоит писать на транслите.
echo "e-mail = ".$author['infa2'].""; Почему содержимое echo не заключено в скобки? Это правильно? - да, правильно, но тебе никто не запрещает писать так echo ("hello world"); либо так echo "Hello world";
echo "номер = ".$author['id'].""; --------Если не ошибаюсь, "id, infa1, infa2" - это ссылки на поля в таблице? - ну, можно сказать и ссылки, просто запросы через SELECT * FROM myTable не стоит писать, надо выдергивать только те данные, которые действитеьльно нужны, и дергать все поля без надобности тоже не стоит, при составлении сложных запросов где используются одновременно от 2-х таблиц, у вас база умрет, если вы будите все поля дергать. Пишите так: SELECT id,infa1,infa2 FROM city;
Точки, это конкатенация (склеивание) строки.
infa1, infa2 - учите сударь нормализацию баз данных, иначе будите использовать базы данных неправильно, как в данном примере. Так же не стоит писать на транслите.
echo "e-mail = ".$author['infa2'].""; Почему содержимое echo не заключено в скобки? Это правильно? - да, правильно, но тебе никто не запрещает писать так echo ("hello world"); либо так echo "Hello world";
В генетическом коде причина.
Что значит "не работает"? Компьютер не работает? Так включи его в сеть. Монитор не работает? Кнопочку сбоку нажми. Веб-сервер не работает? Запусти. Что именно не работает? Что пишет? Тут телепатов нет.
mysql_query возвращает данные в неприспособленном для PHP виде, mysql_fetch_array разбивает их в ассоциативный массив.
Оператор . означает конкатенацию (сращение) строк. Т. е. "a"."b"=>"ab".
Оператор echo не требует скобок.
Что значит "не работает"? Компьютер не работает? Так включи его в сеть. Монитор не работает? Кнопочку сбоку нажми. Веб-сервер не работает? Запусти. Что именно не работает? Что пишет? Тут телепатов нет.
mysql_query возвращает данные в неприспособленном для PHP виде, mysql_fetch_array разбивает их в ассоциативный массив.
Оператор . означает конкатенацию (сращение) строк. Т. е. "a"."b"=>"ab".
Оператор echo не требует скобок.
Олег Баймурзин
Я и не требую от вас телепатических способностей. Все ясно написал. ЭТОТ КОД НЕ РАБОТАЕТ.
Насколько я понял, он должен выводить информацию из таблицы БД, но не делает этого.
Об ошибках тоже не пишет.
Сервер работает. При подключениеи к серверу и БД, ошибок нет.
Насколько я понял, он должен выводить информацию из таблицы БД, но не делает этого.
Об ошибках тоже не пишет.
Сервер работает. При подключениеи к серверу и БД, ошибок нет.
Хорошо разбираться хоть чуть-чуть в языке (или книгу нормальную брать, где это рассказано) , прежде чем лезть в дебри. В конце концов можно проверять поэтапно (есть такой термин отладка, для любого языка применяется) . Еще желательно привести код из загадочного config. php, предварительно удалив оттуда логин и пароль.
Этап 1:
Подключение к БД, которое должно быть в загадочном config.
try { - это слово говорит о проверке на правильность.
$db = mysql_connect("сервер","логин","пароль"); //подключение к БД
mysql_select_db("city" ,$db); //Выбор таблицы
echo "успешно"; //от себя добавил
} catch { //Если действие не удалось
echo "не успешно"; //от себя добавил
}
Запускаем такой код:
< ?php
include "config. php";
? >
Если все нормально и выводит "успешно", то поехали дальше. Если нет, то подключение к БД не удалось.
Этап 2.
$ath = mysql_query("select * from city;"); //запрос к таблице
if($ath) {
//Удачно
} else {
//Ошибка выборки данных, вывод ошибки
echo mysql_error();
}
Если и тут ошибки нет, то идем дальше.
3. Этап.
$author = mysql_fetch_array($ath); //выводим данные запроса в массив
Дальше вывод этих данных.
echo "номер = ".$author['id']."";
Где id, infa1, infa2 названия столбцов. Точки означают объединение строк и называется конкатенация (учите строки) . Скобки при выводе echo не нужны.
4. Желательно закрывать подключение к базе по завершению. всех необходимых операций с базой.
mysql_close($db);
Этап 1:
Подключение к БД, которое должно быть в загадочном config.
try { - это слово говорит о проверке на правильность.
$db = mysql_connect("сервер","логин","пароль"); //подключение к БД
mysql_select_db("city" ,$db); //Выбор таблицы
echo "успешно"; //от себя добавил
} catch { //Если действие не удалось
echo "не успешно"; //от себя добавил
}
Запускаем такой код:
< ?php
include "config. php";
? >
Если все нормально и выводит "успешно", то поехали дальше. Если нет, то подключение к БД не удалось.
Этап 2.
$ath = mysql_query("select * from city;"); //запрос к таблице
if($ath) {
//Удачно
} else {
//Ошибка выборки данных, вывод ошибки
echo mysql_error();
}
Если и тут ошибки нет, то идем дальше.
3. Этап.
$author = mysql_fetch_array($ath); //выводим данные запроса в массив
Дальше вывод этих данных.
echo "номер = ".$author['id']."";
Где id, infa1, infa2 названия столбцов. Точки означают объединение строк и называется конкатенация (учите строки) . Скобки при выводе echo не нужны.
4. Желательно закрывать подключение к базе по завершению. всех необходимых операций с базой.
mysql_close($db);
Олег Баймурзин
Большое спасибо. Ошибку нашел. Данный код работает исправно, и подключение было нормальным.
Ошибка оказалась в загадочном файле "config. php". В конце файла стояла инструкция "exit();", которая все вырубала.
Ошибка оказалась в загадочном файле "config. php". В конце файла стояла инструкция "exit();", которая все вырубала.
Похожие вопросы
- зачем учить php и mysql когда есть cms вроде joomla wordpess?
- Какие знания необходимо иметь для того, чтобы создать нормальный скрипт для сайта на базе PHP и MySQL?
- php и mysql
- php и mysql
- Посоветуйте хостинг с php и mysql
- Посоветуйте бесплатный хостинг с php и mysql и нормальным доменом 3-его уровня и что бы место было по больше
- php и mysql Разбираетесь? Нужна ваша помощь в срочном порядке)
- Купил домен. Посоветуйте надежный бесплатный хостинг, желательно без рекламы, с поддержкой php и mysql.
- я новичок в этом деле, например я создал динамичный сайт (php, html, MySQL, JavaScript...)
- Напишите код для visual basic 6 чтоб калькулятор работал в режим deg и rad ли напишите эту функцию
Это допустимо?