powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP+MySQL Запись в массив
11 сообщений из 11, страница 1 из 1
PHP+MySQL Запись в массив
    #38902224
marisa_marisa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет, необходимо выполнить запись в массив полученного значения из БД,если оно удовлетворяет условию. Вот код, но значения не выдает. Спасибо за помощь,прошу не кидаться камнями.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
[SRC php]
$ID=1;
$ans1 = Array();

for ($i=1; $i<21; $i++){
	if ($norm_getting[$i] ==1){
	$query = "SELECT * from sfer_name LEFT JOIN calc on sfer_name.id_sfer = calc.id_sfer where calc.ID = $ID and calc.id_sfer = $i and calc.norm_getting = $norm_getting[$i]"; // получаем значения из таблицы с полученными ответами
	$sql = mysql_query($query,$link)or die(mysql_error());
	$row =  mysql_fetch_array($sql);
	$ans1[]=$row['sfer_name'];
		} 
}
echo '<b>Особый интерес к сферам труда: '.$ans1 . '</b></br>';

[/SRC]
...
Рейтинг: 0 / 0
PHP+MySQL Запись в массив
    #38902229
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
marisa_marisa,
вы уверены, что 21 запрос к базе это нормально?
...
Рейтинг: 0 / 0
PHP+MySQL Запись в массив
    #38902235
marisa_marisa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kunaksergey,
так необходимо для данной задачи
...
Рейтинг: 0 / 0
PHP+MySQL Запись в массив
    #38902255
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
marisa_marisa,
массив через echo не выводится. поставьте var_dump($ans1),что бы посмотреть, есть ли что в массиве вообще.
...
Рейтинг: 0 / 0
PHP+MySQL Запись в массив
    #38902274
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
marisa_marisa,
массив через echo не выводится. поставьте var_dump($ans1),что бы посмотреть, есть ли что в массиве вообще.
...
Рейтинг: 0 / 0
PHP+MySQL Запись в массив
    #38902287
marisa_marisa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kunaksergey, да, массивы заполнены как надо. Я понимаю, что вопрос глупый, но как теперь вывести это?
array(1) { [0]=> string(39) "Общественные системы" } - Не очень хорошо смотрится, как вывести значение массива
...
Рейтинг: 0 / 0
PHP+MySQL Запись в массив
    #38902297
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
marisa_marisakunaksergey, да, массивы заполнены как надо. Я понимаю, что вопрос глупый, но как теперь вывести это?
array(1) { [0]=> string(39) "Общественные системы" } - Не очень хорошо смотрится, как вывести значение массива

foreach($ans1 as $value){
echo '<b>Особый интерес к сферам труда: '.$value . '</b>';
}
...
Рейтинг: 0 / 0
PHP+MySQL Запись в массив
    #38902301
marisa_marisa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
marisa_marisakunaksergey, да, массивы заполнены как надо. Я понимаю, что вопрос глупый, но как теперь вывести это?
array(1) { [0]=> string(39) "Общественные системы" } - Не очень хорошо смотрится, как вывести значение массива

Если указываю echo $ans1[0]; то выводит элемент с 0 индексом, но как быть если массив состоит из нескольких элементов и их значение не константа, а меняется в зависимости от ID пользователя
...
Рейтинг: 0 / 0
PHP+MySQL Запись в массив
    #38902306
marisa_marisa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kunaksergey,

огромное спасибо! Все работает
...
Рейтинг: 0 / 0
PHP+MySQL Запись в массив
    #38902373
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автортак необходимо для данной задачи
Код: sql
1.
2.
3.
4.
SELECT * from sfer_name 
LEFT JOIN calc on sfer_name.id_sfer = calc.id_sfer 
WHERE calc.ID = $ID AND calc.id_sfer IN (1, 2, .... 21) 
AND calc.norm_getting = 1


а так не? Если не нужны все номера от 1...21, то в том же for соберите нужные и поставьте в IN. Запросы к базе в цикле совсем уж не true.

И Вам точно там нужен именно LEFT JOIN ?
...
Рейтинг: 0 / 0
PHP+MySQL Запись в массив
    #38902467
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marisa_marisaВсем привет, необходимо выполнить запись в массив полученного значения из БД,если оно удовлетворяет условию. Вот код, но значения не выдает. Спасибо за помощь,прошу не кидаться камнями.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
[SRC php]
$ID=1;
$ans1 = Array();

for ($i=1; $i<21; $i++){
	if ($norm_getting[$i] ==1){
	$query = "SELECT * from sfer_name LEFT JOIN calc on sfer_name.id_sfer = calc.id_sfer where calc.ID = $ID and calc.id_sfer = $i and calc.norm_getting = $norm_getting[$i]"; // получаем значения из таблицы с полученными ответами
	$sql = mysql_query($query,$link)or die(mysql_error());
	$row =  mysql_fetch_array($sql);
	$ans1[]=$row['sfer_name'];
		} 
}
echo '<b>Особый интерес к сферам труда: '.$ans1 . '</b></br>';

[/SRC]

По сути вашего цикла, вы 21 раз обращаетесь к БД? при этом первый параметр остается неизменным, меняется только номер обращения и то только при условии, которое вы проталкиваете далее в запрос напрямую... то есть последний параметр передается тоже всегда в запрос 1-кой.
Разве такой запрос не эквивалентен вашим 21?
Код: sql
1.
2.
3.
SELECT * FROM sfer_name
LEFT JOIN calc on sfer_name.id_sfer = calc.id_sfer
WHERE calc.ID = 1 AND calc.id_sfer between 1 to 20 AND calc.norm_getting = 1



Отличие только в том, что поле calc.id_sfer в вашем случае есть набор конкретных значений, удовлетворяющих условию, а остальные вы НЕ запрашиваете ... а в означенном запросе запросятся все значения, но только при выполнении того условия, которое вы предварительно проверяете в цикле. Если в БД допускается исполнение условия для "лишних" значений счетчика, то да. Такая метаморфоза неприменима, но мне кажется что "вряд ли"...

Тогда такой вариант чем не "айс"?:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
$inIdSfer = array();

for ($i=1; $i<21; $i++)
	if ($norm_getting[$i] ==1)
		$inIdSfer[] = $i;

$query = 'SELECT * from sfer_name LEFT JOIN calc on sfer_name.id_sfer = calc.id_sfer where calc.ID = 1 and calc.id_sfer IN('
                . implode(',',$inIdSfer) . ') and calc.norm_getting = 1';

// ... ну и далее уже сама выборка ...
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP+MySQL Запись в массив
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]