Forum Webscript.Ru

Программирование => PHP => Тема начата: Vad от 27 Января 2003, 16:17:30

Название: циклы
Отправлено: Vad от 27 Января 2003, 16:17:30
Как сделать чтобы результат работы цикла выводился разделителый запятой

делаю так:

   for ($i=0; $i      echo "$print[$i], ";
   }
результат: 148, 175, 234, а мне надо чтобы в конце запятую не ставил а то база матюкается.
Название: циклы
Отправлено: Меняздесьдавнонет от 27 Января 2003, 16:26:08
$c=count($print)-1;
for ($i=0; $i<$c; $i++) echo $print[$i],", ";
echo $print[$i];
А цикл он на то и цикл, чтобы выполнять все одинаково
Название: циклы
Отправлено: Nevermind от 27 Января 2003, 17:08:09
Можешь попробовать так:
for($i=0;$i$string.=$print[$i].", ";
};
echo(substr($string, 0, -2));
Название: циклы
Отправлено: Гаррилл от 27 Января 2003, 17:56:37
Vad
Думай
$field_to_edit = \'\';

for($i=0; $i < count($fields_to_edit); $i++)
{
$field_to_edit .= ( ( $field_to_edit != \'\' ) ? \', \' : \'\' ) . $fields_to_edit[$i];
}
или http://www.php.net/manual/en/function.implode.php
Название: циклы
Отправлено: Vad от 27 Января 2003, 18:02:29
Спасибо оба варианта работают только теперь я это все немогу в запрос вставить почему то он мне выдает только последний id уже замучался я уже пробовал присваивать результат переменной переменная выводится правильно а в запросе всеравно только последний id
Название: циклы
Отправлено: Гаррилл от 27 Января 2003, 18:11:30
Vad
Перечитай моё сообщение ещё раз и ещё раз подумай, что ты хочешь и что ты делаешь.
Название: циклы
Отправлено: Меняздесьдавнонет от 27 Января 2003, 19:19:52
Vad
Скажи мне, мой юный друг.
Какими соображениями ты руководствовался, когда писал здесь не свой реальный код ,а выдуманный из головы?

почему написал ты принт, а надо тебе - в переменную?

Меня очень интересует ответ на этот вопрос.
Название: циклы
Отправлено: Maniac от 27 Января 2003, 20:54:18
И, кстати, почему никто из здесь присутсвующих не привел варианта типа print imlode(\',\',$print) :)
Название: циклы
Отправлено: Vad от 27 Января 2003, 21:04:44
рассказываю попорядку
на странице с объявлениями возле каждой объявы чекбокс
выбирая необходимые объявы пользователь переходит на страницу с с выбраными объявами для печати.
print - это переменная
Мне нужно все выбранные id объявлений засунуть в SELECT WHERE id in (125,165, и т.д.) когда я засовую весь цикл выдает ошибку когда переменной присваиваю результат работы цикла и вставляю переменную в скобки т.е. WHERE id in ($for_print) выдает только значение последнего id хотя если делаю просто echo $for_print то все нормально
Название: циклы
Отправлено: Maniac от 27 Января 2003, 21:09:01
Цитировать
выдает только значение последнего id

О, господи. Житие мое... Ты переменной $for_print значения как присваиваешь? Готов поспорить, как-то типа
$for_print=$print[$i];
А надо - $for_print.=$print[$i]

Или, как я уже говорил выше - $for_print=implode(\',\',$print)
Функция implode для того и создавалась
Название: циклы
Отправлено: Гаррилл от 27 Января 2003, 21:27:07
Maniac
А я же приводил ему линк с подробным описанием имплода.
Цитировать
Житие мое...

Лепота... Ле-по-та... [OFF]слепота[/OFF] :D
Vad

$ids_arry_to_print = $_POST[\'print\'];
$sql = "SELECT * WHERE id in (" . implode(\', \', $ids_arry_to_print) . ")";

Может быть, тебе подробнее надо объяснить?