[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Говнокод
Страницы: 1, 2, 3, 4, 5
Эли4ка
Ну здравствуй родной форум. Здравствуйте специалисты, грамотные люди.
Сегодня баба, то бишь я, выполняла задание. И как обычно это бывает нагавнокодила. Ну это мне так сказали. Сказали, что ЭТо даже не запустится.
Задание таково:
Есть таблица с фотками, структура такая:
id | photo | text
1 | photo1 | text1
2 | photo2 | text1
3 | photo3 | text1
Надо сделать для фоток теги, то бишь система один ко многим(или многие ко многим)
Таблица tags
id | title
1 | my_tag
2 | another tag
3 | more tags

связки тэгов и фото:
Таблица photo_tags
photo_id | tag_id
1 | 1
1 | 2
2 | 3

Надо написать код для добавления тегов. Написала. Сказали гавнокод и он даже не заработает.
В чем гавнокод?Смотрела в этой статье (я его проверила, заработал)
$string_tags="природа,пейзаж,лес";
$string = "ИМЯ ФОТО";
$table = "photo";
$search = "SELECT `id` FROM `".$table."` WHERE `photo_name` = '".$string."' LIMIT 1";
if ($result = mysqli_query($link, $search)) {
/* извлечение ассоциативного массива */
while ($row = mysqli_fetch_assoc($result)) {
$id = $row["id"];
}
/* удаление выборки */
mysqli_free_result($result);
}
$tags = explode(",",$string_tags);
foreach($tags as $tag) {
$search_tag = "SELECT `id` FROM `tags` WHERE `tag_name` = '".$tag."' LIMIT 1";
//делаем запрос
if ($result = mysqli_query($link, $search_tag)) {
//если такой тег есть
if(mysqli_num_rows($result) > 0){
//получаем id тега
while ($row = mysqli_fetch_assoc($result)) {
$tag_id = $row["id"];
}
//проверяем, если ли такая связка(вдруг кто-то второй раз такой же тег решил добавить)
$search_ = "SELECT `photo_id` FROM `photo_tags` WHERE `photo_id` = '".$id."' AND `tag_id` ='".$tag_id."' LIMIT 1";
$result_code = mysqli_query($link, $search_);
//если такой связки нет
if(mysqli_num_rows($result_code) == 0){
$sql = "INSERT INTO `photo_tags` (`photo_id`,`tag_id`) VALUES ('".$id."','".$tag_id."')";
$result_ = mysqli_query($link, $sql);
if($result_){
echo $sql."<br>";
}
}
}

//не нашли такого тега
else {
//добавляем в таблицу тегов новый тег
$sql = "INSERT INTO `tags` (`tag_name`) VALUES ('".$tag."')";
$result = mysqli_query($link, $sql);
//если вставка нового тега прошла успешно
if($result) {
//формируем запрос для вставки связки фото-ид тега
$sql = "INSERT INTO `photo_tags` (`photo_id`,`tag_id`) VALUES ('".$id."','".mysqli_insert_id($link)."')";
$result_ = mysqli_query($link, $sql);
if($result_){
echo $sql."<br>";
}
}
}
}
}

/* закрываем подключение */
mysqli_close($link);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.