denshush2
@denshush2
The Denshush

Как устроить организовать array() ?

Всем привет есть задача.
Есть запрос к базе данных *$query ="SELECT * FROM menu ORDER BY position"
if($result = mysqli_query($connection, $query)){
$menu_all = array();
while ($row = $result->fetch_assoc()){
$menu_all[] = $row;
}
}.

Задача в том что в данной таблицы есть поле under которое по дефолту стоит *0* и как в запросе указать что все линии с "under == 0" идут допустим в один array а те где "under > 0" идут в другой array.
Спасибо
  • Вопрос задан
  • 2357 просмотров
Решения вопроса 4
@iSensetivity
бухгалтер, програміст-самоук
В цикле
if($row['under'] == 0){
$var_s_0_all[] = $row;
} else {
$var_bez_0_all[] = $row;
}
Ответ написан
Alexufo
@Alexufo
противоречивый, сложный, весь компьютерный.
Один запрос -один ответ. На один запрос два ответа - помоему это чего то новенькое)
1) два запроса
2)массив разбиваете сами на два
3) в переборе ставите нужно условие
Ответ написан
Комментировать
@Little_CJIOH
В запросе - никак.
Варианта два:
Либо почитать любой базовый туториал по sql, вплоть до статьи в википедии и составить 2 запроса.
Либо оставить запрос как есть и сортировать результат по массивам самому.

Извините, не удержался.
Еще в википедии есть статьи про пунктуацию и падежи. А вот что делать с связностью предложений я вам не посоветую.
Ответ написан
@vdem
Три человека уже верно ответили, и я еще добавлю.
1. Не пишите так, есть риск нарваться на зарезервированные слова:
SELECT * FROM menu ORDER BY position
Лучше так:
SELECT * FROM `menu` ORDER BY `position`

2. Не используйте mysql_xxx, mysqli_xxx, pg_xxx, msql_xxx. Допустим, Вам нужно с MySQLi мигрировать на другую БД, например MSSQL сервер. Будете по всему коду искать эти mysqli_ и менять. Лучше так:
$pdo = new PDO('mysql:host=locahost;dbname=mydatabase', 'user', 'passsword');
$query->prepare('SELECT * FROM `menu` ORDER BY `position`');
$query->execute();
$menu_all = $query->fetchAll(PDO::FETCH_ASSOC);

Так Вы не будете особенно зависеть от БД, и еще есть плюс в передаче параметров в запрос - не нужно будет беспокоиться об избегании SQL injection.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽