вывод из файла опр. строчки с id`ом....help

Тема в разделе "PHP", создана пользователем rsha1988, 30 май 2008.

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

    rsha1988

    Регистр.:
    7 апр 2006
    Сообщения:
    550
    Симпатии:
    133
    Всем привет
    есть файл , base.txt
    его содержание примерно такое:
    0|lalala|lalalala lalalala|dadada|1
    1|lalala|lalalala lalalala|dadada|1
    2|lalala|lalalala lalalala|dadada|1

    первое значение в строчках (0,1,2) - это своеобразеный ID.

    нужно :
    написаь скрипт который при обращении к странице ( на пример index?id=1) выводил строчку с этим id`ом ...
    в инете рабочих примеров неайти не смог :(
    Help

    Добавлено через 13 минут
    Вариант по типу:

    PHP:
    $id=2;
    $base="./include/base.txt";
    $g=file($base);
    $i=count($g);
    $ar=explode("|"$g[$id]);
    echo 
    "$ar[0]<br> $ar[1]<br> $ar[2]<br> $ar[3]<br> $ar[4]<br> $ar[5]<br> $ar[6]<br> $ar[7]<br> $ar[8]";
    Не подходит!
    Так как строчка с id 2 в дальнейшем может быть удалена и в результате чего (если использовать этот код) id 3 станет id 2 ....То есть при запросе test.php?id=2 вылезет строчка с id`ом 3...
     
  2. edson

    edson Прохожие

    Только циклом по все записям и проверкой айди.
     
  3. rsha1988

    rsha1988

    Регистр.:
    7 апр 2006
    Сообщения:
    550
    Симпатии:
    133
    а как это сделать кодом показать можешь?))
     
  4. Jeurey

    Jeurey

    Регистр.:
    13 сен 2006
    Сообщения:
    419
    Симпатии:
    576
  5. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    дай кусок файла для проверки


    весьма грубый вариант :
    PHP:
    <?php

    // считываем файл в массив 
    $arr=file("file.txt");
    $_id_mod=$_GET['id']."|";
    foreach (
    $arr as $stroka){
        
    // берем первые 5 символов строки
        
    $stroka_mod=substr($stroka,0,5);
        
    // и ищем там id 
        
    if (substr_count($stroka_mod,$_id_mod))
            
    //если находим --вывод
            
    echo $stroka;
        }
    для php5 еще проще
     
  6. rsha1988

    rsha1988

    Регистр.:
    7 апр 2006
    Сообщения:
    550
    Симпатии:
    133
    Jeurey , да смотрел я этот пост...запаутолся там)))))

    ZCFD ,"дай кусок файла для проверки"
    0|30.05.2008, 13:23:24|Rsha1988|Яковлев Павел Андреевич|1988|2007|Мозгы взорвались|ТолчОк|пил пил и вдруг умер!|0
    1|30.05.2008, 13:23:24|Rsha1988|Яковлев Павел Андреевич|1988|2007|Мозгы взорвались|ТолчОк|пил пил и вдруг умер!|0
    2|30.05.2008, 13:23:25|Rsha1988|Яковлев Павел Андреевич|1988|2007|Мозгы взорвались|ТолчОк|пил пил и вдруг умер!|0
    3|30.05.2008, 13:23:27|Rsha1988|Яковлев Павел Андреевич|1988|2007|Мозгы взорвались|ТолчОк|пил пил и вдруг умер!|0
    4|30.05.2008, 13:23:28|Rsha1988|Яковлев Павел Андреевич|1988|2007|Мозгы взорвались|ТолчОк|пил пил и вдруг умер!|0
    5|30.05.2008, 13:23:28|Rsha1988|Яковлев Павел Андреевич|1988|2007|Мозгы взорвались|ТолчОк|пил пил и вдруг умер!|0
    6|30.05.2008, 13:23:28|Rsha1988|Яковлев Павел Андреевич|1988|2007|Мозгы взорвались|ТолчОк|пил пил и вдруг умер!|0

    вот кусок базы.для примера

    Добавлено через 4 минуты
    ZCFD
    код работает,прикольно..но не совсем:)
    На пример id=1
    он выводет строки и с идом 1 и с 11 , 21 , 31 41,51 ....
     
  7. Jeurey

    Jeurey

    Регистр.:
    13 сен 2006
    Сообщения:
    419
    Симпатии:
    576
    Если не вдаваться в качество кода, то можно сделать следующее:
    PHP:
    <?php
    // считываем файл в массив
    $arr=file("file.txt");
    $_id_mod=$_GET['id'];

    foreach (
    $arr as $stroka){
        
    // Забираем $stroka_mod до первого '|'
        
    $stroka_mod '';
        
    $iCounter 0;
        
        while(
    true) { 
          if(
    $stroka[$iCounter] != '|') { 
              
    $stroka_mod.= $stroka[$iCounter]; 
              
    $iCounter++;
          } else break;
        }
        
    // и ищем там id 
        
    if ($stroka_mod == $_id_mod) {
            
    //если находим --вывод
            
    echo $stroka;
        } 

    Но я советую присмотреться в сторону вложенных циклов, дабы сразу проверять - совпадает ли искомая строка с текущей ;)
     
  8. rsha1988

    rsha1988

    Регистр.:
    7 апр 2006
    Сообщения:
    550
    Симпатии:
    133
    Jeurey , твой вариант ваще че то не работает)
     
  9. Jeurey

    Jeurey

    Регистр.:
    13 сен 2006
    Сообщения:
    419
    Симпатии:
    576
    Исправил. Неужели сложно поправить ошибку? Всего делов - доставить скобочку... совсем головой думать никто не хочет :(
     
    rsha1988 нравится это.
  10. rsha1988

    rsha1988

    Регистр.:
    7 апр 2006
    Сообщения:
    550
    Симпатии:
    133
    Jeurey , когда столько вариантов перебераешь мозг автоматом отключаецо так что думать просто не реально)....
    Спасибо;)
     
Статус темы:
Закрыта.