Помогите разобраться с while

Tezzz

Новичок
Помогите разобраться с while

Подскажите пожалуйста! Переменная
PHP:
$text
записывается в текстовый файл. Как сделать так, чтобы в последней строке не было переноса строки?

PHP:
foreach($order_cab as $sIdx=>$sVal) {
if (!empty($sVal)) {
$query="select * from catalog_cab where cab_code='$sVal'";
$result = mysql_query($query);
while ($row = mysql_fetch_row($result)){
$text=$text."$row[2]\t$row[3]\t$cab_lenght[$sIdx]\t\n";
}
}
}
Заранее спасибо!
 

Tezzz

Новичок
я понимаю что отрезать, но как поймать последнюю строку?
 

Tezzz

Новичок
для substr - echo substr($text, 0, -1); ? похоже на то, что мне надо. Спасибо, сейчас попробую.
насколько я понимаю, trim уберет \n и \t во всем $text...

-~{}~ 16.01.06 12:52:

Точно, substr($text, 0, -1); то что надо!
Огромное Спасибо Всем!
 

white phoenix

Новичок
Tezzz
Нет, [m]trim[/m] убирает из начала и конца строки (если второй аргумент не передан):
" " (ASCII 32 (0x20)), символ пробела.
"\t" (ASCII 9 (0x09)), символ табуляции.
"\n" (ASCII 10 (0x0A)), символ перевода строки.
"\r" (ASCII 13 (0x0D)), символ возврата каретки.
"\0" (ASCII 0 (0x00)), NUL-байт.
"\x0B" (ASCII 11 (0x0B)), вертикальная табуляция.
 

Фанат

oncle terrible
Команда форума
насколько я понимаю, trim уберет \n и \t во всем $text...
понимать будешь тогда, когда понималка отрастёт.
а пока попробуй научиться читать. документацию
 

Tezzz

Новичок
Фанат, вы мне подсказали "substr" я прочитал, разобрался, мне это подошло, спасибо.
На счет "trim" - я не знаю заранее сколько будет строк, а если бы я посчитал колличество строк, то я бы и в цикле это сделал.
Ваш совет насчет понималки принял к сведению, спасибо.
 

zarus

Хитрожопый макак
Автор оригинала: Tezzz
PHP:
foreach($order_cab as $sIdx=>$sVal) {
if (!empty($sVal)) {
$query="select * from catalog_cab where cab_code='$sVal'";
$result = mysql_query($query);
while ($row = mysql_fetch_row($result)){
$text=$text."$row[2]\t$row[3]\t$cab_lenght[$sIdx]\t\n";
}
}
}
А база MySQL не грохнется запросы в цикле посылать?
Стоит задуматься об оптимизации заранее:
PHP:
$sub_query = '';
foreach($order_cab as $sIdx=>$sVal) {
  if (!empty($sVal)) {
    $sub_query .= $sVal.',';
  }
}
$sub_query = substr($sub_query,0,-1);
$query = "SELECT * FROM `catalog_cab` WHERE `cab_code` IN (".$sub_query.")";
$result = mysql_query($query);
while (false !== ($row = mysql_fetch_row($result))) {
  $text .= $row[2]."\t".$row[3]."\r\n";
}
 

Tezzz

Новичок
Спасибо, я сам давно об этом думал, но не хватало знаний.
 
Сверху