Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: PHP не хочет проверять результат mysql_query();
 
 автор: Lenux   (30.07.2005 в 10:31)   письмо автору
 
 


<?php
$a
=mysql_query('SELECT * FROM table');
if(
$a) { echo "Есть результаты"; } else {echo "нет результатов";}
?>

Мне не понятно почему эта конструкция не работает :(, а использовать всякие mysql_fetch_array на мой взгляд не рационально.
Букваольно надо, что бы $a в случае если данные есть, то вернула TRUE, а если нет, то FALSE.

   
 
 автор: idborn   (30.07.2005 в 10:59)   письмо автору
 
   для: Lenux   (30.07.2005 в 10:31)
 

объясните поподробнее, как она у вас н работает?.. возвращает всегда false или что?

   
 
 автор: And200   (30.07.2005 в 11:59)   письмо автору
 
   для: Lenux   (30.07.2005 в 10:31)
 

То, что вы написали не имеет смысла, без подключения к базе данных.
Или Вы опустили Config.php?

   
 
 автор: cheops   (30.07.2005 в 12:04)   письмо автору
 
   для: Lenux   (30.07.2005 в 10:31)
 

Присоединяюсь к вопросу idborn, как выглядит "не работа"? Использование функции mysql_fetch_array() происходит уже после того, как корректно отработала функция mysql_query(), поэтому пока она не работает использовать её действительно не рационально.
Попробуйте вывести последную ошибку при помощи функции mysql_error()
<?php 
$a 
mysql_query('SELECT * FROM table'); 
if(
$a)
{
  echo 
"Есть результаты";
}
else
{
  echo 
"нет результатов<br>";
  exit(
mysql_error());

?>

PS Вопросы, посвящённые MySQL лучше сразу задавать в соответствующем разделе http://www.softtime.ru/forum/index.php?id_forum=3

   
 
 автор: Коляка   (31.07.2005 в 19:15)   письмо автору
 
   для: cheops   (30.07.2005 в 12:04)
 

Здравствуйте, не знаю по теме ли я пишу, но у меня проблема наподобе : пытаюсь писать гостевую книгу по образцу книги "Самоучитель php 5" авторов Кузнецов М. и Симдянов И. стр.377 отпечатал 3 файла addrec,config,index сделал бд как написано ,запускаю а там ->

"Parse error: syntax error, unexpected T_VARIABLE in D:\main\html\guest\config.php on line 7"

проверяю config.php там в строке 7 ->
$dbcnx = @mysql_connect($dblocation,$dbuser,dbpasswd);

думаю что с бд не может соедениться, что это может быть?

   
 
 автор: cheops   (31.07.2005 в 20:58)   письмо автору
 
   для: Коляка   (31.07.2005 в 19:15)
 

Посмотрите не пропущена ли точка с запятой у предыдущего оператора. Вообще перебирать код гостевой книге не обязательно, можно воспользоваться уже готовым кодом этой гостевой из раздела downloads

http://www.softtime.ru/info/gbmysql.php

   
 
 автор: Коляка   (31.07.2005 в 22:56)   письмо автору
 
   для: cheops   (31.07.2005 в 20:58)
 

спасибо нашел ошибки, исправил перезапустил и вот -> не хочет работать mysql

   
 
 автор: cheops   (31.07.2005 в 23:06)   письмо автору
 
   для: Коляка   (31.07.2005 в 22:56)
 

Чего пишет?

   
 
 автор: Коляка   (31.07.2005 в 23:59)   письмо автору
 
   для: cheops   (31.07.2005 в 23:06)
 

как я понимаю это при неудачной попытки соединиться с бд , пишет -> "В настоящий момент сервер базы данных не доступен, поэтому кoрректное отображение страницы не доступно" .... -> т.к. в коде это предусмотренно:

$dbcnx = @mysql_connect($dblocation,$dbuser,dbpasswd);
if (!$dbcnx)
{
echo( "<p> В настоящий момент сервер базы данных не доступен, поэтому кoрректное отображение страницы не доступно </p>");
exit();
}

if (!@mysql_select_db($dbname,$dbcnx) )
{
echo ("<p> В настоящий момент сервер базы данных не доступен, поэтому кoрректное отображение страницы не доступно </p>");
exit();
}

а вот почему не может, вариантов наверное много.... я думаю что у меня бд плохо была настроена при установке........

   
 
 автор: cheops   (01.08.2005 в 00:32)   письмо автору
 
   для: Коляка   (31.07.2005 в 23:59)
 

>как я понимаю это при неудачной попытки соединиться с бд , пишет -> "В
>настоящий момент сервер базы данных не доступен, поэтому кoрректное
>отображение страницы не доступно" .... -> т.к. в коде это предусмотренно:
Да, у вас выводится эта надпись?

   
 
 автор: Коляка   (01.08.2005 в 06:23)   письмо автору
 
   для: cheops   (01.08.2005 в 00:32)
 

Да так он и выводит эту надпись, только я н знаю по какой причине: при попытке соединиться с сервером бд или с самой бд,

   
 
 автор: Коляка   (01.08.2005 в 06:24)   письмо автору
 
   для: cheops   (01.08.2005 в 00:32)
 

Да так он и выводит эту надпись, только я н знаю по какой причине: при попытке соединиться с сервером бд или с самой бд,

   
 
 автор: HoLsT   (01.08.2005 в 10:30)   письмо автору
 
   для: Коляка   (01.08.2005 в 06:24)
 

Коляка. А у тебя пароль почему не как переменная, а неизвестно что. Если проблема не в этом то извиняюсь.

   
 
 автор: cheops   (01.08.2005 в 12:19)   письмо автору
 
   для: HoLsT   (01.08.2005 в 10:30)
 

А да действительно, вместо $dbpasswd используется dbpasswd.

   
 
 автор: Ziq   (01.08.2005 в 06:54)   письмо автору
 
   для: Lenux   (30.07.2005 в 10:31)
 

Вообще в этой конструкции нет логики потому, что даже если в таблице не будет результатов он должен вернуть true. для определения есть результаты или нет мохно воспользоваться mysql_num_rows(), или тем же mysql_fetch_array().

   
 
 автор: Коляка   (01.08.2005 в 18:46)   письмо автору
 
   для: Ziq   (01.08.2005 в 06:54)
 

Дело было действительно в $dbpasswd, но все равно что то не так сообщение не добавляеться ->

//запрос к базе данных на добавление сообщения
$query = "inset into quest values
(0,'$name','$city','$email','$url','$msg','-',now(),0;";
if(mysql_query($query))
{
print "<HTML><HEAD>\n";
print "<META HTTP-EQUIV = 'Refresh' CONTENT = '0; URL = index.php'>\n";
print "</HEAD></HTML>\n";
exit ();
}
else
{
echo "<a href = 'index.php'>Вернуться</a>";
echo("<p>Ошибка при добавлении сообщения</p>");
echo ("<p>$query</p>");
exit();


у меня выдаёт ->

Вернуться

Ошибка при добавлении сообщения

inset into quest values (0,'коляка ',' ','latina23@mail.ru ',' ','','-',now(),0;


что это может быть?

----> прошу меня простить за может быть банальные вопросы , но я только ещё начинаю в этой сфере и мне многое интерестно<----

   
 
 автор: cheops   (01.08.2005 в 18:55)   письмо автору
 
   для: Коляка   (01.08.2005 в 18:46)
 

Нет завершающей круглой скобки в SQL-запросе, т.е. вместо
inset into quest values (0,'коляка ',' ','latina23@mail.ru ',' ','','-',now(),0;

следует писать
inset into quest values (0,'коляка ',' ','latina23@mail.ru ',' ','','-',now(),0);


----> прошу меня простить за может быть банальные вопросы , но я только ещё начинаю в этой сфере и мне многое интерестно<----
Вы можете задавать столько вопросов, сколько вам потребуется для того, чтобы разобраться в проблеме - у нас нет ограничений :))), постараемся ответить на все.

   
 
 автор: Коляка   (01.08.2005 в 19:57)   письмо автору
2.9 Кб
 
   для: Коляка   (01.08.2005 в 18:46)
 

выводит ошибку почти такую же только теперь со скобкой ->

Вернуться

Ошибка при добавлении сообщения

inset into quest values (0,'коляка','петрозаводск','latina23@mail.ru','http://www.ruart.nm.ru','','-',now(),0);

может я не правильно таблицу в mysql пострил

   
 
 автор: Коляка   (01.08.2005 в 20:19)   письмо автору
 
   для: Коляка   (01.08.2005 в 19:57)
 

phpMyAdmin выдает внизу страницы такую фразу может дело в ней -->>

The mbstring PHP extension was not found and you seem
to be using multibyte charset. Without mbstring extension
phpMyAdmin is unable to split strings correctly
and it may result in unexpected results.

mbstring PHP расширение не был найден, и Вы, кажется,
используете мультибайт charset. Без mbstring расширения
phpMyAdmin неспособен расколоть вереницы правильно,
и это может кончиться неожиданными результатами.

-- может ли это быть проблемой....

   
 
 автор: Коляка   (01.08.2005 в 20:19)   письмо автору
 
   для: Коляка   (01.08.2005 в 19:57)
 

прошу прощения , но я из-за плохой связи отправил 6 одинаковых сообщении я их исправил на точки чтоб не захламлять окно ......

   
 
 автор: Коляка   (01.08.2005 в 20:20)   письмо автору
 
   для: Коляка   (01.08.2005 в 19:57)
 

.

   
 
 автор: Коляка   (01.08.2005 в 20:20)   письмо автору
 
   для: Коляка   (01.08.2005 в 19:57)
 

.

   
 
 автор: Коляка   (01.08.2005 в 20:20)   письмо автору
 
   для: Коляка   (01.08.2005 в 19:57)
 

.

   
 
 автор: Коляка   (01.08.2005 в 20:20)   письмо автору
 
   для: Коляка   (01.08.2005 в 19:57)
 

.

   
 
 автор: cheops   (01.08.2005 в 22:44)   письмо автору
 
   для: Коляка   (01.08.2005 в 19:57)
 

Выведите в блоке else ещё комментарий к ошибке при помощи функции mysql_error()
<?php
  
echo mysql_error();
?>

   
 
 автор: Коляка   (02.08.2005 в 06:52)   письмо автору
 
   для: cheops   (01.08.2005 в 22:44)
 

получилось вот это -->

Вернуться

Ошибка при добавлении сообщения

inset into quest values (0,'коляка','петрозаводск','latina23@mail.ru','http://www.ruart.nm.ru','','-',now(),0);

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'inset into quest values (0,'коляка','петрозаводск','latina23@mail.ru' at line 1

перевод:

Вы имеете ошибку в вашем SQL синтаксисе; проверьте руководство, которое соответствует вашей MySQL версии сервера для правильного синтаксиса, чтобы использовать около 'вставки в ценности поисков (0, ' коляка,'' петрозаводск,'' latina23@mail.ru' на линии 1

   
 
 автор: holst   (02.08.2005 в 08:14)   письмо автору
 
   для: Коляка   (02.08.2005 в 06:52)
 

Мне кажется у тебя проблема с одинарными и двойными кавычками в запросе, которые разделяют втавочные данные. Попробуй поставить пробелы после каждой запятой и в пустых столбцах (это кстати упрощает читабельность кода).

И еще не знаю правильно ли это, но я бы функцию now() засунул в какую-нибудь переменную. до формирования запроса.

$now=now();

$query=inset into quest values (0, 'коляка' ,'петрозаводск', 'latina23@mail.ru', 'http://www.ruart.nm.ru', ' ', '-', '$now', 0);

Если ошибка все равно появляется, то проверь типы данных в таблице.

   
 
 автор: Коляка   (02.08.2005 в 20:31)   письмо автору
 
   для: holst   (02.08.2005 в 08:14)
 

попробовал изменить на -->

$query=inset into quest values (0, 'коляка' ,'петрозаводск', 'latina23@mail.ru', 'http://www.ruart.nm.ru', ' ', '-', '$now', 0);

не получаеться выдает много ошибок..........

   
 
 автор: Loki   (02.08.2005 в 11:16)   письмо автору
 
   для: Коляка   (02.08.2005 в 06:52)
 

>Ошибка при добавлении сообщения

А можно выложить структуру БД? У вас путаницы с типами полей нет?

   
 
 автор: Коляка   (02.08.2005 в 20:38)   письмо автору
 
   для: Loki   (02.08.2005 в 11:16)
 

прикрепил скрин бд, я думаю что я там что то не так сделал -->

   
 
 автор: cheops   (02.08.2005 в 13:15)   письмо автору
 
   для: Коляка   (02.08.2005 в 06:52)
 

Ошибка в операторе INSERT - пропущена буква r.
inset into quest values (0,'коляка','петрозаводск','latina23@mail.ru','http://www.ruart.nm.ru','','-',now(),0);

   
 
 автор: Коляка   (02.08.2005 в 20:28)   письмо автору
 
   для: cheops   (02.08.2005 в 13:15)
 

исправил спасибо теперь работает почти все, не показывает только текст сообщения

   
 
 автор: cheops   (02.08.2005 в 21:27)   письмо автору
 
   для: Коляка   (02.08.2005 в 20:28)
 

Приведите пожалуйста участок кода, который выводит сообщение.

PS Если не сложно, давайте под это новую тему заведём, а то эта уже слишком длинная.

   
 
 автор: Коляка   (02.08.2005 в 22:05)   письмо автору
 
   для: cheops   (02.08.2005 в 21:27)
 

согласен.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования