|
|
|
|
$fileN = "data.dat";
if (is_file($fileN))
{
$fd = fopen($fileN, "r");
$sum = 0;
while (!feof($fd))
{
$a = trim(fgets($fd));
if (!empty($a))
{
$exp = explode("|", $a);
$sector[$exp[1]] = $exp[0];
$sum += $exp[0];
}
}
fclose($fd);
|
Вот есть такой код и он читает из файла, а как сделать чтоб читал из базы? | |
|
|
|
|
|
|
|
для: streloc
(22.04.2008 в 16:02)
| | Никак.
[поправлено модератором] | |
|
|
|
|
|
|
|
для: streloc
(22.04.2008 в 16:02)
| | Просто дайте строчку содержимого файла.
Кстати с базой работать в 100000000 раз легче чем с файлами. | |
|
|
|
|
|
|
|
для: Valick
(22.04.2008 в 16:11)
| | я пытался присвоить $a="2 |Инфаркт
8 |ОНМК
12 |Стенокардия
34 |Операции на сердце
25 |ЖКТ полостная
12 |ЖКТ лапароскопическая
14 |Беременные
10 |Сахарный диабет
3 |Панкреатит";
Но тогда криво работает
$exp = explode("|", $a);
я думаю что здесь что-то с переносом строк завязано | |
|
|
|
|
|
|
|
для: streloc
(22.04.2008 в 16:15)
| | непонятно, что у вас должно содержаться в $a ? весь файл?
напишите что в каких переменных вы хотите получить из этого файла | |
|
|
|
|
|
|
|
для: Valick
(22.04.2008 в 16:21)
| | есть файл data.dat
2 |Инфаркт
8 |ОНМК
12 |Стенокардия
34 |Операции на сердце
25 |ЖКТ полостная
12 |ЖКТ лапароскопическая
14 |Беременные
10 |Сахарный диабет
3 |Панкреатит
|
и другой файл который его читает
$fileN = "data.dat";
if (is_file($fileN))
{
$fd = fopen($fileN, "r");
$sum = 0;
while (!feof($fd))
{
$a = trim(fgets($fd));
if (!empty($a))
{
$exp = explode("|", $a);
$sector[$exp[1]] = $exp[0];
$sum += $exp[0];
}
}
fclose($fd);
|
Файл data.dat читается из него берутся строчки текста. Всё работает.
Я хочу исключить текстовый файл и брать данные из базы. Но вот не выходит. | |
|
|
|
|
|
|
|
для: streloc
(22.04.2008 в 16:32)
| | Создаёте базу... создали.
в ней таблицу (например так же как назывался файл)
в таблице поля (например number и diagnos)
затем читаете.
... подключаетесь к базе
$query="SELECT * FROM data";
$res=mysql_query($query);
while ($mass=mysql_fetch_array($res))
{
echo ("номер:".$mass[number]." диагноз". $mass[diagnos]);
}
|
Но использовать базу просто для хранения - это ахтунг!! Сейчас запрос выдёргивает из базы всю таблицу, а чтобы делать выборку из базы средствами СУБД, а не РНР надо уже ставить запросы с условиями и тд. | |
|
|
|
|
|
|
|
для: Valick
(22.04.2008 в 16:21)
| | Сначала вы должны сделать массив или файл. А за тем оттуда разбивать. А такой файл можно сделать так:
$fp = fopen ("privat/data.txt", "a+");
// открыли файл на запись с аргументом "a+" - дозапись
// и передали в переменную $fp, в ней вся наша база
// и переменная готова дописать еще что-то,
// если будет "w", то данные файла сотрутся полностью
// и в $fp не будет ничего, то есть в таком случае переписываем
// базу заново, но мы остановимся на первом варианте
// определим то, что будем писать в базу, присвоим трем переменным значения
$one = "".$_POST["familia"]."";
$tele ="".$_POST["tele"]."";
$tree = "".$_POST["dsd"]." ".$_POST["dss"]."";
$four = "".$_POST["treat"]."";
$cost = "".$_POST["cost"]."";
$lech = "".$_POST["jav"]."";
//проверяем и заменяем, если он там есть, наш разделитель "::" в этих переменных
$one_new = str_replace ( "::", "::", $one );
$tele_new =str_replace ( "::", "::", $tele );
$too_new = str_replace ( "::", "::", $too );
$tree_new = str_replace ( "::", "::", $tree );
$four_new = str_replace ( "::", " ::", $four );
$cost_new = str_replace ( "::", " ::", $cost );
$lech_new = str_replace ( "::", " ::", $lech );
// кладем измененные переменные в базу одной строкой с разделителем
fputs ($fp, "$dt::$one_new::$too_new::$tele_new::$tree_new::$four_new::$cost_new::$lech_new\n");
// fputs - функция записи в файл, мы дописали в базу строку
// "10::11::12::\n", где \n - перевод каретки (нужен обязательно)
// закрываем базу
fclose ($fp);
|
И который его читает:
<?php
Error_Reporting(E_ALL & ~E_NOTICE);
include('bigin.tpl');
// считываем наш файл в массив срок (функция file),
// кладем этот массив в переменную $general
// тогда $general[0] - все, что лежит в первой строке,
// $general[1] - все, что лежит во второй строке, итд
$general = file ("data.txt");
// один разделитель (сами строки) мы использовали,
// теперь у нас есть массив строк, чтобы вытащить переменные из самих строк,
// воспользуемся вторым нашим разделителем, который равен "::"
// применим функцию "for" - цикл, в которой: первый аргумент -
// откуда начинаем отсчет "$i = 0;" - с ноля, второй аргумент -
// до какого места ведем отсчет "$i < count($general);" - до конца,
// count($general) - количество строк в базе,
// третий аргумент "$i++" - счетчик увеличения на один пункт
for ( $i = 0; $i < count($general); $i++ ){
// мы запускаем цикл, в котором при каждом проходе $i будет
// увеличиваться на один, начинать $i будем с ноля и цикл будем крутить
// пока количество строк в базе "count($general)" не станет меньше $i
// следующая строка использует второй разделитель
list ($dt,$one,$too,$tele,$tree,$four,$cost,$lech) = explode ("::", $general[$i]);
// в строках базы три отсека, поэтому разбивать мы будет на три переменные
// "list ($one,$too,$tree)" - эта конструкция дает то, что строка
// делится на три перменные, "explode" - сама функция разделения
// в которой мы и указываем наш разделитель - "explode ("::", $general[$i]);"
// то есть, что у нас получилось: цикл начинаем с ноля, тогда
// в первый проход: $one=01, $too=02, $tree=03, потому что $i=0,
// а $general[0] - все что лежит в первой строке,
// во второй проход: $one=04, $too=05, $tree=06, потому что $i=1,
// а $general[1] - все что лежит во второй строке,
// в третий проход: $one=07, $too=08, $tree=09, потому что $i=2,
// а $general[2] - все что лежит в третьей строке,
// выводим на печать все эти переменные:
echo"<table border=1 bordercolor=FD9905 width=100% cellpadding=3 bgcolor=DAFF90 text=546321><tr><td width=3%> $i</td><td width=10%> $dt</td><td width=15%><b><a href=\"/second/base.php#$too\">$one</a> </b></td><td>$too</td><td width=8%>$tele</td><td width=22%>$tree</td><td width=21%>$four</td><td width=5%><b> $cost </b></td><td width=10%>$lech \n<br></td></tr></table>";
// таким образом мы напечатаем все данные из нашего "data.txt'
// когда $i = 2, то $i == count($general), то есть закончится условие цикла
}
|
Создайте таблицу:
CREATE TABLE tblf (
namber text NOT NULL,
diagnoz text NOT NULL
) TYPE=MyISAM;
|
| |
|
|
|
|
|
|
|
для: helovek
(22.04.2008 в 16:39)
| | Спасибо. Вопрос закрыт. | |
|
|
|
|