За последние 24 часа нас посетили 26548 программистов и 1814 роботов. Сейчас ищут 1077 программистов ...

база данных в виде файла

Тема в разделе "PHP для новичков", создана пользователем Риго, 21 дек 2007.

  1. Риго

    Риго Активный пользователь

    С нами с:
    21 дек 2007
    Сообщения:
    11
    Симпатии:
    0
    уважаемые профи!
    у меня есть файл с 1000 строк с информацией о продукции (скажем название модели, размеры, цвет, изображение) мне нужно эту информацию вывести на сайт. как мне это сделать средствами РHP?
     
  2. Alex_nvkz

    Alex_nvkz Активный пользователь

    С нами с:
    21 дек 2007
    Сообщения:
    7
    Симпатии:
    0
    Какие нибудь разгранечители строк есть?
     
  3. Риго

    Риго Активный пользователь

    С нами с:
    21 дек 2007
    Сообщения:
    11
    Симпатии:
    0
    есть разграничительные значения в самой строке: знак " | " :

    Модель1|размер1|изображение1|цвет1|
    Модель2|размер2|изображение2|цвет2|
    Модель3|размер3|изображение3|цвет3|
    ......
    Заранее спасибо за ответ!
     
  4. Петр

    Петр Активный пользователь

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
  5. Риго

    Риго Активный пользователь

    С нами с:
    21 дек 2007
    Сообщения:
    11
    Симпатии:
    0
    Спасибо!
    а как мне сделать, чтобы их вывести в виде такой таблицы:

    -------------------------------------------
    название модели | Цвет | размеры |
    _______________________________
    :
    И З О Б Р А Ж Е Н И Е :
    ______________________________:
     
  6. Alex_nvkz

    Alex_nvkz Активный пользователь

    С нами с:
    21 дек 2007
    Сообщения:
    7
    Симпатии:
    0
    У тебя разграничитель есть!
    Только вот с таким файлом придется сделать текстовую переменную для накопления элемента таблицы!
    Пример:
    PHP:
    1.  
    2. <?
    3.   $count = 1;
    4.   $file =  fopen ("1.txt","r");
    5.   print "<table>";
    6.   while ($data = fgetcsv ($file, 1000, "|"))
    7.   {
    8.     $num = count ($data);
    9.     $count++;
    10.     $a="";
    11.     for ($i=0; $i < $num; $i++)
    12.     {
    13.       $a.="<tr>";
    14.       if($i<>2){
    15.         $a.="<td>$data[$i]</td>";
    16.       }
    17.     }
    18.     print $a."</tr><tr><td><img src=$data[2]></td></tr>";;
    19.   }
    20.   print "</table>";
    21.   fclose ( $file );
    22. ?>
    Содержание файла 1.txt:
    Код (Text):
    1. Модель1|размер1|изображение1|цвет1|
    2. Модель2|размер2|изображение2|цвет2|
    3. Модель3|размер3|изображение3|цвет3|
     
  7. Риго

    Риго Активный пользователь

    С нами с:
    21 дек 2007
    Сообщения:
    11
    Симпатии:
    0
    Спасибо Алекс!
     
  8. KMaksS

    KMaksS Активный пользователь

    С нами с:
    23 дек 2007
    Сообщения:
    4
    Симпатии:
    0
    Можно уточнить, как именно должна выглядеть строка в файле 1.txt?
    Код (Text):
    1.  
    2. f-2001|37|f-2001.gif|Black|
    так, или я не верно понял?

    Спасибо.
     
  9. host

    host Активный пользователь

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
     
  10. Риго

    Риго Активный пользователь

    С нами с:
    21 дек 2007
    Сообщения:
    11
    Симпатии:
    0
    1008|54-18-135|1008.jpg|003|
     
  11. KMaksS

    KMaksS Активный пользователь

    С нами с:
    23 дек 2007
    Сообщения:
    4
    Симпатии:
    0
    PHP:
    1.  
    2.  <?
    3.    $count = 1;
    4.    $file =  fopen ("1.txt","r");
    5.    print "<table cellpadding=2 cellspacing=0>";
    6.    while ($data = fgetcsv ($file, 000, ","))
    7.    {
    8.      $num = count ($data);
    9.      $count++;
    10.      $a="</tr><tr><td><img width=154 height=195 src=$data[0].gif></td></tr>";
    11.      for ($i=0; $i < $num; $i++)
    12.      {
    13.        $a.="<tr>";
    14.        if($i<>3){
    15.          $a.="<td bgcolor=#BB5555>&nbsp;$data[$i]</td>";
    16.        }
    17.      }
    18.      print $a."<tr><td><br></td></tr>";;
    19.    }
    20.    print "</table>";
    21.    fclose ( $file );
    22.  ?>
    Вот значит помаячил... картинка сверху, текст внизу, оптимизировал 1.txt.
    Теперь достаточно вбить только модель (имя картинки = модель), размер и цвет.
    Код (Text):
    1.  
    2. f-2001, размер: M, Красный
    3. f-2009, размер: L, вишневый
    4. f-2019, размер: XL, черный
    Только хотелось бы не писать каждый раз «размер:».
    Как можно в начале второй переменной после запятой присвоить «размер:» а M,L,XL добавлялось уже из файла?
     
  12. Риго

    Риго Активный пользователь

    С нами с:
    21 дек 2007
    Сообщения:
    11
    Симпатии:
    0
    здорово! спасибо!!!
     
  13. Риго

    Риго Активный пользователь

    С нами с:
    21 дек 2007
    Сообщения:
    11
    Симпатии:
    0
    а как вывести эту информацию на сайте в виде таблице по 6 шт на каждую страницу (2 строки по 3 шт.)?
     
  14. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    В поиск. Обсуждалось и не раз.
     
  15. Риго

    Риго Активный пользователь

    С нами с:
    21 дек 2007
    Сообщения:
    11
    Симпатии:
    0
    информация в файле выдается в таком виде:

    Модель1|размер1|изображение1-1|цвет1-1|
    Модель1|размер1|изображение1-2|цвет1-2|
    Модель1|размер1|изображение1-3|цвет1-3|

    Модель2|размер2|изображение2-1|цвет2-1|
    Модель2|размер2|изображение2-2|цвет2-2|
    ....
    ...

    как мне вывести в виде таблице только те строки, где не повторяется первая строка?
     
  16. KMaksS

    KMaksS Активный пользователь

    С нами с:
    23 дек 2007
    Сообщения:
    4
    Симпатии:
    0
    Ну я как не волшебник тупо сделал так.
    PHP:
    1.  
    2. <table>
    3. <tr>
    4.    <td>
    5.  <?
    6.    $count = 1;
    7.    $file =  fopen ("1.txt","r");
    8.    print "<table>";
    9.    while ($data = fgetcsv ($file, 1000, "|"))
    10.    {
    11.      $num = count ($data);
    12.      $count++;
    13.      $a="";
    14.      for ($i=0; $i < $num; $i++)
    15.      {
    16.        $a.="<tr>";
    17.        if($i<>4){
    18.          $a.="<td>$data[$i]</td>";
    19.        }
    20.      }
    21.      print $a."</tr><tr><td><img src=$data[2]></td></tr>";;
    22.    }
    23.    print "</table>";
    24.    fclose ( $file );
    25.  ?>
    26.    </td>
    27.    <td>
    28.  <?
    29.    $count = 1;
    30.    $file =  fopen ("2.txt","r");   // второй файл
    31.    print "<table>";
    32.    while ($data = fgetcsv ($file, 1000, "|"))
    33.    {
    34.      $num = count ($data);
    35.      $count++;
    36.      $a="";
    37.      for ($i=0; $i < $num; $i++)
    38.      {
    39.        $a.="<tr>";
    40.        if($i<>4){
    41.          $a.="<td>$data[$i]</td>";
    42.        }
    43.      }
    44.      print $a."</tr><tr><td><img src=$data[2]></td></tr>";;
    45.    }
    46.    print "</table>";
    47.    fclose ( $file );
    48.  ?>
    49.    </td>
    50. </tr>
    51. </table>
    Гыы Ну это действительно тупо и не удобно, так что вопрос еще открыт :)
     
  17. Риго

    Риго Активный пользователь

    С нами с:
    21 дек 2007
    Сообщения:
    11
    Симпатии:
    0
    а второй файл за чем? твой скрипт выдает информацию в один столб. как сделать так, чтобы выходило в виде таблице по 6 шт на каждую страницу (2 строки по 3 шт.)? заранее благодарен
     
  18. KMaksS

    KMaksS Активный пользователь

    С нами с:
    23 дек 2007
    Сообщения:
    4
    Симпатии:
    0
    1. Это не мой скрипт :)

    2. Три скрипта, три файла (1.txt 2.txt 3.txt) = три столбца;
    В каждом файле *.txt вводишь две строки инфы о товаре = две строки на странице.
    Итого: 3 столбца, 2 строки.

    Если тебе не хочется каждый файл отдельно открывать и вбивать туда инфу, то можешь сделать один *.php файл для их редактирования.
    PHP:
    1.  
    2. <!-- Этот скрипт так же надо ввести 3 раза и указать изменяемых 3 файла. -->
    3. <form method="post">
    4. <textarea name="basa" cols="38" rows="7">
    5. <? echo file_get_contents("basa.txt") ?></textarea>
    6. <br><input type="submit" value="Сохранить">
    7. </form>
    8.  
    9. <?php
    10. if (isset($_POST["basa"]))
    11.  
    12. {
    13.     $bs = $_POST["basa"]."";  
    14.     $file = fopen("basa.txt", "w");
    15.     if (fwrite($file, $bs))
    16.         echo "<p>Данные сохранены</p>";
    17.     else
    18.         echo "<p>Ошибка при записи данных</p>";
    19.     fclose($file);
    20. }
    21. ?>
    22.  
    *.txt лучше обзывать еще и буквами, пример: basa1.txt basa2.txt

    Я вот вообще создал 3 каталога и пронумеровал их, в каждом одинаковые файлы *.php и файлы *.txt имеют одно и тоже имя. Файлы *.php для изменения базы вывожу айфреймами в общий файл для администрированеия.