Автор Тема: циклы  (Прочитано 4684 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Vad

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 54
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.revision.gr
циклы
« : 27 Января 2003, 16:17:30 »
Как сделать чтобы результат работы цикла выводился разделителый запятой

делаю так:

   for ($i=0; $i      echo "$print[$i], ";
   }
результат: 148, 175, 234, а мне надо чтобы в конце запятую не ставил а то база матюкается.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
циклы
« Ответ #1 : 27 Января 2003, 16:26:08 »
$c=count($print)-1;
for ($i=0; $i<$c; $i++) echo $print[$i],", ";
echo $print[$i];
А цикл он на то и цикл, чтобы выполнять все одинаково

Оффлайн Nevermind

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 52
  • +0/-0
  • 0
    • Просмотр профиля
циклы
« Ответ #2 : 27 Января 2003, 17:08:09 »
Можешь попробовать так:
for($i=0;$i<count($print);$i++) {
$string.=$print[$i].", ";
};
echo(
substr($string0, -2));

Оффлайн Гаррилл

  • Наглый тип
  • Постоялец
  • ***
  • Сообщений: 202
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phpbbcms.sf.net
циклы
« Ответ #3 : 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

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 54
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.revision.gr
циклы
« Ответ #4 : 27 Января 2003, 18:02:29 »
Спасибо оба варианта работают только теперь я это все немогу в запрос вставить почему то он мне выдает только последний id уже замучался я уже пробовал присваивать результат переменной переменная выводится правильно а в запросе всеравно только последний id

Оффлайн Гаррилл

  • Наглый тип
  • Постоялец
  • ***
  • Сообщений: 202
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phpbbcms.sf.net
циклы
« Ответ #5 : 27 Января 2003, 18:11:30 »
Vad
Перечитай моё сообщение ещё раз и ещё раз подумай, что ты хочешь и что ты делаешь.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
циклы
« Ответ #6 : 27 Января 2003, 19:19:52 »
Vad
Скажи мне, мой юный друг.
Какими соображениями ты руководствовался, когда писал здесь не свой реальный код ,а выдуманный из головы?

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

Меня очень интересует ответ на этот вопрос.

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
циклы
« Ответ #7 : 27 Января 2003, 20:54:18 »
И, кстати, почему никто из здесь присутсвующих не привел варианта типа print imlode(\',\',$print) :)
TANSTAAFL

Оффлайн Vad

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 54
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.revision.gr
циклы
« Ответ #8 : 27 Января 2003, 21:04:44 »
рассказываю попорядку
на странице с объявлениями возле каждой объявы чекбокс
выбирая необходимые объявы пользователь переходит на страницу с с выбраными объявами для печати.
print - это переменная
Мне нужно все выбранные id объявлений засунуть в SELECT WHERE id in (125,165, и т.д.) когда я засовую весь цикл выдает ошибку когда переменной присваиваю результат работы цикла и вставляю переменную в скобки т.е. WHERE id in ($for_print) выдает только значение последнего id хотя если делаю просто echo $for_print то все нормально

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
циклы
« Ответ #9 : 27 Января 2003, 21:09:01 »
Цитировать
выдает только значение последнего id

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

Или, как я уже говорил выше - $for_print=implode(\',\',$print)
Функция implode для того и создавалась
TANSTAAFL

Оффлайн Гаррилл

  • Наглый тип
  • Постоялец
  • ***
  • Сообщений: 202
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phpbbcms.sf.net
циклы
« Ответ #10 : 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) . ")";

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

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28