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

Форум MySQL

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

 

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

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

тема: Проверка существования записи в базе
 
 автор: Loki   (13.03.2005 в 02:05)   письмо автору
 
 

Что-то у меня не получается:
есть база из двух полей - имя загруженного файла и его описание.
При загрузке файла должна выполняться проверка существования файла с таким именем и, если он существует, то его описание обновляется, в противном случае - добавляется ноая запись.

<?
$link
=mysql_connect($dblocation$dbuser$dbpasswd);
if (
$link
mysql_select_db($dbname$link); 
$filename=$_FILES["filename"]["name"];
$query="SELECT '$filename' FROM album;";
$result=mysql_query($query);
$test=mysql_num_rows($result);
if (
$test==0)  
{
$query="INSERT INTO album values ('$filename','$describe');";
mysql_query($query);  
}
else
{
$query="UPDATE album SET descr='$describe' where filename='$filename';";
mysql_query($query);
}
?>

Почему-то когда в базе появляется хоть одна запись, переменная $test все время принимает значение 1.
Подскажите, где поковырять?

   
 
 автор: cheops   (13.03.2005 в 02:12)   письмо автору
 
   для: Loki   (13.03.2005 в 02:05)
 

Запрос
SELECT '$filename' FROM album

не совсем корректен, так как после SELECT MySQL ожидает имя столбца, а не значение поля, нужно преобразовать запрос в что-то вроде
SELECT * FROM album WHERE filename = '$filename'

где filename - имя столбца (в таких случаях лучше сразу приводить структуру таблиц).

   
 
 автор: Loki   (13.03.2005 в 22:15)   письмо автору
 
   для: cheops   (13.03.2005 в 02:12)
 

Спасибо! Косяк был именно в этом...
Будем изучать синтаксис sql...

   
 
 автор: evgen_17   (13.03.2005 в 02:13)   письмо автору
 
   для: Loki   (13.03.2005 в 02:05)
 

Ничем помочь явно не могу, но помоему после условия if($link) кое чего не хватает.

<? 
$link
=mysql_connect($dblocation$dbuser$dbpasswd); 
if (
$link
//А уж где закроется сами решайте я не знаю. 
mysql_select_db($dbname$link); 
$filename=$_FILES["filename"]["name"]; 
$query="SELECT '$filename' FROM album;"
$result=mysql_query($query); 
$test=mysql_num_rows($result); 
if (
$test==0)   

$query="INSERT INTO album values ('$filename','$describe');"
mysql_query($query);   

else 

$query="UPDATE album SET descr='$describe' where filename='$filename';"
mysql_query($query); 

?> 
 

Ага, кстате cheops прав как всегда...

   
Rambler's Top100
вверх

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