Как рассортировать данные? HELP!!

Тема в разделе "PHP", создана пользователем PloSkiY, 25 мар 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. PloSkiY

    PloSkiY Постоялец

    Регистр.:
    13 июл 2009
    Сообщения:
    78
    Симпатии:
    2
    Есть код который вынимает из базы "Jabber"-а данные о пользователе, так сказать карточку юзера.

    Код:
    <?php
    
    
            $connection = mysql_connect("localhost", "root", "12345") or die(mysql_error());
            mysql_select_db("jabber", $connection);
       mysql_query('SET NAMES cp1251'); (строчка должна стоять после строчки соединения с базой)
                $result = mysql_query("select * from ofvcard", $connection);
                $myrow = mysql_fetch_array($result);
                
    do
    {
                    echo $myrow["vcard"];
    }
    while ($myrow = mysql_fetch_array($result));
    ?>
    Тут написал показывать данные , просто что бы посмотреть как они выглядят на выходе.

    Код вынимает из одной ячейки, в которой данные забиты, в таком виде.
    Код:
    <vCard xmlns="vcard-temp"><FN/><N><GIVEN>Юрий</GIVEN><FAMILY>Юрьевич</FAMILY><MIDDLE/></N><NICKNAME>IT-Юрьев</NICKNAME><URL/><BDAY/><AGE/><GENDER/><MARITALSTATUS/><LOCATION/><WORKCELL/><HOMECELL/><ORG><ORGNAME>Tiberium</ORGNAME><ORGUNIT>IT</ORGUNIT></ORG><TITLE/><ROLE>Инженер Системотехник</ROLE><TEL><HOME/><VOICE/><NUMBER/></TEL><TEL><HOME/><FAX/><NUMBER/></TEL><TEL><HOME/><MSG/><NUMBER/></TEL><ADR><HOME/><EXTADD/><STREET/><LOCALITY/><REGION/><PCODE/><COUNTRY/></ADR><TEL><WORK/><VOICE/><NUMBER/></TEL><TEL><WORK/><FAX/><NUMBER/></TEL><TEL><WORK/><MSG/><NUMBER/></TEL><ADR><WORK/><EXTADD/><STREET/><LOCALITY/><REGION/><PCODE/><COUNTRY/></ADR><EMAIL><INTERNET/><PREF/><USERID>rem@grim.com</USERID></EMAIL><EMAIL><INTERNET/><USERID/></EMAIL><DESC/><JABBERID/></vCard>
    Как сделать что бы например взять эти данные и внести в таблицу
    преобразовать из
    Код:
    <GIVEN>Юрий</GIVEN><FAMILY>Юрьевич</FAMILY> ..... 
    в данные которые можно внести в таблицу
    что бы на выходе получить
    | Юрий | Юрьевич | Инженер Системотехник | ... и.т.д.

    Я не знаю как правильно поступить, что бы правильно рассортировать данные
    Движок сайта DLE 8.5, станичка идет как "Мод"


    Сам я начинающий, но учусь.
    Прошу подсказать, каким образом можно сделать эту операцию, т.к. более опытные могут с первого взгляда определить, как можно с проблемой разобраться.
    Буду очень благодарен за любые подсказки!! :thenks::thenks::thenks:
     
  2. mydooms

    mydooms Постоялец

    Регистр.:
    22 фев 2008
    Сообщения:
    105
    Симпатии:
    26
    Не совсем понятно, что тебе нужно. Ты хочешь вытащить из результата SQL-запроса поотдельности имя, фамилию, и пр., чтоб каждый пункт был в отдельной переменной?
     
  3. PloSkiY

    PloSkiY Постоялец

    Регистр.:
    13 июл 2009
    Сообщения:
    78
    Симпатии:
    2
    Так точно =). Потом забить все в таблицу , по своему конфигурируя вывод данных.
     
  4. Digwnews

    Digwnews Читатель

    Заблокирован
    Регистр.:
    1 мар 2010
    Сообщения:
    127
    Симпатии:
    24
    Нужно из
    HTML:
    <vCard xmlns="vcard-temp"><FN/><N><GIVEN>Юрий</GIVEN><FAMILY>Юрьевич</FAMILY><MIDDLE/></N><NICKNAME>IT-Юрьев</NICKNAME><URL/><BDAY/><AGE/><GENDER/><MARITALSTATUS/><LOCATION/><WORKCELL/><HOMECELL/><ORG><ORGNAME>Tiberium</ORGNAME><ORGUNIT>IT</ORGUNIT></ORG><TITLE/><ROLE>Инженер Системотехник</ROLE><TEL><HOME/><VOICE/><NUMBER/></TEL><TEL><HOME/><FAX/><NUMBER/></TEL><TEL><HOME/><MSG/><NUMBER/></TEL><ADR><HOME/><EXTADD/><STREET/><LOCALITY/><REGION/><PCODE/><COUNTRY/></ADR><TEL><WORK/><VOICE/><NUMBER/></TEL><TEL><WORK/><FAX/><NUMBER/></TEL><TEL><WORK/><MSG/><NUMBER/></TEL><ADR><WORK/><EXTADD/><STREET/><LOCALITY/><REGION/><PCODE/><COUNTRY/></ADR><EMAIL><INTERNET/><PREF/><USERID>rem@grim.com</USERID></EMAIL><EMAIL><INTERNET/><USERID/></EMAIL><DESC/><JABBERID/></vCard>
    выдрать данные?
     
  5. PloSkiY

    PloSkiY Постоялец

    Регистр.:
    13 июл 2009
    Сообщения:
    78
    Симпатии:
    2
    да, если бы они по ячейкам разбивались было бы все просто, а так в одной ячейке все сразу ...
    Как сделать что бы например взять эти данные и внести в таблицу
    преобразовать из
    Код:
    <GIVEN>Юрий</GIVEN><FAMILY>Юрьевич</FAMILY> ..... 
    в данные которые можно внести в таблицу
    что бы на выходе получить
    | Юрий | Юрьевич | Инженер Системотехник | ... и.т.д.
     
  6. Digwnews

    Digwnews Читатель

    Заблокирован
    Регистр.:
    1 мар 2010
    Сообщения:
    127
    Симпатии:
    24
    Регулярные выражения, DOM
    Добавлено через 32 минуты
    Не разбирался в полной реализации то, чего вам нужно, но если вы получили <vCard и т.д., то:
    С помощью регулярок:
    PHP:
    <?php
    $text
    ='<vCard xmlns="vcard-temp"><FN/><N><GIVEN>Юрий</GIVEN><FAMILY>Юрьевич</FAMILY><MIDDLE/></N><NICKNAME>IT-Юрьев</NICKNAME><URL/><BDAY/><AGE/><GENDER/><MARITALSTATUS/><LOCATION/><WORKCELL/><HOMECELL/><ORG><ORGNAME>Tiberium</ORGNAME><ORGUNIT>IT</ORGUNIT></ORG><TITLE/><ROLE>Инженер Системотехник</ROLE><TEL><HOME/><VOICE/><NUMBER/></TEL><TEL><HOME/><FAX/><NUMBER/></TEL><TEL><HOME/><MSG/><NUMBER/></TEL><ADR><HOME/><EXTADD/><STREET/><LOCALITY/><REGION/><PCODE/><COUNTRY/></ADR><TEL><WORK/><VOICE/><NUMBER/></TEL><TEL><WORK/><FAX/><NUMBER/></TEL><TEL><WORK/><MSG/><NUMBER/></TEL><ADR><WORK/><EXTADD/><STREET/><LOCALITY/><REGION/><PCODE/><COUNTRY/></ADR><EMAIL><INTERNET/><PREF/><USERID>rem@grim.com</USERID></EMAIL><EMAIL><INTERNET/><USERID/></EMAIL><DESC/><JABBERID/></vCard>';
    preg_match_all('/<GIVEN>(.*)<\/GIVEN>/'$text$regs);
    preg_match_all('/<FAMILY>(.*)<\/FAMILY>/'$text$regs1);
    preg_match_all('/<ROLE>(.*)<\/ROLE>/'$text$regs2);
    echo 
    $regs[1][0].'|'.$regs1[1][0].'|'.$regs2[1][0].'|';
    ?>
     
    PloSkiY нравится это.
  7. PloSkiY

    PloSkiY Постоялец

    Регистр.:
    13 июл 2009
    Сообщения:
    78
    Симпатии:
    2


    Огромнейшее спасибо за подсказку и за пример!!!
    Буду читать , думать , составлять скрипт !!!!
    Думаю то что нужно !!! :thenks::thenks::thenks:

    З.Ы. Прошу прощения у админов за флуд !!!
     
Статус темы:
Закрыта.