Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: парсинг+конкатенация строк
 
 автор: Nameless   (28.05.2009 в 00:19)   письмо автору
 
 

Доброго времени суток! такая проблемка: есть таблица, в которой хранится информация о номерах секций забронированных в выставочном зале (поля таблицы: фио,email, номера сециий(sections)). номера секция необходимы для заполнения флешки с рисунком зала, значения входной переменной для флеш является переменная вида "sect1=1", соответственно необходимо все полученные записи склеить. суть в том, что я написал код который так и делает, но он работает корректно только в том случае если в ячейке 1 номер секции, а необходимо чтобы в ячейке хранилось более чем 4 номера секции. на сколько я понимаю необходимо вначале парситьячейк и уже потом склеивать, но как это сделать-не представляю абсолютно! помогите пожалуйста, который день над этой проблемой бьюсь.

$qr = "SELECT * FROM customers";
$prev = mysql_query($qr);
if(!$prev) puterror("Ошибка при обращении к базе данных");
$i=0;
while($fields= mysql_fetch_assoc($prev)){
    $string .= "sect".$fields['sections']."=1&";
   $i++;
}

  Ответить  
 
 автор: sim5   (28.05.2009 в 08:09)   письмо автору
 
   для: Nameless   (28.05.2009 в 00:19)
 

А что у вас $i в цикле делает? В остальном ничего не понятно.... У вас поле sections должно содержать несколько записей (номеров) и в этом случае у вас ничего не получается?

  Ответить  
 
 автор: Nameless   (28.05.2009 в 09:07)   письмо автору
 
   для: sim5   (28.05.2009 в 08:09)
 

млин, цикл и лишний, уже убрал. проблема в том что это цикл выводит номера всех секторов в одой записи в одну часть переменной стринг, т.е. если 1 запись содержит следующие значения 1,4,5,6, то будет выводится следующее sect1,4,5,6=1&, а нужно, чтобы было sect1=1&sect4=1&sect5=1&sect6=1
после чего идет переход по циклу while к следующей строке бд и операция повторяется, полученные номера секций приклеиваются к уже имеющимся и так пока свсе записи не будут просмотрены

  Ответить  
 
 автор: sim5   (28.05.2009 в 09:30)   письмо автору
 
   для: Nameless   (28.05.2009 в 09:07)
 

В таком случе:
<?
while($fieldsmysql_fetch_assoc($prev)){ 
    
$s explode(","$fields['sections']); 
    for (
$i=0$i<count($s); $i++) {
       
//тут в цикле получать номера и формировать строку
    
}
    
//или
    
$s str_replace(",","=1&sect",$fields['sections']);
    
$s "sect" $s "=1";
}

  Ответить  
 
 автор: Nameless   (28.05.2009 в 11:14)   письмо автору
 
   для: sim5   (28.05.2009 в 09:30)
 


while($fields= mysql_fetch_assoc($prev)){ 
    $s = explode(",", $fields['sections']); 
    for ($i=0; $i<count($s); $i++) {
    $s .= "sect".$s[i]."=1&"; 
    }
   //или
    $s = str_replace(",","=1&sect",$fields['sections']);
    $s = "sect" . $s . "=1"; 
}

при добавлении этого кода выводит тока последнюю запись из бд... несовсем понятно... объясните пожалуйста в чем суть идеи?

  Ответить  
 
 автор: sim5   (28.05.2009 в 15:19)   письмо автору
 
   для: Nameless   (28.05.2009 в 11:14)
 

А сами не можете догадаться почему? Потому, что переменная $s при каждом проходе цикла while принимает новое значение - следующей записи из базы, и в конце цикла, естественно будет равна последней.
Я понятия не имею, куда и зачем вы потом эту строку помещаете, потому показываю вам пример, а уж вам решать, что сделать, чтобы получить вам нужное.

PS. И я вам показал два способа - разбить строку на массив, или заменить в ней запятые нужным. Вы уж виберите один из них, а не запускайте оба. Собственно замену (второй способ) можно сделать непосредственно при запросе к базе, и получать уже готовое.

  Ответить  
 
 автор: Nameless   (28.05.2009 в 17:02)   письмо автору
 
   для: sim5   (28.05.2009 в 15:19)
 

большое вам спасибо, разобрался) прошу прощения за тупку-уже неделю нормально не спал

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования