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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Проверка значения в таблице, проблема с переменными

Сообщения:  [1-10]   [11-12] 

 
 автор: Root   (26.05.2008 в 03:41)   письмо автору
 
   для: Angl   (26.05.2008 в 03:33)
 

цикл?
<?php
while ($row mysql_fetch_array($result)) {
...
}
?>

   
 
 автор: Angl   (26.05.2008 в 03:33)   письмо автору
 
   для: Angl   (21.05.2008 в 04:28)
 

Я опять - с тем же скриптом, но с другой проблемой. С переменными и кавычками я вроде как разобралась, и скрипт заработал. Но радовалась я рано.

Идея была такая: сделать выборку значений одной колонки (не повторяются), а среди них потом поискать нужное число. Пробовала так (скрипт уже был выше, просто ещё раз приведу, для наглядности):

$sql = "SELECT `bane` FROM `book_bowl` WHERE dato='12. juni' AND tid='14'";  
$result = mysql_query($sql); 
$row = mysql_fetch_array($result); 
if (in_array('6', $row)) { 
echo "'6a' found";


Как оказалось, скрипт работал, потому что на тот момент в полученном из таблицы массиве было только одно значение. Как только появились другие, начались проблемы: он видел только первое, дальше искать не хотел. Я промучилась сутки, дошла до истерики, и написала в конце концов дубовый скрипт, который делал каждый раз новый запрос на конкретное значение. Всё работает прекрасно. Но проблема в том, что таблица-то сейчас маленькая, незаполненная. А если разрастётся, то будет работать медленно. То есть на первое время сойдёт то, что я сваяла, но потом надо всё равно переделывать.

Не объясните мне, пожалуйста, что у меня не так? Почему скрипт не видит в массиве дальше первого значения? И может, есть какой-нибудь способ перевести его в строку и тогда уже порыться в нём через eregi(), скажем? Или я усложняю, и всё гораздо проще, просто я не в курсе? Подскажите, пожалуйста!

   
 
 автор: sim5   (21.05.2008 в 13:19)   письмо автору
 
   для: Angl   (21.05.2008 в 12:41)
 

Строковые переменные в запросе надо обрамлять кавычками ('' или ""), для чисел нет.

   
 
 автор: Angl   (21.05.2008 в 12:41)   письмо автору
 
   для: sim5   (21.05.2008 в 05:47)
 

>Это значит, что такой колонки, которую вы запрашиваете, MySQL в таблице на нашел.
>Читайте синтаксис запросов, ссылка которую я давал, у вас может временно не
>открывалась, а ответ есть по этой ссылке. Вот адрес главной страницы того, что вам нужно >знать: http://www.mysql.ru/docs/man/.

Ссылки до сих пор не работают :-(. Но буду продолжать щёлкать время от времени, в надежде, что откроются. Теорию-то почитать хочется! :-)

>Ваш запрос надо переписать так:
>
$sql = "SELECT `bane` FROM `book_bowl` WHERE dato='$dato' AND tid='$tid'";
>$result = mysql_query($sql) or die (mysql_error());
>


Спасибо большое, тепрь всё работает!!


>PS. Кстати, вот то, что вы вставляли вручную: dato=\'22. maj\'. Вы что, еденичные строковые
>значения полей в таблице держите в кавычках? Зачем?

А это не я. Эту строчку выдал phpMyAdmin, когда я проверяла запрос на работоспособность. Я просто скопировала так, как он откорректировал. Кстати, сейчас проверила: без кавычек вокруг '22. maj' выдаёт ошибку. А 12 без кавычек проходит нормально. В самой таблице все значения стоят без кавычек.

   
 
 автор: sim5   (21.05.2008 в 05:47)   письмо автору
 
   для: Angl   (21.05.2008 в 05:31)
 

Это значит, что такой колонки, которую вы запрашиваете, MySQL в таблице на нашел. Читайте синтаксис запросов, ссылка которую я давал, у вас может временно не открывалась, а ответ есть по этой ссылке. Вот адрес главной страницы того, что вам нужно знать: http://www.mysql.ru/docs/man/.
Ваш запрос надо переписать так:
$sql = "SELECT `bane` FROM `book_bowl` WHERE dato='$dato' AND tid='$tid'";
$result = mysql_query($sql) or die (mysql_error());


PS. Кстати, вот то, что вы вставляли вручную: dato=\'22. maj\'. Вы что, еденичные строковые значения полей в таблице держите в кавычках? Зачем?

   
 
 автор: Angl   (21.05.2008 в 05:31)   письмо автору
 
   для: Angl   (21.05.2008 в 05:28)
 

Что-то теперь мне ещё непонятнее. 'where clause' - это что? И почему он называет переменную Unknown column?

   
 
 автор: Angl   (21.05.2008 в 05:28)   письмо автору
 
   для: sim5   (21.05.2008 в 05:20)
 

Сделала. Пишет в ответ: Unknown column '$dato' in 'where clause'
???

   
 
 автор: sim5   (21.05.2008 в 05:20)   письмо автору
 
   для: Angl   (21.05.2008 в 05:09)
 

Для начала, перепешите свой запрос так:
$result = mysql_query($sql) or die (mysql_error());

   
 
 автор: Angl   (21.05.2008 в 05:09)   письмо автору
 
   для: sim5   (21.05.2008 в 04:39)
 

Ссылка не открывается. Погуглила по литералам, почитала. Ничего похожего на решение моей проблемы не нашла. Ни об особенностях синтаксиса записи переменных в SELECT, ни о возможных проблемах при использовании переменных. Не могли бы вы хотя бы коротко объяснить, хотя бы в чём загвоздка? Почему при подставлении переменных вместо значений в запись запроса скрипт перестаёт работать?

   
 
 автор: Angl   (21.05.2008 в 05:09)   письмо автору
 
   для: sim5   (21.05.2008 в 04:39)
 

Ссылка не открывается. Погуглила по литералам, почитала. Ничего похожего на решение моей проблемы не нашла. Ни об особенностях синтаксиса записи переменных в SELECT, ни о возможных проблемах при использовании переменных. Не могли бы вы хотя бы коротко объяснить, хотя бы в чём загвоздка? Почему при подставлении переменных вместо значений в запись запроса скрипт перестаёт работать?

   

Сообщения:  [1-10]   [11-12] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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