Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 16.03.2016
Сообщений: 30
1

Как сделать, чтобы массив не перезаписывался?

21.03.2016, 00:48. Показов 2398. Ответов 15

Author24 — интернет-сервис помощи студентам
не могу понять почему двухмерный массив не наполняется а попросту перезаписывается. дергаю таблицу в массив, но мне надо чтобы в массив таблица записывалась не 1 рас а несколько но значения таблицы все теже т.е. идентична(или так нельзя делать?)
PHP
1
2
3
4
5
6
7
8
9
10
11
    function course ($course){ //функция таблицы course
        $array = array(array()); //нужно чтобы в массиве было еще несколько массивов
        for ($i=0;$i<2;$i++){
            while ($row = mysqli_fetch_assoc($course)){
                $array[] = $row; //
                //print_r ($array);
                }
                
                return $array;
        }
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.03.2016, 00:48
Ответы с готовыми решениями:

Как сделать так, чтобы файл перезаписывался, если он существует?
CreateFile(L&quot;CFLF.y&quot;, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_NEW,...

Сделать так, чтобы файл перезаписывался
private void button1_Click(object sender, EventArgs e) { FileStream stream3 =...

Массив: Как сделать так, чтобы результирующий массив представлял собой измененный по заданным правилам первый массив?
Доброй ночи форумчане, очередной нубо-вопрос не требует отлагательств имеется одномерный массив,...

Массив: как сделать, чтобы массив вводился с клавиатуры до заданного числа элементов?
Вопрос как сделать чтобы массив вводился с клавы, до числа элементов которое ты введёшь? int i;...

15
Фрилансер
Эксперт JSЭксперт HTML/CSSЭксперт PHP
1846 / 1342 / 599
Регистрация: 12.01.2011
Сообщений: 5,432
21.03.2016, 01:00 2
Что то я не пойму , зачем for?
PHP
1
$array[][] = $row; //
Добавлено через 8 минут
PHP
1
2
3
4
5
6
function course ($course){ //функция таблицы course
            while ($row[][] = mysqli_fetch_assoc($course)){
                }
                return $row;
        }
    }
0
0 / 0 / 0
Регистрация: 16.03.2016
Сообщений: 30
21.03.2016, 01:02  [ТС] 3
Цитата Сообщение от Azdeman Посмотреть сообщение
Что то я не пойму , зачем for?

$array[][] = $row; //
а как тогда несколько рас заполнить массив? я просто не имею представления как еще можно заполнить массив несколько раз одним и тем же значением без цикла?
0
Фрилансер
Эксперт JSЭксперт HTML/CSSЭксперт PHP
1846 / 1342 / 599
Регистрация: 12.01.2011
Сообщений: 5,432
21.03.2016, 01:09 4
А ну тогда вот так
PHP
1
2
3
4
5
6
    $arr = array(1,2,4,5);
        for($i=0;$i<2;$i++){
                for($j=0;$j<count($arr);$j++)
                    $count[$arr[$i]][] = $arr[$j];
        }
            print_r($count);
PHP
1
2
3
4
5
6
7
8
9
10
    function course ($course){ //функция таблицы course
            while ($row[] = mysqli_fetch_assoc($course)){
                }
              for($i=0;$i<2;$i++){
                for($j=0;$j<count($row);$j++)
                    $count[$row[$i]][] = $arr[$j];
        }
                return $count;
        }
    }
0
0 / 0 / 0
Регистрация: 16.03.2016
Сообщений: 30
21.03.2016, 01:43  [ТС] 5
тут в чем то ошибка(выдает недопустимое смещение)
PHP
1
2
3
4
5
6
7
8
9
function course ($course){ //функция таблицы course
            while ($row[] = mysqli_fetch_assoc($course)){
                }
              for($i=0;$i<2;$i++){
                for($j=0;$j<count($row);$j++)
                    $count[$row[$i]][] = $arr[$j];//тут ругается
        }
                return $count;
        }
0
Фрилансер
Эксперт JSЭксперт HTML/CSSЭксперт PHP
1846 / 1342 / 599
Регистрация: 12.01.2011
Сообщений: 5,432
21.03.2016, 01:45 6
Забыл заменить на $row.
PHP
1
2
3
4
5
6
7
8
9
function course ($course){ //функция таблицы course
            while ($row[] = mysqli_fetch_assoc($course)){
                }
              for($i=0;$i<2;$i++){
                for($j=0;$j<count($row);$j++)
                    $count[$row[$i]][] = $row[$j];//тут ругается
        }
                return $count;
        }
0
0 / 0 / 0
Регистрация: 16.03.2016
Сообщений: 30
21.03.2016, 01:55  [ТС] 7
если бы все так просто, я менял ошибка остается та же, содержимое таблицы может влиять на это каким то образом? я с таблицы два поля дергаю
Warning: Illegal offset type in C:\sql\OpenServer\domains\forms\index.php on line 26
вот такая ошибка 11 раз выдается))
0
Фрилансер
Эксперт JSЭксперт HTML/CSSЭксперт PHP
1846 / 1342 / 599
Регистрация: 12.01.2011
Сообщений: 5,432
21.03.2016, 02:09 8
Извините, походу мне пора спать....Не варит уже голова.
PHP
1
2
3
4
5
6
7
function course ($course){ //функция таблицы course
            while ($row = mysqli_fetch_assoc($course)){
                        $arr[] = $row ; 
                }
             $a = array_merge($arr,$arr);
                    return $a;
        }
1
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,211
21.03.2016, 09:01 9
Цитата Сообщение от Денис Голота Посмотреть сообщение
почему двухмерный массив не наполняется а попросту перезаписывается
походу ф-ю course() дёргаете несколько раз и при каждом вызове массив обнуляется
0
0 / 0 / 0
Регистрация: 16.03.2016
Сообщений: 30
21.03.2016, 12:06  [ТС] 10
ты видимо не правильно понял меня) вот мой код чего я добиваюсь, проблема что первый <select> наполняется без проблем а вот следующий с другим именем (или с таким же) уже нечего не принемает, выходит что массив из функции одноразовый, как его делать многоразовым что ли
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function course ($course){ //функция таблицы course
           $array = array();
           while ($row = mysqli_fetch_assoc($course)){
           
              
                $array[] = $row;
           }
            
                return $array;
     }
    
    
    
    
        $nomber = course($course);//выпадающее меню для course
        print_r ($nomber);
        echo "<select  name='course'>";//тут задам разные имена
        echo "<option>выберите курс</option>";
        foreach($nomber as $item)
        { 
        echo "<option value=' ".$item['id_course']." '>".$item['nomber']."</option>";//но опции везде будут одинаково набиваться
        } 
        echo "</select>"."<br /><br />";
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,211
21.03.2016, 12:44 11
Цитата Сообщение от Денис Голота Посмотреть сообщение
как его делать многоразовым что ли
ну например так:
PHP
1
2
3
4
5
6
course($course,$nomber);
function course ($course,&$nomber){ //функция таблицы course
           while ($row = mysqli_fetch_assoc($course)){
                $nomber[] = $row;
           }
}
но походу просто в последующих вызовах мускуль не может $course обработать
0
0 / 0 / 0
Регистрация: 16.03.2016
Сообщений: 30
21.03.2016, 13:31  [ТС] 12
а как можно сделать чтобы он мог обрабатывать функцию не один рас а несколько в разных местах вызова(т.е. сначала для одного тега вызвал её, потом для другого)
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,211
21.03.2016, 13:51 13
Цитата Сообщение от Денис Голота Посмотреть сообщение
а как можно сделать чтобы он мог обрабатывать функцию не один рас а несколько в разных местах вызова(т.е. сначала для одного тега вызвал её, потом для другого)
для этого старый вариант годится
0
0 / 0 / 0
Регистрация: 16.03.2016
Сообщений: 30
21.03.2016, 18:40  [ТС] 14
вот от этого и пошла проблема вся, что когда я вызываю второй раз функцию она уже не передает значения из базы данных
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,211
21.03.2016, 18:42 15
делайте echo $course в ф-ии и смотрите, что вы в мускуль шлёте
проверяйте руками в мускуле
1
0 / 0 / 0
Регистрация: 16.03.2016
Сообщений: 30
21.03.2016, 19:15  [ТС] 16
Спасибо всем кто помогал, все получилось я не видел очевидного, вызывал дважды функцию и каждый рас присваивал её переменной, когда можно было сделать это один рас и потом уже работать с переменной а не функцией, не знаю на сколько это удобно но все работает)
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 function course ($course){ //функция таблицы course
           $array = array();
           print_r ($course);//проверка
           while ($row = mysqli_fetch_assoc($course)){
                $array[] = $row;
                
           }
                return $array;
        }
    ///////////////////////
    $nomber = course($course);//вызывал внутри цикла..
    for ($i=0;$i<2;$i++){
        
        print_r ($nomber);//проверка
        echo "<select  name='course'>";
        echo "<option>выберите курс</option>";
        foreach($nomber as $item)
        { 
        echo "<option value=' ".$item['id_course']." '>".$item['nomber']."</option>";
        } 
        echo "</select>"."<br /><br />";
    }
0
21.03.2016, 19:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.03.2016, 19:15
Помогаю со студенческими работами здесь

Как сделать чтобы отображался массив из объектов?
Вот сам код. public class ArrayTest { public static void main(String args) { Clinic1 clinic...

Как сделать, чтобы функция возвращала массив?
Доброго времени суток! Есть функция которая находит значения 4х элементов массива. как сделать...

Как сделать, чтобы массив записывался в строку, а не столбцом?
#include &lt;iostream&gt; #include&lt;locale.h&gt; using namespace std; int main() {...

Как сделать чтобы значения из цикла входили в массив?
кк сделать чтобы значения y входили в массив и там определялось максимальное значение? или можно...


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

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