Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » как каждый новая зпись появлялась вначале списка

Ответить
Настройки темы
как каждый новая зпись появлялась вначале списка

Аватара для slaine

Ветеран


Сообщения: 675
Благодарности: 8


Конфигурация

Профиль | Отправить PM | Цитировать


Хочу, чтоб новая запись появлялась вначале(вверху) списка в 1.php,
как мне это проделать?
Пробовал end() & prev(), плохо получается.
Помогите ктонибудь.

Вот эти два фйла:

Здесь читаю файл aaa.txt.
1.php
=====
Код: Выделить весь код
<a href="2.php">Back</a>
<BR>
<BR>
<?
$file = file("aaa.txt");
$count = count($file);
echo "<table width=360 border=1><tr>";
	for ($i = 0; $i < $count; $i ++){
$line = explode("\t", $file[$i]);
echo "<tr valign=top>";
echo "<td bgColor=#ffffff>".$line[0]."</td>";
echo "<td bgColor=#ffffff>".$line[1]."</td>";
echo "<td bgColor=#ffffff>".$line[2]."</td>";
echo "</tr>";
}
echo "</table>";
?>
<BR>
<a href="2.php">Back</a>
А здесь провожу запись в него.

2.php
=====
Код: Выделить весь код
<?
if (isset($_GET['name']) && isset($_GET['city']) && isset($_GET['country'])){
$a = ucfirst(htmlspecialchars($_GET['name']));
$b = ucfirst(htmlspecialchars($_GET['city']));
$c = ucfirst(htmlspecialchars($_GET['country']));
	if (empty($a) || empty($b) || empty($c)){ 
echo " ";
} else {
$file = fopen("aaa.txt", "a+");
fwrite($file, $a."\t".$b."\t".$c."\n");
fclose($file);
echo "<html><head>";
echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=1.php'>";
echo "</html></head>";
	}
}
?>
<table border=0 cellspacing=0 cellpadding=0>
<form action=2.php method=get>
<tr>
<td>Name:</td>
<td><input type="text" name=name size=20 maxlength=20></td>
</tr>
<tr>
<td>City:</td>
<td><input type="text" name=city size=20 maxlength=20></td>
</tr>
<tr>
<td>Country:</td>
<td><input type="text" name=country size=20 maxlength=20></td>
</tr>
<tr>
<td colspan=2 align=right><input type="submit" value="   OK   "></td>
</tr>
</form>
</table>
<BR>
<a href="1.php">View results</a>

-------
живодёр - практик


Отправлено: 13:39, 09-05-2005

 

Аватара для E-mail

Ветеран


Сообщения: 640
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


PHP код: Выделить весь код

$file=file("aaa.txt");


for(
$i=count($file);$i>-1;$i++)
echo 
$file[$i]; 

самое простое из чтения из файла наоборот.

можно еще в середину цыкла добавить разделение строки:

PHP код: Выделить весь код

$file=file("aaa.txt");


for(
$i=count($file);$i>-1;$i++)
foreach(
explode("\t",$file[$i]) as $a)
echo 
$a."***";
echo 
"<br>"

-------
Основы HTML | Конференции


Отправлено: 13:47, 09-05-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для slaine

Ветеран


Сообщения: 675
Благодарности: 8

Профиль | Отправить PM | Цитировать


спасибо, что подсказали.
Правда теперь там стали ругатся
вот такими словами:

Notice: Undefined offset: 5 in z:\home\test1.ru\www\1\1.php on line 9

Notice: Undefined offset: 1 in z:\home\test1.ru\www\1\1.php on line 12

Notice: Undefined offset: 2 in z:\home\test1.ru\www\1\1.php on line 13

Notice: Undefined offset: 3 in z:\home\test1.ru\www\1\1.php on line 14


это в 1.php
PHP код: Выделить весь код

<a href="2.php">Back</a>

<BR>
<BR>
<?
$file 
file("aaa.txt");
$count count($file);
echo 
"<table width=360 border=1><tr>";
    for (
$i $count$i > -1$i --){
$line explode("\t"$file[$i]);
echo 
"<tr valign=top>";
echo 
"<td bgColor=#ffffff>".$line[0]."</td>";
echo 
"<td bgColor=#ffffff>".$line[1]."</td>";
echo 
"<td bgColor=#ffffff>".$line[2]."</td>";
echo 
"<td bgColor=#ffffff>".$line[3]."</td>";
echo 
"</tr>";
}
echo 
"</table>";
?>
<BR>
<a href="2.php">Back</a>

-------
живодёр - практик


Отправлено: 16:31, 09-05-2005 | #3


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


тык count считает количество элементов, но в массиве счёт начинается с 0 !!!, то есть
for ($i = $count; $i > -1; $i --) надо переписать в for ($i = $count; $i > 0; $i --)

PS:
это кому как, но обычно я вижу что люди пишут этот for по-другому:
for ($i = 0; $i < $count; $i ++)
а для переворачивания массива есть одна встроенная функция, array_reverse вроде

-------
Fortes fortuna adiuvat


Отправлено: 20:48, 09-05-2005 | #4


Аватара для slaine

Ветеран


Сообщения: 675
Благодарности: 8

Профиль | Отправить PM | Цитировать


for ($i = $count; $i > 0; $i --) при таком цикле $line[0] невыводится.
надо так "-1" или ">=0".
И array_reverse делает не то, что надо.
Я слышал, что krsort вроде может сортировать массиа в обратном порядке,
но я не знаю, как с ней работать. кто в этом шарит подчкажите.

-------
живодёр - практик


Отправлено: 16:48, 10-05-2005 | #5


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Цитата:
for ($i = $count; $i > 0; $i --) при таком цикле $line[0] невыводится.
надо так "-1" или ">=0"
Да согласен, моя ошибка, только в этом случае и $i должно равняться $count-1 в первом цикле

Цитата:
И array_reverse делает не то, что надо
Эта функция как раз для того и сделана, чтобы первую запись в массиве сделать последней и наоборот, просто в этом случае в цикле вывод надо начинать с нулевого элемента, а не с конца, так как массива уже перевёрнут
PHP код: Выделить весь код

<? 

$file 
file("aaa.txt"); 
$count count($file);
$file=array_reverse($file); 
echo 
"<table width=360 border=1><tr>"
    for (
$i 0$i $count$i ++){ 
$line explode("\t"$file[$i]); 
echo 
"<tr valign=top>"
echo 
"<td bgColor=#ffffff>".$line[0]."</td>"
echo 
"<td bgColor=#ffffff>".$line[1]."</td>"
echo 
"<td bgColor=#ffffff>".$line[2]."</td>"
echo 
"<td bgColor=#ffffff>".$line[3]."</td>"
echo 
"</tr>"

echo 
"</table>"
?>

Попробуйте так, если не получиться, наверно, я вопроса не могу понять

И ещё: можно же сразу писать в файл с начала, то есть самые новые записи будут в начале файла и соответственно в начале массива, в который вы этот файл построчно загоняете, для этого надо поставить режим 'r+' в функции fopen записи в файл

-------
Fortes fortuna adiuvat


Отправлено: 17:53, 10-05-2005 | #6


Аватара для slaine

Ветеран


Сообщения: 675
Благодарности: 8

Профиль | Отправить PM | Цитировать


- Да спасибо всё работает!
как я сразу не смог этого сделать? - вобще, стрём и позор.

-------
живодёр - практик


Отправлено: 19:06, 10-05-2005 | #7



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » как каждый новая зпись появлялась вначале списка

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Система - Установка и удаление програм RVGroup Программное обеспечение Windows 57 31-12-2010 15:39
Интерфейс - [решено] Как поменять цвет списка воспроизведения vladj Microsoft Windows 7 1 21-10-2009 12:11
Интернет - [решено] Как удалить список адресов из списка? Kentuky Microsoft Windows 2000/XP 2 26-09-2007 22:29
как настроить, чтобы пароль для входа в систему не спрашивался каждый раз? Grizz Хочу все знать 2 12-10-2006 18:27
Как мне узнавать каждый раз его IP? Динамическим IP. UTU Сетевые технологии 5 19-10-2005 17:31




 
Переход