MXM
19-05-2004, 17:45
Всем привет!
Ситуация:
Есть форма (низподающая меню), из которой выбирается интересующая позиция, данные по позициям берутся php-скриптом из текстового файла. В данном случае низподающая меню - выбор марок автомобилей. Выбрав интересующую марку пользователь кликает на Ok, далее данные передаются скрипту, который обрабатывает их и выводит ему, из другой тектовой базы, все авто соответсвующей данной марки.
Текстовые базы данных.
(1-ая база, marks.txt, для низподающей меню), вид:
...
22;Mini;
23;Cadillac;
24;Lincoln;
...
(2-ая база, cars.txt), вид:
...
29;2;Murano
28;3;Endeavor;
27;23;Escalade
26;23;SRX
...Связанны эти базы так: во 2-ой базе, 1-ый индекс равен 0-му индексу 1-ой базы, т.е.$cars[1]=$marks[0];Проблема:
При выводе пользователю инфы по интересующей марке 1-ый индекс (2-ой базы) не заменяется на 0-ой индекс (1-ой базы).
К примеру, переменная, которая передаются из формы скрипту $mark, значение этой переменной 23, т.е. пользователю в браузере отображется так:23 Escalade
23 SRX, а должно быть:Cadillac Escalade
Cadillac SRX"Код в студию":$fp=fopen("data/marks.txt","r");
$marks=array();
$i=0;
while(!feof($fp))
{$marks[$i]=fgets($fp,10000);
$i++;}
fclose($fp);
$fp=fopen("data/cars.txt","r");
$cars=array();
$i=0;
while(!feof($fp))
{$str=" ";
$cars[$i]=fgets($fp,10000);
$pt=explode(";",$cars[$i]);
for($j=0;$j<count($marks);$j++)
{$mpt=explode(";",$marks[$j]);
*if($pt[1]==$mpt[0])
*{$pt[1]=$mpt[1];
* break;}}
// $cars[$i]=implode(";",$pt);
$str=$str.";";
$cars[$i]=$str.$cars[$i];
$i++;}
fclose($fp);
sort($cars);
$ncars=count($cars);
$ndcars=array();
$counter=0;
for($i=0;$i<$ncars;$i++)
{$pt=explode(";",$cars[$i]);
if($pt[2]==$mark)
{$ndcars[$counter]=$cars[$i];
*$counter++;}}
$ncars=count($ndcars);
print "Всего авто - $ncars<br>";
for($i=0;$i<$ncars;$i++)
{$pt=explode(";",$ndcars[$i]);
$id=$pt[1];
$mark=$pt[2];
$art=$pt[3];
print "$mark $art<br>";}Строку, которую я закомментировал, как раз она, если не ошибаюсь, отвечает за замену, но если её раскомментировать, то на экране ничего не отобразится...(
Вопрос:
В чём может быть причина? Что я делаю не так? Как это делается? Заранее спасибо!
Ситуация:
Есть форма (низподающая меню), из которой выбирается интересующая позиция, данные по позициям берутся php-скриптом из текстового файла. В данном случае низподающая меню - выбор марок автомобилей. Выбрав интересующую марку пользователь кликает на Ok, далее данные передаются скрипту, который обрабатывает их и выводит ему, из другой тектовой базы, все авто соответсвующей данной марки.
Текстовые базы данных.
(1-ая база, marks.txt, для низподающей меню), вид:
...
22;Mini;
23;Cadillac;
24;Lincoln;
...
(2-ая база, cars.txt), вид:
...
29;2;Murano
28;3;Endeavor;
27;23;Escalade
26;23;SRX
...Связанны эти базы так: во 2-ой базе, 1-ый индекс равен 0-му индексу 1-ой базы, т.е.$cars[1]=$marks[0];Проблема:
При выводе пользователю инфы по интересующей марке 1-ый индекс (2-ой базы) не заменяется на 0-ой индекс (1-ой базы).
К примеру, переменная, которая передаются из формы скрипту $mark, значение этой переменной 23, т.е. пользователю в браузере отображется так:23 Escalade
23 SRX, а должно быть:Cadillac Escalade
Cadillac SRX"Код в студию":$fp=fopen("data/marks.txt","r");
$marks=array();
$i=0;
while(!feof($fp))
{$marks[$i]=fgets($fp,10000);
$i++;}
fclose($fp);
$fp=fopen("data/cars.txt","r");
$cars=array();
$i=0;
while(!feof($fp))
{$str=" ";
$cars[$i]=fgets($fp,10000);
$pt=explode(";",$cars[$i]);
for($j=0;$j<count($marks);$j++)
{$mpt=explode(";",$marks[$j]);
*if($pt[1]==$mpt[0])
*{$pt[1]=$mpt[1];
* break;}}
// $cars[$i]=implode(";",$pt);
$str=$str.";";
$cars[$i]=$str.$cars[$i];
$i++;}
fclose($fp);
sort($cars);
$ncars=count($cars);
$ndcars=array();
$counter=0;
for($i=0;$i<$ncars;$i++)
{$pt=explode(";",$cars[$i]);
if($pt[2]==$mark)
{$ndcars[$counter]=$cars[$i];
*$counter++;}}
$ncars=count($ndcars);
print "Всего авто - $ncars<br>";
for($i=0;$i<$ncars;$i++)
{$pt=explode(";",$ndcars[$i]);
$id=$pt[1];
$mark=$pt[2];
$art=$pt[3];
print "$mark $art<br>";}Строку, которую я закомментировал, как раз она, если не ошибаюсь, отвечает за замену, но если её раскомментировать, то на экране ничего не отобразится...(
Вопрос:
В чём может быть причина? Что я делаю не так? Как это делается? Заранее спасибо!