Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/26: Рейтинг темы: голосов - 26, средняя оценка - 4.65
2169 / 1652 / 840
Регистрация: 10.01.2015
Сообщений: 5,190
1

PHP вывод из массива по условию

10.01.2015, 13:59. Показов 4805. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую, господа!
Я новичок, так что не судите строго, плз.
Требуется помощь!
Постараюсь предельно четко сформулировать.

Если файл:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
$choose_disk = mysql_query("SELECT * FROM disks ORDER BY diskName");
        $result = mysql_fetch_array($choose_disk);
        
            function select_quantity(){
            
            echo '<td><select name="diskQuantityOrder[]" form="orderEnd">';
            
                $x=0;
                echo '<option>'.$x.'</option>';
                while ($x <= 50){
                $x++; // Увеличение счетчика
                echo '<option>'.$x.'</option>';
                }
            
            echo '</select></td>';
            
            }
 
echo '<table>';
                        
                while($result = mysql_fetch_array($choose_disk))
                        {
                        
                                $diskArticle = $result['diskArticle'];
                                $diskName = $result['diskName'];
                                $diskQuantity = $result['diskQuantity'];
                        
                                    echo '<tr class="hover">';
                                        echo '<td>'.$diskArticle.'</td>';
                                        echo '<td>'.$diskName.'</td>';
                                        echo select_quantity();
                                        echo '<td>'.$diskQuantity.'</td>';
                                        echo '<td><input name="diskName[]" type="hidden" value="'.$diskName.'" form="orderEnd"></td>';
                                                    
                                    echo '</tr>';
                        }
                        echo '<tr>';
                        echo '<td></td>
                                    <td></td>
                                    <td></td>
                                    <td>
                                    <!--Форма подтверждения заказа начало-->
                                    <form action="action.php" method="post" id="orderEnd">
                                    <input name="confirmOrderEnd" type="hidden" value="12345">
                                    <input name="submit" type="submit" value="OK">
                                    </form>
                                    <!--Форма подтверждения заказа начало-->
                                    </td>';
                        echo '</tr>';
                echo '</table>';
Есть обработчик:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
if ($confirmOrderEnd){
            
                
                foreach($_POST['diskQuantityOrder'] as $diskQuantityOrder)
                foreach($_POST['diskName'] as $diskName)
                
                if($diskQuantityOrder > 0){
                
                echo '<br>'.$diskName.$diskQuantityOrder;
            }
                
            
        }
Все массивы выводятся, все в порядке. Но, когда я выбираю значение определенной строки в файле, по данному условию ($diskQuantityOrder > 0) обработчик выводит весь массив diskName со значением, которое я выбрал.

Не могу понять, как сделать так, чтобы выводилось только то значение из массива diskNamе, условием которого является ($diskQuantityOrder > 0).

Пожалуйста, помогите!!!

Добавлено через 13 минут
Дополнение:

Когда обработчик выводит только:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
if ($confirmOrderEnd){
            
                
                foreach($_POST['diskQuantityOrder'] as $diskQuantityOrder)
                
                if($diskQuantityOrder > 0){
                
                echo '<br>'.$diskQuantityOrder;
            }
                
            
        }
то выводятся в столбик именно те значения (сколько бы их ни было), которые я выбрал.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2015, 13:59
Ответы с готовыми решениями:

Вывод из массива по условию
int arr = {56, 52, 8, 12, 46, 77, 82, 72, 48, 16, 81, 95, 91, 64, 3, 47, 39, 88, 33, 35}; int n...

Вывод элементов массива по условию
Дан массив вещественных чисел. Вывести на экран новое состояние массива, в котором: а) каждый...

Вывод массива по заданному условию
нужно ввести массив одномерный, а потом сделать так чтобы на экране отобразился сам массив а под...

Вывод по условию из многомерного массива
Приветствую, форумчане! Нуждаюсь в подсказке по работе с циклом foreach для разбора многомерного...

8
16 / 12 / 13
Регистрация: 05.01.2015
Сообщений: 66
10.01.2015, 14:02 2
В циклах, всегда используй скобки {}, очень много проблем возникает из-за них

PHP
1
2
3
4
5
6
7
8
9
10
11
if ($confirmOrderEnd){
            
    foreach($_POST['diskQuantityOrder'] as $diskQuantityOrder){
        foreach($_POST['diskName'] as $diskName){
            if($diskQuantityOrder > 0){
                echo '<br>'.$diskName.$diskQuantityOrder;
            }
        }
    }
 
}
0
2169 / 1652 / 840
Регистрация: 10.01.2015
Сообщений: 5,190
10.01.2015, 14:13  [ТС] 3
Та же ерунда, дружище.

Добавлено через 2 минуты
Массив:

Array
(

[diskQuantityOrder] => Array
(
[0] => 0
[1] => 2
[2] => 0
[3] => 0
[4] => 0
[5] => 0
[6] => 0
[7] => 0
и тд

[diskName] => Array
(
[0] => значение
[1] => значение
[2] => значение
[3] => значение
[4] => значение
[5] => значение
[6] => значение
[7] => значение
и тд
)
0
16 / 12 / 13
Регистрация: 05.01.2015
Сообщений: 66
10.01.2015, 17:15 4
Лучший ответ Сообщение было отмечено Пифагор как решение

Решение

Ага, я понял что нужно

PHP
1
2
3
4
5
6
7
8
9
10
if ($confirmOrderEnd){
            
    foreach($_POST['diskQuantityOrder'] as $key => $diskQuantityOrder){
       if($diskQuantityOrder > 0){
            $diskName = $_POST['diskName'][$key];
            echo '<br>'.$diskName.$diskQuantityOrder;
       }
    }
 
}
1
2169 / 1652 / 840
Регистрация: 10.01.2015
Сообщений: 5,190
10.01.2015, 17:19  [ТС] 5
Хвала, тебе, БРАТ!!! Долгие лета тебе!!!!!
0
16 / 12 / 13
Регистрация: 05.01.2015
Сообщений: 66
10.01.2015, 17:21 6
Лучший ответ Сообщение было отмечено Пифагор как решение

Решение

Хех )
1
2169 / 1652 / 840
Регистрация: 10.01.2015
Сообщений: 5,190
10.01.2015, 17:23  [ТС] 7
А я уже стал думать, чтобы создать поле в таблице, которое будет временным для записи $diskQuantityOrder, сделать вывод на основе значений этого поле и тд.
В общем, была дверь, а я хотел через забор махнуть...
Еще раз благодарен!!! Ты меня просто спас!!!

Надо с массивами практиковаться.
0
16 / 12 / 13
Регистрация: 05.01.2015
Сообщений: 66
10.01.2015, 17:28 8
Лучший ответ Сообщение было отмечено Пифагор как решение

Решение

Да не за что!
Попробуй уже тогда так:
PHP
1
2
3
4
5
6
7
8
9
10
if ($confirmOrderEnd){
            
    foreach($_POST['diskName'] as $key => $diskName){
        $diskQuantityOrder = $_POST['diskQuantityOrder'][$key];
        if($diskQuantityOrder > 0){
            echo '<br>'.$diskName.$diskQuantityOrder;
        }
    }
 
}
Просчитывать массив с именами дисков правильнее, удобнее будет потом добавить ещё какой-то параметр, вроде этого:
PHP
1
$diskSize = $_POST['diskSize'][$key];
Да и читается код лучше.
1
2169 / 1652 / 840
Регистрация: 10.01.2015
Сообщений: 5,190
10.01.2015, 17:37  [ТС] 9
Вот дряньство... Смотрю на массивы, как в китайский словарь...

В этот массив параметры добавлять не надо будет точно.

Если честно, то это очень маленькая прога (первая в моей практике) из 1 файла и 1 обработчика, из которого данные из 5ти переменных будут уходить на почту. Вот и все. Но с этим я намерен разобраться сам...
0
10.01.2015, 17:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2015, 17:37
Помогаю со студенческими работами здесь

Вывод на печать часть массива по условию
Добрый ночи. Помогите, пожалуйста с задачей в турбо паскале. Очень нужно полное решение. Дан массив...

Массив: Вывод на экран массива согласно условию
var a:arrayof integer; i,j,x,n,p,k:integer; begin write('n='); readln(n); for i:=1 to n do...

Php вывод массива
Короче есть форма, которая принимает значения. Например ввожу 5. Хочу получить такой ряд 1 2 3...

вывод массива в php
Помогите вывести массив. Есть массив полученный из базы данных: Array ( =&gt; 1 =&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru