Дублиране при вкарване в дб.

Centrino

Registered
Здравейте. Опитвам се да си направя една проста системка, но някъде бъркам при вкарването на информация в дб-а. Едно и също нещо ми го вкарва по 2 пъти но под поредно ID.

Имам 2 таблици. Едната е
Код:
CREATE TABLE `songs` (
`id` int(4) NOT NULL auto_increment,
`ot` varchar(255) NOT NULL
`izpalnitel` varchar(255) NOT NULL,
`zaglavie` varchar(255) NOT NULL,
`link` varchar(255) NOT NULL,
`godina` varchar(255) NOT NULL,
`album` varchar(255) NOT NULL,
`vremetraene` varchar(255) NOT NULL,
`data` varchar(255) NOT NULL,
`snimka` varchar(255) NOT NULL,
`broken` varchar(255) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM;

Това е таблицата в която записвам информацията за всяка една песен.
А другата ми таблица е тая в която се съдържа имената на албумите. Ето структурата на таблицата в която са албумите.

Код:
CREATE TABLE `songs_albums` (
`id` int(4) NOT NULL auto_increment,
`value` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM

А ето и кода. на формата.
addsong.php
Код:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>

<table width="520" align="center" border="1">
 <form method="POST" action="addsong2.php" name="insertform">
  <tr><td width="152">* Заглавие:</td><td width="339"><input name="zaglavie" type="text" size="55" /></td></tr>
  <tr><td width="152">* Изпълнител:</td><td width="339"><input name="izpalnitel" type="text" size="55" /></td></tr>
  <tr><td width="152">* Линк за сваляне:</td><td width="339"><input name="link" type="text" size="55" /></td></tr>
  <tr><td width="152">* Година на издаване:</td><td width="339"><input name="godina" type="text" size="55" /></td></tr>
  <tr><td width="152">* Времетраене:</td><td width="339"><input name="vremetraene" type="text" size="55" /></td></tr>
  <tr><td width="152">* Добавена от:</td><td width="339"><input name="ot" type="text" size="55" /></td></tr>
  <tr><td width="152">* Албум</td><td><select name="album">
<option>Изберете Албум</option>
<?php
include("config.php");
$query = mysql_query("SELECT * FROM songs_albums");
while($row = mysql_fetch_array($query)){
$id = $row['id'];
$value = $row['value'];
$albums .= "<option value=\"$id\" class=\"bottom\">$value</option>";
}
echo $albums;
?>
</select></td></tr>
  <tr><td width="152">Снимка:</td><td width="339"><input name="snimka" type="text" size="55" /></td></tr>
  <tr><td colspan="2" align="center">
   <input name="submit" type="submit" id="submit" value="Прати"/>
   <input name="reset" type="reset" id="reset" value="Изчисти"/>
  </tr></td>
 </form>
</table>

</body>
</html>


Ето и addsong2.php в който се извършва вкарването в базатаданни.
Код:
<?php
//Инклудваме конфиг файла
include("config.php");

//Вземаме стойностите на променливите от формата и им добавяме малко защита
$zaglavie = mysql_real_escape_string(addslashes(htmlspecialchars($_POST['zaglavie'])));
$izpalnitel = mysql_real_escape_string(addslashes(htmlspecialchars($_POST['izpalnitel'])));
$link = mysql_real_escape_string(addslashes(htmlspecialchars($_POST['link'])));
$godina = mysql_real_escape_string(addslashes(htmlspecialchars($_POST['godina'])));
$album = mysql_real_escape_string(addslashes(htmlspecialchars($_POST['album'])));
$vremetraene = mysql_real_escape_string(addslashes(htmlspecialchars($_POST['vremetraene'])));
$snimka = mysql_real_escape_string(addslashes(htmlspecialchars($_POST['snimka'])));
$ot = mysql_real_escape_string(addslashes(htmlspecialchars($_POST['ot'])));
$data = date("d.m.Y");

//Проверяваме дали задължителните полета са попълнени
if(empty($zaglavie)){
echo "Моля въведете <b>заглавие</b>. Всички полета отбелязани с <b>*</b> са задължителни. <a href=\"addsong.php\">Обратно</a>";
exit;
}
if(empty($izpalnitel)){
echo "Моля въведете <b>изпълнител</b>. Всички полета отбелязани с <b>*</b> са задължителни. <a href=\"addsong.php\">Обратно</a>";
exit;
}
if(empty($link)){
echo "Моля въведете <b>линк</b>. Всички полета отбелязани с <b>*</b> са задължителни. <a href=\"addsong.php\">Обратно</a>";
exit;
}
if(empty($godina)){
echo "Моля въведете <b>година</b>. Всички полета отбелязани с <b>*</b> са задължителни. <a href=\"addsong.php\">Обратно</a>";
exit;
}
if(empty($vremetraene)){
echo "Моля въведете <b>времетраене</b>. Всички полета отбелязани с <b>*</b> са задължителни. <a href=\"addsong.php\">Обратно</a>";
exit;
}
if(empty($ot)){
echo "Моля въведете <b>името на подателя</b>. Всички полета отбелязани с <b>*</b> са задължителни. <a href=\"addsong.php\">Обратно</a>";
exit;
}

//Въвеждаме данните в таблицата в БазатаДанни
$sql = "INSERT INTO `songs`(`id`, `ot`, `izpalnitel`, `zaglavie`, `link`, `godina`, `album`, `vremetraene`, `data`, `snimka`) VALUES('', '$ot', '$izpalnitel', '$zaglavie', '$link', '$godina', '$album', '$vremetraene', '$data', '$snimka');";
$result = mysql_query($sql)
   or die (mysql_error());

if (mysql_query($sql) <> "") {
echo "Информацията беше успешно въведена в базата данни. <a href=\"addsong.php\">Обратно</a>";
}
else {
echo "Заявката не е изпълнена  !!! <a href=\"addsong.php\">Обратно</a>";
}
?>

Някъде бъркам за да ми дублира, но не знам къде. Също и имам още едно въпросче къде бъркам в кода с който вкарвам в един селект албумите, за да ми вади не името на албума, а ID-то на албума.

Благодаря. Надявам се че сте ме разбрали.
 
//Въвеждаме данните в таблицата в БазатаДанни
$sql = "INSERT INTO `songs`(`id`, `ot`, `izpalnitel`, `zaglavie`, `link`, `godina`, `album`, `vremetraene`, `data`, `snimka`) VALUES('', '$ot', '$izpalnitel', '$zaglavie', '$link', '$godina', '$album', '$vremetraene', '$data', '$snimka');";
$result = mysql_query($sql) or die (mysql_error());

if ($result) {
echo "Информацията беше успешно въведена в базата данни. <a href=\"addsong.php\">Обратно</a>";
}
else {
echo "Заявката не е изпълнена !!! <a href=\"addsong.php\">Обратно</a>";
}
?>
 
Благодаря дублирането се оправи. Намерих си и другата грешка. :) Всичко е 6 Получаваш +1 Благодаря още веднъж
 

Back
Горе