O.K. это какой-то старый код, но он вставляет больше, чем должен. Прежде чем убрать это, я пытаюсь понять почему. Прямо сейчас $ _POST [tags] имеет только 1 значение. Я взрываюсь и зацикливаюсь. НО оператор insert3 внизу вставляет строки с нулями в качестве значения.
Я в недоумении, почему.
if($_POST['sec'] == "next") {
$bloguser = $_POST['bloguser'];
$blogpassword = $_POST['blogpassword'];
$blog = $_POST['blog'];
mysql_select_db($database) or die ("Unable to select database!");
$insert = mysql_query("INSERT INTO blogs (id, url, user, pass, dname, islocal, cat2post) VALUES ('', '$blog', '$bloguser', '$blogpassword', '','NO','$_POST[cat2blog]')")or die( 'Error: ' . mysql_error());
$taggit1 = mysql_insert_id();
$page->content .= "<p class=\"alert\">Success - External blog Added!</p>";
$tags = $_POST['tags'];
$pieces = explode(",", $tags);
foreach ($pieces as $l){
$l = trim($l);
$query = "SELECT id FROM tags WHERE tag = '$l'";
$result = mysql_query($query) or die( "Error: " . mysql_error() . " in query $query");
$row = mysql_fetch_array($result);
$taggit2 = $row[0];
if ($taggit2 == '') {
$insert2 = mysql_query("INSERT INTO tags (id, tag) VALUES ('','$l')")or die( 'Error: ' . mysql_error());
$taggit2 = mysql_insert_id();
$page->content .= "<p class=\"alert\">This tag didn't exist - so I inserted a new tag</p>";
}
$insert3 = mysql_query("INSERT INTO blogstags (id, tag_id, blogstags_id) VALUES ('','$taggit2','$taggit1')")or die( 'Error: ' . mysql_error());
$page->content .= "<p>Inserted one </p>";
}
/// some page content crap that doesn't matter to the problem goes here///
}
Ввод, как это - вторая запись верна. И первое просто не должно быть вставлено -
id tag_id blogstags_id
1 1 0
2 1 6
Я думаю, проблема в том, где я взрываюсь
$tags = $_POST['tags'];
$pieces = explode(",", $tags);
foreach ($pieces as $l){
$l = trim($l);
Но значение POST - это всего лишь одно слово, так почему же оно проходит через цикл дважды?