Как сделать переборку глобально?

HORO

Новичок
зачем? если очень хочется можно в delete сделать WHERE id NOT IN($ids)
 

WMix

герр M:)ller
Партнер клуба
можно, но и считать перед удалением тоже нормальное решение
 

CEPlllAHT

Новичок
Да удаление это просто, тут всё понятно. Я не как не могу сделать выборку уже существующих тегов. Блин!
 

CEPlllAHT

Новичок
тут не любят готовый код ) так что вот так примерно можно сделать вывод чекбоксов с тегами для записи,
ну а как сохранить результат, я написал
DELETE FROM tags_data WHERE main_id='$id' -- все удалить
INSERT INTO tags_data (main_id,tag_id) VALUES ('$id','$ids[0]'), ('$id','$ids[1]'), ... и тд -- добавить выбранные теги
PHP:
$tag_ids=array();
if ($res = $mysqli->query("SELECT * FROM tags_data WHERE main_id='".(int)$id."'")) // tag_id: 1 1 //main_id: 4 1
{
                    while($tag_id = $res->fetch_assoc())
                        {
                            $tag_ids[] = $tag_id['tag_id'];
                        }
}

if ($result = $mysqli->query("SELECT * FROM tags ORDER BY name")) // id: 1 2 3 4 //name: Accustik Brass Drum Electro
    {
        while($tag = $result->fetch_assoc())
        {
            $checked="";
            if(in_array($tag['id'],$tag_ids)) $checked="checked";
            echo ('<input type="checkbox" name="ids[]"  value="' . $tag['id'] . '" ' . $checked . '>' . $tag['name']  . ' || ');
        }
    }
Брат твой код, работает. За знания я плачу. В ЛС напиши куда тебе кинуть денюшку. Хороший Ты человек)
 

CEPlllAHT

Новичок
Тока, что заметил такое:
PHP:
if ($result = $mysqli->query("SELECT * FROM tags_data WHERE tag_id='$tag'"))
      {
      while($tags_data = $result->fetch_assoc())
          {
          $main_id = $tags_data['main_id'];
                    if ($result2 = $mysqli->query("SELECT * FROM main WHERE id='$main_id' ORDER BY name")) // Не выводит по Алфавиту таблицы name
                              {
                                while($tag = $result2->fetch_assoc())
                                  {
                                    include ("template/mattis/post.html");
                                  }
                              }
          }
          include ("template/mattis/post_end.html");
      }
}
else
{
//Выборка всех таблиц...
if ($result = $mysqli->query("SELECT * FROM main ORDER BY name")) // А здесь всё ок. Выводит как надо.
      {
      while($tag = $result->fetch_assoc())
          {
          include ("template/mattis/post.html");
          }
      }
      include ("template/mattis/post_end.html");
}
include ("template/mattis/end.html");
Почему так? оО
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Что делает запрос: SELECT * FROM main WHERE id='$main_id' ORDER BY name ? Выбирает одну запись?
 

CEPlllAHT

Новичок
Так в чем же проблема? оО
PHP:
if ($result = $mysqli->query("SELECT * FROM tags_data WHERE tag_id='$tag'")) // Ошибка тут! Т.к. это первое действие. Тут получается если выставить ORDER BY main_id DESC но сортирует по ID а надо чтоб работало след. действие по Алфавиту.
      {
      while($tags_data = $result->fetch_assoc())
          {
          $main_id = $tags_data['main_id'];
                    if ($result2 = $mysqli->query("SELECT * FROM main WHERE id='$main_id' ORDER BY name ASC")) // Не выводит по Алфавиту таблицы name
                              {
                                while($tag = $result2->fetch_assoc())
                                  {
                                    include ("template/mattis/post.html");
                                  }
                              }
          }
          include ("template/mattis/post_end.html");
      }
}
else
{
//Выборка всех таблиц...
if ($result = $mysqli->query("SELECT * FROM main ORDER BY name ASC")) // А здесь всё ок. Выводит как надо.
      {
      while($tag = $result->fetch_assoc())
          {
          include ("template/mattis/post.html");
          }
      }
      include ("template/mattis/post_end.html");
}
include ("template/mattis/end.html");
 
Последнее редактирование:

полудух

Итсист
работа с пациентами не расходует нервы, если её сразу свести к формату: "вот у меня есть это", "вот я хочу получить это"
 

CEPlllAHT

Новичок
Проблема, очевидно, у тебя в голове.
Потому что ты делаешь два запроса там, где надо сделать один.
да? А ни чё что я про это уже сам заметил? А на счёт головы не знаю, у кого проблемы.
 
Последнее редактирование:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Автор, займись отладкой, а не показывай нам свой код =)
 

CEPlllAHT

Новичок
PHP:
if ($result = $mysqli->query("SELECT * FROM tags_data WHERE tag_id='$tag'"));
while($tags_data = $result->fetch_assoc())
          {
           $main_id = $tags_data['main_id'];
   
                    if ($result2 = $mysqli->query("SELECT * FROM main WHERE id='$main_id' ORDER BY name ASC")) // Не выводит по Алфавиту таблицы name
                              {
                                while($tag = $result2->fetch_assoc())
                                   {
                                     include ("template/mattis/post.html");
                                   }
                              }
          }
          include ("template/mattis/post_end.html");
}
c0dex, как его переписать(сделать отладку) когда я его так вижу?
Подскажите как правильно написать код.
 
Последнее редактирование:

полудух

Итсист
чтобы получить что?
на всякий случай - кодировка нужная включается при подключении?
 

AnrDaemon

Продвинутый новичок
C чего ты взял, что он не работает?
Ты этот запрос в консоли выполнял?
 

полудух

Итсист
Чтоб if ($result2 = $mysqli->query("SELECT * FROM main WHERE id='$main_id' ORDER BY name ASC")) действовал. Он не работает почему то.
Кодировка Utf-8? Да.
кодировка та, в которой данные в базе
она может отличаться от той, которая выставляется по умолчанию при подключении
 
Сверху