Прошу помощи, Есть mysql_fetch_array заводов и ещё один mysql_fetch_array сотрудников на этих заводах В таблице сотрудников есть поле zavodID к примеру, Как мне вывести данные в виде: Завод1 Сотрудник1 Сотрудник2 Сотрудник3 Завод2 Сотрудник4 Завод5564 Сотрудник52204 Я делал: PHP: do { printf( "выводим завод" do { if ($zavod["id"] == $sotr["zavodID"]) { выводим сотрудника } } while ($sotr = mysql_fetch_array(запрос_сотрудников)) ); } while ($zavod = mysql_fetch_array(запрос_заводов)) выводит ошибку T_DO, что где-то, что-то не так... Прошу помощи
Попов детектед. https://php.ru/manual/control-structures.while.html https://php.ru/manual/function.mysql-fetch-array.html - читать после слова "Внимание"
Есть такое дело, Попробую дома ещё посмотреть, но не знаю как получится, если что, так полный код вывод скину, Если быть точным то ошибка такова - Parse error: syntax error, unexpected T_DO on line 56 как я понял - это означает неправильное построение циклов
Добрый вечер, помогите разобраться, всё никак не получается, PHP: do { printf( "<div>" .$result_array_zavodov["name"] ."</div>" //.$result_array_teams["id"] do { if($array_users["zavodID"] == $result_array_zavodov["id"]) echo $teamID; } while($array_users = mysql_fetch_array($query_users)); ."<div>" ."Люди на заводе" ."</div>" ); } while($result_array_zavodov = mysql_fetch_array($query_zavodov)) Вот при прохождении такого коды, выводит ошибку, Parse error: syntax error, unexpected T_DO in Z:\home\localhost\www\project\teams_composition.php on line 58 Помогите переписать конструкцию, возможно через for, За ранее благодарен !
Раньше по Попову изучал, сейчас в другом работаю, а код пишу так, чтоб не забыть) 16 и 17 строка - это разве не закрытие printf ?
@ZlobnyKolob printf должен быть закрыт в 6 строке. И не должен в аргументах содержать конструкции типо while, if...
PHP: do { printf( "<div>" .$result_array_zavodov["name"] ."</div>" ); do { if($array_users["zavodID"] == $result_array_zavodov["id"]) echo $teamID; } while($array_users = mysql_fetch_array($query_users)); } while($result_array_zavodov = mysql_fetch_array($query_zavodov)); Вот такое код, как я понимаю должен заработать ?
@ZlobnyKolob Просто перенести из строки 17 ");" в строку 6. В строку 17 добавь точку с запятой. --- Добавлено --- @ZlobnyKolob проверь свой код. Ошибки есть? --- Добавлено --- Лучше в место printf использовать echo.
Которые день сижу и ничего не получается, помогите с кодом, Задача: есть два массива mysql_fetch_array МассивЗаводов и МассивРабочих У массива заводов есть автозаполняемое поле ID, у рабочих есть поле IDзавода, Данные необходимо вывести таким образом: Завод 1 Рабочий1, Рабочий 2360, Рабочий 125, Завод 2 Рабочий 32045, Рабочий 40524, Завод 3 и так далее... Прошу помощи !
PHP: цикл { $arr[$row['завод']][] = $row; } var_dump($arr); тогда получится, что они напихались по заводам. в идеале даже так: PHP: $arr[$row['завод']][$row['id']] = $row;
Ну поищи по форуму. Почему do-while? Вот серьёзно, зачем? @igordata правильно подсказывает, сначала собрать всё в массивах потом выводить, но тут бы цикл верный для начала использовать... Здесь 1000 раз обсуждалось, почему неправильно использовать для этих целей do-while
Я сделал все как Вы и говорили, получился массив Завод1 в нем массив работников, но только один работник(последний) Завод2 в нем массив работников, но тоже только последний работник внесен, не подскажите почему может так происходить ? do { } while () Вот так обхожу запрос из базы
И немного говнокода по вашей задаче как пример: Код (Text): $z = mysql_query("SELECT * FROM zavod"); $za = mysql_fetch_array($z); do { echo $za['zavod']; $r = mysql_query("SELECT * FROM rab WHERE '$za[id]'=zavidid"); $ra = mysql_fetch_array($r); do{ echo $ra['name']; } while($ra = mysql_fetch_array($r)); } while($za = mysql_fetch_array($z));
запрос в цикле, каеф)) --- Добавлено --- поставил вторую квадратную скобочку(которую пропустил) и волшебство, все работает, создает массивы заводов и заполняет их работниками, большое Вам спасибо)