Пользователь sergei1094, автор этой темы, удалён вместе со всем своим говном. Поэтому тема выглядит странно Автор также наследил под именем damid818. — модераторъ покажи что ты хочешь
затем. дай описание таблиц. не те запросы которые ты делаешь а описание. в тех запросах астериски - я хер чо понял. не хочешь чтоб тебе помогали - гуляй.
sergei1094, слыш тезка, я не просил давать мне характеристик. я и так вижу что и как у тебя. по коду. я попросил описание таблиц. не пароли, не ключи от квартиры. описание таблиц. ты не знаешь как сделать описание таблиц? спроси у меня как. чо ты истеришь как маленькая? select * from users u left join cities c on u.city_id = c.city_id держи. одним запросом можно получить готовую таблицу. не делать миллиард запросов в цикле а просто сразу одним запросом. с кодом итерации результата тоже за тебя надо все сделать? ну тут как бы раздел для новичков но ты что-то не хочешь чтоб тебя учили...
чувак. ты делаешь раз запрос и потом пока ты его итерируешь - делаешь еще туеву хучу запросов. я дал тебе для начала как не делать говнокод. спасибо где? надо красивый массив формировать? ну так временная переменная, сравнение значений. давай какие у тебя варианты.
Ну так это именно так и пишется Код (PHP): $arr[0][1] = 2; https://secure.php.net/manual/ru/language.types.array.php#l ... .modifying - здесь описано
давай ты для начала перепишешь запрос, ок? а когда перепишешь - посмотри в каком удобном виде приходят данные. а дальше дело техники. есть ключ - добавляем пользователя. нет ключа - создаем ключ и потом добавляем пользователя.
не затруднит. объясняю. есть у тебя таблица (сильно упрощу для скорости) городов - ид-города, название-города. и таблица юзеров - ид-юзера, ид-города, имя-юзера в таблице городов: Код (PHP): city_id | city_name 1 | Караганда 2 | Астана в таблице юзеров: Код (PHP): user_id | city_id | user_name 1 | 1 | Саша 2 | 2 | Лёша 3 | 1 | Петя 4 | 1 | Вася 5 | 2 | Гена 6 | 2 | Володя твой вариант: выбираем все города. далее в цикле делаем столько запросов (на список пользователей из этого города) сколько выбралось городов. то есть на тысячу городов будет тысяча запросов. субд просто ляжет от того что ей придется регулярно делать такие выборки. операция джоин изобретена давным давно а не мною сейчас. она позволяет объединять таблицы по какому-то признаку. кортежи одной таблицы дополняются всеми связанными кортежами из других таблиц. в нашем случае выбирая список пользователей (да, не города а пользователей) можно сразу дополнить информацие о городах. пользователь живет в каком-то городе - вот нам не только идентификатор но и название этого города Код (PHP): select * from users u left join cities c on city_id выбрать все поля из таблицы юзеров, присоединив к ним все поля из таблицы городов где идентификатор города в строке пользователя совпадает с идентификатором города в таблице городов. на выходе ты получаешь примерно такую результирующую таблицу: Код (PHP): user_id | city_id | user_name | city_name 1 | 1 | Саша | Караганда 2 | 2 | Лёша | Астана 3 | 1 | Петя | Караганда 4 | 1 | Вася | Караганда 5 | 2 | Гена | Астана 6 | 2 | Володя | Астана как видишь уже достаточно удобно для чтения. но тебе надо массив массивов оформить группируя по городам. как я уже сказал - проверил ключ, создал если нет, закинул если (или если уже) есть. Код (PHP): $data = []; while($row = mysqli_fetch_array($connection, $result) // начало тела цикла итерации результата { if (!isset($data[$row['city_name']])) // если нет такого имени города в ключах массива дейта { $data[$row['city_name']] = []; // объявим такой ключ как массив } $data[$row['city_name']][] = $row['user_name']; // закинем в "город" новое имя } // конец тела цикла итерации результата как видишь еще и код элегантный получается. я ожидаю от этого кода решения твоей задачи.
sergei1094, а почему ты думаешь, что можешь что-то требовать? Ты уж постарайся сделать сам, если не умеешь общаться. Забываешь говорить "спасибо" и "пожалуйста", дружок. [offtopic]Не раз замечал, что жители тюркоязычных регионов кажутся грубыми. Их как-будто унижает необходимость просить и благодарить. Дело, думаю, не в национальности (это могут быть русские, евреи, кто угодно), а в местных культурных особенностях.[/offtopic]
sergei1094 сделай сортировку в mysql через ORDER BY по полю city_id, в том запросе что тебе дал Ganzal, тогда можно будет загнать во временную переменную city_id и как он меняется при цикле выводить название города и данные, если city_id не изменился, то просто данные, выйдет тот список что тебе нужен, так как список отсортирован по городам и они идут по порядку.
вообще-то мой код уже создает нужный массив. вывод: ты нихyяшечки не запускал тот код из комментария, на который я потратил целых пятнадцать минут своей драгоценной жизни. а мог мы мид тащить да варды ставить. в общем огорчил ты меня.
может у тебя версия PHP старая? Прошлого тысячелетия например. Добавлено спустя 1 минуту 11 секунд: Как ты определил, может ты не правильно им воспользовался? Почему не спросить нормально? Сказать что выходит ошибка или не работает но с чего начать ты не знаешь.
ну извини, Серёга, что У ТЕБЯ старая версия пхп. я давно пишу на актуальных и СЛУЧАЙНО употребил синтаксис несовместимый с ТВОИМ ГОВНОМ МАМОНТА. да, я плохой. а ты опять постеснялся спросить. как и до этого с пеной у рта отказывался выдавать структуру таблиц. вот так ТЫ хочешь чтоб тебе помогли, ага. Добавлено спустя 59 секунд: ну замени $data=[]; на $data=array(); и ошибка исчезнет а моя репутация реабилитируется
так ты ж и сказал, дурачок. пользуясь случаем делаю тебе официальное предупреждение: надо быть вежливым или катись к чертовой бабушке. найди форум единомышленников и груби им.
ну в моем-то СВОЕОБРАЗНОМ коде совсем не такая конструкция. там я действительно объявляю массив. а у тебя какое-то упоминание ключа-пустой-строки.
ты чувак вообще не понимаешь программирования. ты создал массив. массив это просто набор значений. значения в массиве могут быть любыми - целочисленными, плавающими точками, булевыми, строковыми, объектами, и (внимание!) другими массивами. так вот, когда ты пишешь $data[0][1] ты обращаешься к ключу 1 массива, который хранится в ключе 0 массива который уже в свою очередь хранится в переменной дейта. то есть $data - массив и $data[0] - тоже массив. так вот я намекаю тебе на то что когда ты создаешь ключ в массиве дейта ты должен указать что значение этого ключа тоже массив чтоб потом в него добавлять ряд данных. извини, ты просил город-имя-имя-город-имя-имя и я тебе так и сделал. а у тебя вдруг какие-то идентификаторы появлись. ну то есть я понимаю что это за айдишники но черт побери ты сраный аутист дважды озвучил одну задачу, получил по ней решение, и потом обвиняешь меня в том что на самом деле задача у тебя была другая. виноват в случившемся только ты. зы. тут раздел для новичков. тут учатся, знаний набираются. а ты получил халявку. и еще нахамил всем кто с тобой общался. подумай над своим поведением.
Ganzal, а зачем это ? Код (PHP): if (!isset($data[$row['country_name']])) { $data[$row['country_name']]=[]; } всегда же просто так делали Код (PHP): while ($row = mysqli_fetch_array($sql)) { $data[$row['country_name']][] = $row['user_name'] } просто потому что инициализировать вроде правильнее ? Добавлено спустя 2 минуты 10 секунд: я понимаю инициализацию нужна, если переменной вообще не существует. но тут то просто индекса массива нету
просто привычка явно указывать с каким значением/типом переменной будет далее проводиться работа. да, что-то вроде инициализации.
дело, наверное, не в наглядности. сейчас мы работаем с массивом и можем добавлять ключи, а, допустим, если пытаться сделать инкремент числовому значению - схватишь нотис неизвестного ключа массива. то есть в случае с числом - приходится явно объявлять значение. чем мешает объявление пустого массива? да ничем. зато нотисов уж точно не будет.