Значит так:
данный цикл создавался для того чтоб данные из базы упаковать в массив Стоит ли начинать цикл, если не знаем вернул ли запрос результат? Почему не?: if($VB) { if(mysql_num_rows($VB)) { while($row = mysql_fetch_object($VB)) $vbi[] = $row->field_name; } else $msg = 'Empty'; } else $msg = DEBUG ? __FILE__ .'/'. __LINE__ .'/'. mysql_error() : 'Sorry'; где $msg - определяет для клиента сообщение, DEBUG - задает режим отладка/вывод. Зачем $vbi[$i]? Вы думаете что таким образом индексы массива станут более "индексными"? Собственно получить всю структуру вашего массива для передачи клиенту можно сразу, без промежуточного получения массива. а главный вопрос как мне избежать вывода этого массива на главной странице из-за print json_encode($all); Не выполнять print, что еще можно сказать. |
Цитата:
|
Я не поучаю, я вопрошаю - почему так пишите? Как это понимать - "я пробовал не выполнять принт и ничего не работало, и пробовал вместо принт писать ретурн, так же не работало"? Вы что не представляете задачу, которую решаете, не понимаете назначений print, return, etc...? Ну тогда либо бросайте это занятие, либо учитесь применять инструменты языка.
$vbi[] = $row->field_name; - это всего лишь пример показывающий, что указывать принудительно индекс массива там, где в этом нет необходимости нет смысла. Конечно, в вашем случае помещение в этот индекс массива (ряда из ресурса) это $vbi[] = $row; А вообще пора отвыкать от MySQL расширения, не будет в дальнейшем РНР его поддерживать, и изучайте PDO. В этом случае под РНР версии не ниже 5.4 ваш запрос и результат мог бы выглядеть так: $VB = $db->prepare("SELECT id, nome_corto FROM criteri WHERE id_filter=? AND meta=?"); $VB->execute([$filter_id, 'Vetri decorati'])->fetchAll(); здесь fetchAll() возвращает готовый массив всех возвращенных запросом рядов. Какой тип будет возвращаться можно установить в настройках PDO. Можно и "на лету менять" тип, если настроили возвращать как объекты, а в этой выборке нужен индексный массив, значит можно для этой выборки это указать - fetchAll(PDO::FETCH_NUM). Ошибки обрабатывать нужно глобально. Если определяете для диалога клиент-сервер тип данных как json, то не так и сложно определить соглашения для всего приложения - если клиент получил объект со свойством err, значит вернулась ошибка, выводится сообщение об ошибке и обслуживаемое не индивидуальным сценарием для каждого такого диалога, а, пусть функцией, которая выводит сообщения. При этом другие действия на клиенте не выполняются, смысла нет. Если же объект возвращенный содержит свойство msg, значит может выводится и сообщение, и выполняться иные сценарии с возвращенными данными. У вас же вообще в приложение не заложено никакой логики, вот вы и гадаете. Вот только начинать писать надо не с print и т.п., а с понимания того, чего нужно, и что для этого потребуется, и от общего к частному, а не наоборот. |
вернусь к началу чтоб больше не было слов но отсутствии логики..
задача состояла в следующем: создать селект после выбора в котором будут загружаться из базы другие N'ые селекты с данными и обязательно, без перезагрузки страницы! вот и вся логика! я знаю что для реализации этого вопроса необходима форма, код клиента и код сервера, обработчика. учитывая большой недостаток моих знаний, я начал рыскать ответ в сети, то что я выкладывал это и есть пример из сети который я лишь пытался адаптировать под свои требования! в процессе разбора и адаптирования все заработало за исключением того что выводится массив на сайт в виде строки благодаря принт! кстати говоря значения принт ретурн еко и др. я прекрасно знаю но в среде php! а так же именно везде я встречаю что! чтоб передать ответ от сервера в виде массива необходимо сделать print json_encode($array) или echo json_encode($array) именно так я и поступал! логика есть и она ясна как день! я не взял эту задачу с потолка и не пытаюсь просто так достать людей! |
Логика всего приложения имеется ввиду, а не частностей. Если она будет, то и код ваш будет соответствовать ей, а этого нет у вас.
Не обязательно print или echo, если на этом работа сервера заканчивается, а далее есть еще код, то чтобы он не выполнялся нужно exit(json_encode($array)); Если у вас вместо того чтобы эти данные вернулись в ответ на асинхронный запрос они они вываливаются на страницах, то именно логика вашего приложения и хромает. |
Ну ты индеец... Ошибка какая?
И еще посмотри на вкладке Сеть ответ от сервера. |
Часовой пояс GMT +3, время: 14:41. |