Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Запись в базу


Автор: GAV85 3.11.2005, 12:00
Не могу понять почему не пишет в базу. Может кто подскажет, что я не так делаю, контрольная инфа выдается правильно, а в базу не хочет писать. Если вместо переменных пытатся записать, наприме, цифры, то все пишется smile Спасибо!

Код

<?php
function add_news($text)
{
$cut='(hr!)';
$str=explode($cut, $text);

mysql_connect('localhost', 'root', '');

mysql_select_db('news');

$result=mysql_query('select count(id) from news');
$line=mysql_fetch_array($result, MYSQL_ASSOC);
foreach($line as $id)
    { if(count($str)<= 2)
      {
        mysql_query('insert into news values ($id, $str[0], $str[1])'); 
            print $id.'<br>'.$str[0].'<br>'.$str[1]; //Контрольная инфа
      }
    }
mysql_free_result($result);

mysql_close();
}

echo "<form action=\"news.php\" method=\"post\"><textarea cols=\"100\" rows=\"15\" name=\"text\"></textarea><br><input type=\"Submit\" name=\"write_text\"></form>\n";

if (isset($_POST['write_text'])){add_news($_POST['text']);}

?>

Автор: Mal Hack 3.11.2005, 13:03
Ну а вывести mysql_error после выполнения запроса и посмотреть ошибку не судьба?

Автор: GAV85 3.11.2005, 13:10
Выдается ошибка: "Unknown column '$id' in 'field list'", а что это означает я не пойму?

Автор: PARROT 3.11.2005, 13:12
Так попробуй, а еще проверь соответствие количества полей в базе и заносимых, должно соответствовать. Если в какое-то поле не заносишь данные ставь все равно вот так ''
Код

mysql_query("insert into news values ('$id', '$str[0]', '$str[1]')") or die(mysql_error()); 

Автор: GAV85 3.11.2005, 13:24
Спасибо!!! ПОЛУЧИЛОСЬ!!!
Просто нужно было в кавычки переменные взять и именно так:
Код

mysql_query("insert into news values ('$id', '$str[0]', '$str[1]')") or die(mysql_error()); 

Все выражение в двойных кавычках, а переменные в одиночных! smile

Автор: Рейкин 6.11.2005, 20:54
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 'sex,type,designer,season,desc,photo1,photo2) VALUES ('1','' at line 1

Код

      $SQL = "INSERT into baza(sex,type,designer,season,desc,photo1,photo2) VALUES ('$sex','$type','$designer','$season','$desc','$photo1','$photo2')"; 
      mysql_query($SQL) or die(mysql_error());


Товарищи, Салам

Объяснит кто что это за ошибка? До этого писал как обычно, создал новую таблицу - пытаюсь записывать - никак smile

Автор: Mal Hack 6.11.2005, 21:02
а запрос покажи.

Автор: Рейкин 6.11.2005, 21:06
Показал (редактированием)

Автор: Mal Hack 6.11.2005, 21:11
Это не от этого запроса ошибка...
Попробуй на всякий возьми в ковычки имена полей.
И поменяй type и desc.

Автор: Рейкин 6.11.2005, 21:17
оки, пробую
Добавлено @ 21:22
Без кавычек сделал. Просто сменил type и desc


Mal Hack - чтоб мы без тебя делали? smile Спасибо ещё одно!

Автор: Mal Hack 6.11.2005, 21:28
Цитата
Mal Hack - чтоб мы без тебя делали? smile Спасибо ещё одно!

Жили бы спокойно smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)