Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с чтением данных с текстовой базы данных 
:(
    Опции темы
CTAzz
Дата 4.2.2007, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 16.9.2006
Где: Россия, index.php

Репутация: нет
Всего: нет



У меня имеется база данных на текстовом файле, там всего 10 значений разделенных знаком |
Теперь у меня проблема вывести данные из этой базы с помощью создания массива
Как это можно сделать вообще не доходит сёдня?
PM MAIL   Вверх
jonie
Дата 4.2.2007, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: нет
Всего: 118



добавить проверку на ошибки есссно...
Код

$f = fopen("base.txt","rt");
$s = fgets($f);
fclose($f);

$array = split("[|]",$s);

foreach($array as $value){
    echo "$value";
    }



--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
skyboy
Дата 4.2.2007, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



для чтения файла функций немело. если объем небольшой, быстрее будет читать полностью. Например, ]file_get_contents - получить все содержимое файла в виде одной строки. А функция explode позволяет разбить переданную строку на массив по переданному разделителю.
то есть, что-то вроде:
Код

$strings= explode("\n",file_get_contents("myfile.txt"));
foreach($strings as $string)
 print_r(explode('|', $string));

PM MAIL   Вверх
pento
Дата 4.2.2007, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 14.1.2007
Где: Россия

Репутация: нет
Всего: 4



CTAzz, 
На каком этапе проблемы?
Прочитать файл?
Разбить строку по | ?

Добавлено @ 20:57 
skyboy, 
file()  smile 
PM MAIL   Вверх
skyboy
Дата 4.2.2007, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



pento, гляди сюда:
Цитата(manual)

Использование функции file_get_contents() наиболее предпочтительно в случае необходимости получить содержимое файла целиком, поскольку для улучшения производительности функция использует алгоритм 'memory mapping' (если поддерживается операционной системой). 

а "внешне" file и file_get_contents + explode - почти одно и то же.
PM MAIL   Вверх
pento
Дата 4.2.2007, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 14.1.2007
Где: Россия

Репутация: нет
Всего: 4



skyboy, 
http://ru.php.net/file
Цитата

Identical to file_get_contents(), except that file() returns the file in an array.

PM MAIL   Вверх
skyboy
Дата 4.2.2007, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



быть может, это и так одно и то же(в смысле, file - псевдоним для связки file_get_contents + explode), однако file разбивает и по коду 10, и по коду 13. explode("\n",<something here>), как мне кажется, всё же будет быстрее, потому как только один вариант. а на остающиеся символы кода 10(если они остаются - чесно говоря, не в курсе, какой код имеет символ с представлением "\n" smile) нам вроде как плевать smile да и обрезка в конце каждой строки "ненужного" символа вроде как побыстрее(теоретически), чем "условное" разбиение на строки.
PM MAIL   Вверх
pento
Дата 4.2.2007, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 14.1.2007
Где: Россия

Репутация: нет
Всего: 4



Цитата(skyboy @  5.2.2007,  00:29 Найти цитируемый пост)
а "внешне" file и file_get_contents + explode - почти одно и то же. 

Да, за исключением вызова двух функций вместо одной.
PM MAIL   Вверх
skyboy
Дата 4.2.2007, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



pento, гы, опередил smile

Добавлено @ 21:34 
Цитата(pento @  4.2.2007,  20:33 Найти цитируемый пост)
Да, за исключением вызова двух функций вместо одной. 

два явных вместо двух неявных?
PM MAIL   Вверх
pento
Дата 4.2.2007, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 14.1.2007
Где: Россия

Репутация: нет
Всего: 4



skyboy, если следовать предложенному тобой пути наибольшей явности, то тогда и file_get_contents будет недостаточно...предется использовать fopen()...substr() и так далее. В общем, исходя из того, что наш с тобой диспут идёт слегка оффтопом и скорее всего не приведёт ни к чему и только запутает автора темы, предлагаю его закончить. =)

Это сообщение отредактировал(а) pento - 4.2.2007, 21:44
PM MAIL   Вверх
CTAzz
Дата 5.2.2007, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 16.9.2006
Где: Россия, index.php

Репутация: нет
Всего: нет



Из всего перечисленного попытаюсь что-нибудь сделать!

PM MAIL   Вверх
CTAzz
Дата 5.2.2007, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 16.9.2006
Где: Россия, index.php

Репутация: нет
Всего: нет



Вот, появился ещё один ламерский вопрос  smile 
Пытался из базы вывести те данные, которые после сравнения с другой строкой должны выводится, но почему то выводятся все данные из базы, что нужно для вывода данных, которые совпадают со словом "Алгебра"?

Код

<?
$file_counter = "doska/data/bases.dat";
$baza_array=file("$file_counter");

foreach ($baza_array as $value)  {
list($udate,$name,$contact,$class,$predmet,$avtor,$vipusk,$ball,$money,$ip)=split("\|","$value");
$time = date( 'd.m.Y', $udate);

if ($predmet = 'Алгебра')
{
print "<tr><td>$class</td><td>$vipusk</td><td>$avtor</td><td >$ball</td><td ><font color=#0000cc>$money</font></td><td>$name</td><td>$contact</td><td valign='top'  class='norm'>$time</td></tr>";
}
}
?>

PM MAIL   Вверх
pento
Дата 5.2.2007, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 14.1.2007
Где: Россия

Репутация: нет
Всего: 4



Цитата(CTAzz @  5.2.2007,  22:26 Найти цитируемый пост)
но почему то выводятся все данные из базы,

Код

if ($predmet = 'Алгебра')

Серьёзно?=)
PM MAIL   Вверх
CTAzz
Дата 5.2.2007, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 16.9.2006
Где: Россия, index.php

Репутация: нет
Всего: нет



Ну не знаю  smile 

PM MAIL   Вверх
pento
Дата 5.2.2007, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 14.1.2007
Где: Россия

Репутация: нет
Всего: 4



CTAzz, ну тогда подумай, чем отличаются =,== и === 

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0549 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.