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

Форум PHP

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

 

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

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

тема: Где ошибка?
 
 автор: Bozhko   (07.09.2010 в 18:45)   письмо автору
 
 

Здравствуйте. У меня новая проблема.
Есть 2 варианта кода:
1-й вариант

$result = mysql_query ("SELECT ID FROM posts WHERE title=' Привет мир '",$db);
$myrow = mysql_fetch_array($result);
echo $myrow["ID"];

2-й вариант

$w11 = ' Привет мир ';
$result = mysql_query ("SELECT ID FROM posts WHERE title=$w11",$db);
$myrow = mysql_fetch_array($result);
echo $myrow["ID"];

При этом первый вариант работает а второй - нет. Помогите пожалуйста найти ошибку...

  Ответить  
 
 автор: neadekvat   (07.09.2010 в 18:52)   письмо автору
 
   для: Bozhko   (07.09.2010 в 18:45)
 

А вы подставьте вместо переменной ее значние, и, я надеюсь, сможете увидеть ошибку:
"SELECT ID FROM posts WHERE title= Привет мир "

  Ответить  
 
 автор: Bozhko   (07.09.2010 в 18:57)   письмо автору
 
   для: neadekvat   (07.09.2010 в 18:52)
 

В первом варианте кода так и сделано и все работает, а во втором нет. Но нужно то подставлять переменную.....

  Ответить  
 
 автор: nikita2206   (07.09.2010 в 18:58)   письмо автору
 
   для: Bozhko   (07.09.2010 в 18:57)
 

кавычек нет

  Ответить  
 
 автор: Bozhko   (07.09.2010 в 19:02)   письмо автору
 
   для: Bozhko   (07.09.2010 в 18:45)
 

Кстати если в переменной содержится число то работает и второй вариант

$w11 = '321';
$result = mysql_query ("SELECT ID FROM posts WHERE title=$w11",$db);
$myrow = mysql_fetch_array($result);
echo $myrow["ID"];

Наверное дело в кодировке.... А как ее изменить? БД в UTF-8.

  Ответить  
 
 автор: Slo_Nik   (07.09.2010 в 19:03)   письмо автору
 
   для: Bozhko   (07.09.2010 в 19:02)
 

строки в кавычки, числа не обязательно, а имена полей и таблицы в обратные кавычки
вот так
SELECT `ID` FROM `posts` WHERE `title` = '".$w11."'

  Ответить  
 
 автор: neadekvat   (07.09.2010 в 19:15)   письмо автору
 
   для: Bozhko   (07.09.2010 в 19:02)
 

Исходя из каких данный и опираясь на какую логику вы решили, что дело в кодировке? К тому же, вам два раза сказали прямым текстом, в чем причина.
А числа и надо отправлять без кавычек, при условии, что эти числа должны оказаться в полях с численным типом.

  Ответить  
 
 автор: Slo_Nik   (07.09.2010 в 19:02)   письмо автору
 
   для: Bozhko   (07.09.2010 в 18:45)
 

Сделайте так

<?php 
 error_reporting
(E_ALL); // уровень ошибок
$w11 ' Привет мир '
 
$query "SELECT ID FROM posts WHERE title=$w11";
 echo 
$query// увидите, что в запросе
$result mysql_query ($query,$db); 
 if(!
$result) echo mysql_error(); // увидите ошибку, если запрос вернул ошибку
$myrow mysql_fetch_array($result); 
echo 
$myrow["ID"];
?>

  Ответить  
 
 автор: Bozhko   (07.09.2010 в 19:15)   письмо автору
 
   для: Slo_Nik   (07.09.2010 в 19:02)
 

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

SELECT ID FROM posts WHERE title='$w11'


и перед запросом

ini_set('default_charset','UTF-8');


Вроде все получилось. Спасибо еще раз.

  Ответить  
 
 автор: neadekvat   (07.09.2010 в 19:17)   письмо автору
 
   для: Bozhko   (07.09.2010 в 19:15)
 

А теперь уберите ini_set. Неужели не работает?..

  Ответить  
 
 автор: Bozhko   (07.09.2010 в 19:19)   письмо автору
 
   для: neadekvat   (07.09.2010 в 19:17)
 

Работает и без ini_set.

  Ответить  
 
 автор: neadekvat   (07.09.2010 в 19:22)   письмо автору
 
   для: Bozhko   (07.09.2010 в 19:19)
 

Так есть ли смысл его использовать в данном случаи?

  Ответить  
 
 автор: Bozhko   (07.09.2010 в 19:32)   письмо автору
 
   для: neadekvat   (07.09.2010 в 19:22)
 

Думал что дело в кодировке поэтому и тулил туда и ini_set и iconv а т.к. дело в другом то и ненужные функции нужно удалить. Еще раз спасибо за помощь.

  Ответить  
 
 автор: lElectroHardl   (07.09.2010 в 21:01)   письмо автору
 
   для: Bozhko   (07.09.2010 в 19:32)
 

>Думал...

автор: nikita2206 (07.09.2010 в 18:58) письмо автору
для: Bozhko (07.09.2010 в 18:57)

кавычек нет

  Ответить  
Rambler's Top100
вверх

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