Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите разобраться с выводом данных из переменной в базу данных

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
n0nsence
Отправлено: 07 Марта, 2017 - 16:07:46
Post Id


Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




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

Вот так скрипт работает:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $my_date = $_POST['my_date'];
  4.  
  5. function bl1 () {
  6. $connection = mysql_connect ("localhost", "root", "");
  7. $db = mysql_select_db ("test");
  8. $result = mysql_query (" SELECT mark FROM prov WHERE date = '07.03.17' AND block_num = '1' ");
  9.  
  10. $row = mysql_fetch_array($result);
  11. $my_color = $row["mark"];
  12.  
  13. if ($my_color == 55):
  14.     echo "green";
  15. elseif ($my_color == 70):
  16.     echo "blue";  
  17. elseif ($my_color == 60):
  18.     echo "red";  
  19. else:
  20.     echo "Нихера!";
  21. endif;
  22.  
  23. }
  24. bl1();
  25. ?>


А вот так нет
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $my_date = $_POST['my_date'];
  4.  
  5. function bl1 () {
  6. $connection = mysql_connect ("localhost", "root", "");
  7. $db = mysql_select_db ("test");
  8. $result = mysql_query (" SELECT mark FROM prov WHERE date = '$my_date' AND block_num = '1' ");
  9.  
  10. $row = mysql_fetch_array($result);
  11. $my_color = $row["mark"];
  12.  
  13. if ($my_color == 55):
  14.     echo "green";
  15. elseif ($my_color == 70):
  16.     echo "blue";  
  17. elseif ($my_color == 60):
  18.     echo "red";  
  19. else:
  20.     echo "Нихера!";
  21. endif;
  22.  
  23. }
  24. bl1();
  25. ?>


Во втором варианте в запросе в коде указанна переменная которая взята из формы. При попытке вывести эту переменную на экран она работает нормально, то есть выводится корректно.

При попыте поставить вот этот код в кавычках (хотя в первом варианте работает и без)
PHP:
скопировать код в буфер обмена
  1. $result = mysql_query (" SELECT mark FROM prov WHERE date = '07.03.17' AND block_num = '1' ");
  2.  

Начинает ругать и вот что выводит
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\OpenServer\OpenServer\domains\localhost\form\new.php on line 11


Заранее спасибо!
(Добавление)
Все разобрался)

(Отредактировано автором: 07 Марта, 2017 - 16:16:53)

 
 Top
haveFun
Отправлено: 07 Марта, 2017 - 17:21:05
Post Id



Гость


Покинул форум
Сообщений всего: 102
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




$result = mysql_query ('SELECT mark FROM prov WHERE date = "' . $my_date . '" AND block_num = 1');
а вообще даты хранятся в бд в формате 2017-03-07
$date = (new DateTime('07.03.17'))->format('Y-m-d');
$date = (new DateTime($my_date))->format('Y-m-d');
 
 Top
n0nsence
Отправлено: 07 Марта, 2017 - 17:42:52
Post Id


Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




haveFun пишет:
$result = mysql_query ('SELECT mark FROM prov WHERE date = "' . $my_date . '" AND block_num = 1');
а вообще даты хранятся в бд в формате 2017-03-07
$date = (new DateTime('07.03.17'))->format('Y-m-d');
$date = (new DateTime($my_date))->format('Y-m-d');


Нет. даты хранятся в формате 03.07.17 (в том плане что поле с датами у меня варчар)

Беда была в том что переменная $my_date бралась из масива а функция bl1 () не хотела ее воспринимать. Когда я перенес забор переменной в функцию то все стало норм работать)

(Отредактировано автором: 07 Марта, 2017 - 17:44:02)

 
 Top
haveFun
Отправлено: 07 Марта, 2017 - 17:47:48
Post Id



Гость


Покинул форум
Сообщений всего: 102
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




используйте правильные типы полей для хранения данных
 
 Top
n0nsence
Отправлено: 07 Марта, 2017 - 17:51:07
Post Id


Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




haveFun пишет:
используйте правильные типы полей для хранения данных


ну как бы
дает мне формат 03.07.17 и кладет их в базу. что есть тем и пользуюсь))
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB