Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 1
Регистрация: 29.06.2014
Сообщений: 48
1

Вместо создания одного массива создает несколько

08.09.2016, 19:32. Показов 670. Ответов 8
Метки нет (Все метки)

Здравствуйте. Простите за наглость но задам два вопроса.
1 Вместо одного массива создает несколько.
Вот сам код:
PHP
1
2
3
4
5
6
7
8
9
$array = mysql_fetch_array($result);
$count= mysql_num_rows( $result );
$img=array();
   do
     {
      $img[]= $array['nameimage'];
      echo json_encode($img,JSON_UNESCAPED_UNICODE);
      }
   while($array = mysql_fetch_array($result));
В результате ожидается массив вида
["Название первого изображения", "Название второго изображения", ..., "Название последнего изображения"];.
На самом деле получаем вот такие три массива
а.["Название первого изображения"];
б. ["Название первого изображения","Название второго изображения"];
в. ["Название первого изображения",Название второго изображения",..., Название последнего изображения"];.
2. Имеется jquery скрипт который воспринимает созданный нами массив.
Вот этот скрипт
Javascript
1
2
3
4
5
6
7
8
9
$(document).ready(function(){
var add="<?php echo $count;?>" ;
    for(i=0;i<add;i++)
    {   
    var image=[<?php echo json_encode($img,JSON_UNESCAPED_UNICODE)?>];
    image[i]
    $("<div class=imagediv id="+i+">"+image[i]+"</div><div class=contentdiv id="+i+"></div>").appendTo("#contener");
    }                   
});
когда в этой строке написано ["Первый пункт","второй пункт","Третий пункт"], тогда работает все нормально в указанный див добавляется нужная надпись. Когда же передается массив из php:
[<?php echo json_encode($img,JSON_UNESCAPED_UNICODE)?>];, то он публикуется весь в одном блоке, а не каждый элемент массива в новом блоке.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.09.2016, 19:32
Ответы с готовыми решениями:

Происходит несколько редиректов 301 вместо одного
Здравствуйте. Проблема следующего характера. Сайт переехал на новый движок. С вордпресса на модекс....

Instantiate создает 2 обьекта вместо одного
Хочу содать в камере один пустой обьект, однако содается два: один в корне сцены, а второй, с...

Выводится несколько рейсов вместо одного
Доброго вечера форумчане! Есть такой вопрос: не могу понять, почему при поиске рейса по номеру...

Цикл прокручивается несколько раз, вместо одного
Добрый вечер. Недавно начал изучать Java. Написал простенькую программу с &quot;System.in.read()&quot; и...

8
Эксперт PHP
5509 / 3975 / 1420
Регистрация: 06.01.2011
Сообщений: 10,948
08.09.2016, 19:52 2
1) Вынесите вывод из цикла:
PHP
1
2
3
4
5
$img=array();
do{
    $img[]= $array['nameimage'];
}
while($array = mysql_fetch_array($result));
2) Попробуйте так:
Javascript
1
2
3
4
5
6
7
8
$(document).ready(function(){
    var image=[<?php echo json_encode($img,JSON_UNESCAPED_UNICODE)?>];
    for(i=0;i<image.length;i++)
    {
    image[i]
    $("<div class=imagediv id="+i+">"+image[i]+"</div><div class=contentdiv id="+i+"></div>").appendTo("#contener");
    }                   
});
1
Kerry_Jr
08.09.2016, 22:01
  #3

Не по теме:

Цитата Сообщение от Para bellum Посмотреть сообщение
Javascript
1
image[i]// 5 строка
Сразу видно, что ТС далек от программирования :)

0
0 / 0 / 1
Регистрация: 29.06.2014
Сообщений: 48
08.09.2016, 23:51  [ТС] 4
Para bellum, стало намного лучше, спасибо.
0
0 / 0 / 1
Регистрация: 29.06.2014
Сообщений: 48
09.09.2016, 00:24  [ТС] 5
Это уже не относится к теме, записывается этот массив одной строкой, вместо искомого варианта чтоб каждый элемент, записывался в новый div Например, массив ["Первый элемент","Второй элемент", "Третий элемент" ] созданные непосредственно в jquery записывает каждый элемент в свой div, а массив переданный из php пишется в один блок.
Миниатюры
Вместо создания одного массива создает несколько   Вместо создания одного массива создает несколько  
0
0 / 0 / 1
Регистрация: 29.06.2014
Сообщений: 48
09.09.2016, 00:39  [ТС] 6
Kerry_Jr, я только изучаю php, поэтому мне не стыдно показаться дураком, и именно поэтому задам еще один вопрос. цитируя image[i]// 5 строка. Сразу видно, что ТС далек от программирования. почему image[i] плохо?
0
Эксперт PHP
5509 / 3975 / 1420
Регистрация: 06.01.2011
Сообщений: 10,948
09.09.2016, 06:02 7
Так у Вас же массив из PHP записывается в другой массив, а потом Вы обращаетесь к вложенному, как к строке. Надо так:
Цитата Сообщение от Para bellum Посмотреть сообщение
var image=<?=json_encode($img, JSON_UNESCAPED_UNICODE)?>;
Сразу этого не заметил, извините.
1
0 / 0 / 1
Регистрация: 29.06.2014
Сообщений: 48
09.09.2016, 09:19  [ТС] 8
Теперь весь код работает, как и предполагалось, спасибо за советы.
0
Эксперт PHP
3090 / 2579 / 1216
Регистрация: 14.05.2014
Сообщений: 7,202
Записей в блоге: 1
09.09.2016, 15:14 9
NikolayPC, потому что эта строка ничего не делает. Она там ни к чему. Дураком вас никто не называл, даже не намекал на это.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.09.2016, 15:14
Помогаю со студенческими работами здесь

Explorer отправляет несколько post запросов вместо одного
Через мазилу и гуглхром работает нормально, но вот эхплорер11 почему-то шлёт по несколько запросов...

Asus x55a - Клавиатура: скачет курсор, несколько символов вместо одного
При наборе текста проявляются след. проблемы: 1. Курсор может переместиться в произвольное...

Вывод одного и того же числа вместо элементов массива
Студия выдает какое-то одинаковое число на всех местах массива,вместо чисел( #include...

перевод данных из одного строкового массива в несколько
ребят, помогите) в общем есть ,например, строковый массив, пример строки: Петров Иван 67 87 ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru