элементы массива записать в строку.

JohnB

Новичок
элементы массива записать в строку.

Есть массив $mailer в нем может быть до 10 элементов
Нужно записать значение его элементов в базу, но при этом в одно поле.

Если вставить запрос на вставку внутри цикла, добавится столько записей сколько элементов массива. т.е.

foreach ($mailer as $k => $val) {

mysql_query ("INSERT INTO sib_alert (id_zaya, to_email, to_name, who, mess, times) VALUES ('$id', '$val', '', '$login[2]', '$mess', '$tstamp')") or die ("Не могу добавить запись");
}

Если вне, 1 запись с последним элементом массива.

Вопрос. Как элементы массива записать в строковую переменную, чтобы потом вне цикла добавить запись с его значениями в поле to_email. ?
 

Фанат

oncle terrible
Команда форума
Если вставить запрос на вставку внутри цикла
значит, наверное, запрос на вставку надо вставить не внутри цикла?

-~{}~ 29.08.07 12:22:

Если вне, 1 запись с последним элементом массива.
значит, наверное, надо исправить код так, чтобы в запрос попадали все записи, а не одна?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
JohnB
Нужно записать значение его элементов в базу, но при этом в одно поле.
А зачем?
чтоб потом с такими=же радостями "доставать" из базы то, что нужно.


Если вставить запрос на вставку внутри цикла, добавится столько записей сколько элементов массива. т.е.
http://phpfaq.ru/mysql

-~{}~ 29.08.07 11:24:

А....
блин понял
Нужно записать значение его элементов в базу, но при этом в одно поле.
не в поле а в строку.

Читайте всё по ссылке. Не спеша и внимательно.
 

bgm

 
1) Использовать элементарные конструкции и операторы: цикл и конкатенацию.

2) Почитать руководство раздела работы со строками: http://ru2.php.net/manual/ru/ref.strings.php

P.S. Первый вариант будет самым правильным если хочешь научиться чему-нибудь.
 

JohnB

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


Mr_Max,

Зачем надо. Чтобы потом при запросе в базу функция mail() не выполнялась опять же в цикле столько раз сколько записей возвращено!

-~{}~ 29.08.07 12:27:

Спасибо, народ повтыкаю. Если что еще спрошу. просьба не прикрывать топ.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
JohnB
Зачем надо. Чтобы потом при запросе в базу функция mail() не выполнялась опять же в цикле столько раз сколько записей возвращено!
Без обид.
Вы даже не имеете представления что такое БД и как с ней работать.
Читайте это
http://phpclub.ru/detail/article/2000-11-21
http://phpclub.ru/detail/article/2000-12-05
http://phpclub.ru/detail/article/2000-12-04
 

JohnB

Новичок
Думаю что implode(); здесь поможет. Я прав?

Текст:

foreach ($mailer as $k => $val) {

$pp = implode(",", $mailer);
}

print "$pp <br>";

// выдает все элементы массива с запятой.

-~{}~ 29.08.07 12:38:

Mr_Max , ты не прав. Я имею очень хорошее представление и работаю.

-~{}~ 29.08.07 12:42:

Mr_Max , Можно узнать с чего ты так решил?
Может быть я описываю все не очень умным языком. Но синтаксис запросов я знаю хорошо.
 

bgm

&nbsp;
JohnB
Скажите, а вот банальная вот такая конструкция совсем на ум не приходила?

PHP:
$tmp = "";
foreach ($mailer as $v) {
$tmp = $tmp .  ";" . $v ;
}
 

Фанат

oncle terrible
Команда форума
JohnB
так опиши нормальным языком.
что у тебя лежит в массиве $mailer?

и почему бы тебе не почитать документацию на функцию implode?
 

JohnB

Новичок
*****, в данный момент читаю.
Постораюсь объяснять все четко. Просто читаю форум постоянно а спрашиваю вот впервые.


bgm, Конкатенацию использую, но тут не вьехал.

Все таки мой вариант работает. Однако много кода.
 

JohnB

Новичок
В массиве $mailer у меня список юзеров которым на мыло надо отправить уведомление. Выбирается cheсkbox ами

типа

<input type='checkbox' name='mailer[$k]' value='$sr'> $sr[superv]
 

Фанат

oncle terrible
Команда форума
по хорошему, вынести бы их в отдельную таблицу.
но делай пока так. а то совсем запутаешься
 

JohnB

Новичок
Они и так в отдельной таблице (эти юзеры). Вот именно массив $sr и возвращает их из базы в зависимости от выбранного магазина.

Или я не правильно тебя понял.
 

Фанат

oncle terrible
Команда форума
неправильно.
должна быть таблица из двух полей - ид сообщения и ид юзера.
и из нее выбирать.
 
Сверху