Защо неще да запише в базата данни ?

topchokt

Registered
Здравейте ,
имам следният код:

<form method='post' action=''>
Име:<br /> <input type='text' name='name1' ><br> <br />
Какво е значението на името ?: <br /><textarea name='text1' rows="7"></textarea><br> <br />
Добавил: <br /><input value="" name="dobavil1" class="add" size="12" /><br>
<br />
<input type='submit' name='addname' value='Добави'>
</form>
<?php
if ($_POST['addname']){
$name = htmlspecialchars($_POST['name1']);
$text = htmlspecialchars($_POST['text1']);
$dobavil = htmlspecialchars($_POST['dobavil1']);
if(empty($name) or empty($text) or empty($dobavil)){
//Това го показва, когато някой не е попълнил всички полета
echo "Попълни всички полета!";
}
else {
//Променете данните за свързване към базата данни
$user = "root";//дб име
$pass = "....";//дб парола
$db = "....";//дб
$host = "....t";//хост
$connection = mysql_connect($host, $user, $pass) or die("Сайтът не може да се свърже към базата данни1");//свързваме се към базата данни
$db = mysql_select_db($db,$connection)or die("Сайтът не може да се свърже към базата данни2");
$query = mysql_query("INSERT INTO `names` (id, name, text, dobavil) VALUES('$id', '$name', '$text', '$dobavil')");
//Това го показва, когато текста е добавен успешно
echo "Името е добавенo!";
}
}
?>
Защо не записва в таблицата ? Мислех, мислех така и не успях да видя грешка, а интересното е че изписва че е добавено, а всъщност не е така .
 
<form method='post' action=''>
Име:<br /> <input type='text' name='name1' ><br> <br />
Какво е значението на името ?: <br /><textarea name='text1' rows="7"></textarea><br> <br />
Добавил: <br /><input value="" name="dobavil1" class="add" size="12" /><br>
<br />
<input type='submit' name='addname' value='Добави'>
</form>
<?php
if ($_POST['addname']){
$name = htmlspecialchars($_POST['name1']);
$text = htmlspecialchars($_POST['text1']);
$dobavil = htmlspecialchars($_POST['dobavil1']);
if(empty($name) or empty($text) or empty($dobavil)){
//Това го показва, когато някой не е попълнил всички полета
echo "Попълни всички полета!";
}
else {
//Променете данните за свързване към базата данни
$user = "root";//дб име
$pass = "....";//дб парола
$db = "....";//дб
$host = "....t";//хост
$connection = mysql_connect($host, $user, $pass) or die("Сайтът не може да се свърже към базата данни1");//свързваме се към базата данни
$db = mysql_select_db($db,$connection)or die("Сайтът не може да се свърже към базата данни2");
$query = mysql_query('INSERT INTO `names` (`id`, `name`, `text`, `dobavil`) VALUES("'.addslashes($id).'",
"'.addslashes($name).'", "'.addslashes($text).'", "'.addslashes($dobavil).'")') or die (mysql_error());
//Това го показва, когато текста е добавен успешно
echo "Името е добавенo!";
}
}
?>

Пробвай така.
 
topchokt каза:
Резултатът ncorrect integer value: '' for column 'id' at row 1 .

E как очакваш да запише id като променливата $id не е валидирана никъде ?
 
Dizasterr каза:
Пробвай да обърнеш кавичките. Тоест да стане така: '".addslashes($id)."'.
Не става:
Код:
Parse error: syntax error, unexpected '"' in D:\webserver\htdocs\addname.php on line 84
 
topchokt къде се намира тази променлива $id че не разбрах.. Поради тази причина дава грешката.

Пробвай без ид направи го AUTO INCREMENT . И записа ще става автоматично

<form method='post' action=''>
Име:<br /> <input type='text' name='name1' ><br> <br />
Какво е значението на името ?: <br /><textarea name='text1' rows="7"></textarea><br> <br />
Добавил: <br /><input value="" name="dobavil1" class="add" size="12" /><br>
<br />
<input type='submit' name='addname' value='Добави'>
</form>
<?php
if ($_POST['addname']){
$name = htmlspecialchars($_POST['name1']);
$text = htmlspecialchars($_POST['text1']);
$dobavil = htmlspecialchars($_POST['dobavil1']);
if(empty($name) or empty($text) or empty($dobavil)){
//Това го показва, когато някой не е попълнил всички полета
echo "Попълни всички полета!";
}
else {
//Променете данните за свързване към базата данни
$user = "root";//дб име
$pass = "....";//дб парола
$db = "....";//дб
$host = "....t";//хост
$connection = mysql_connect($host, $user, $pass) or die("Сайтът не може да се свърже към базата данни1");//свързваме се към базата данни
$db = mysql_select_db($db,$connection)or die("Сайтът не може да се свърже към базата данни2");
$query = mysql_query('INSERT INTO `names` (`name`, `text`, `dobavil`) VALUES("'.addslashes($name).'",
"'.addslashes($text).'", "'.addslashes($dobavil).'")') or die (mysql_error());
//Това го показва, когато текста е добавен успешно
echo "Името е добавенo!";
}
}
?>
 
baso каза:
Виж по горния ми пост . Редактирах го.

Аз вече го оправих... То си беше auto_increment ...

Baso за сега няма да ти дам точка, защото може да се наложи нещо да питам... Та да не правя нова тема, но така или иначе точката я имаш.
 

Back
Горе