Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Prosta rzecz, nie wiem jak zrobić(sortowanie)
Forum PHP.pl > Forum > PHP
kam10
Witam
Jestem ciemny z php i dopiero się uczę robić własne skrypty. Nie wiem jak zrobić coś takiego: Chcę zrobić skrypt komentarzu na stronkę. Jest już prawie wszystko fajnie gdyby komentarze były poukładane od najwcześniejszego do najstarszego. A jak to nie wypali to chociaż żeby na końcu komentarz była data jego dodania. Bardzo proszę o pomoc. Skrypt znajduje się tu
http://fzr.host.sk/news/cos.html
Cod
Hmmm... lepiej by było, gdybyś wkleił tu źródła tych pliczków. Poza tym nie napisaleś, czy skrypt jest na plikach, czy na bazie... Jeśli jest na plikach (a pewnie jest), to zrób tak: Kiedy ktoś dodaje komentarz, otwórz plik w trybie "r", wgraj całą zawartość do jakiejś zmiennej, następnie zamknij go, otwórz ponownie w trybie "w", dodaj nowy komenarz, a następnie zawartość tamtej zmiennej.
Jabol
na plikach, hmmm... jeżeli robisz to na plikach zrób to w XML, żeby nie było problemów z dodawaniem, modyfikacją itp, itd. Jeżeli na db to zrób
Kod
ORDER BY `etwas` DESC
I już wszystko cacy.

PS. Jeżeli robisz na plikach doradzam DOM, mimo iż jest troche niekompatybilny
Cudi
Jeśli skrypt jest na plikach to wystarczy 'odwrócić' tablicę zwróconą przez funkcję file() funkcją array_reverse.
kam10
No nie moge cos mi nie wychodzi. Aha ten skrypt jest na plikach.
Skrypt, który pokazyje wpisy:
[php:1:f1e77e4da6]<?php

$plik=file("komentarze/dane.txt");
for($i=0;$i<count($plik);$i++)
{
$wpis=split(":",$plik[$i]);
echo "<TR>";
echo "<TD valign=top>$wpis[0]</TD>";
echo "<TD valign=top><a class=mail href=mailto:$wpis[1]>$wpis[1]</a></TD>";
echo "<TD>$wpis[2]</TD>";
echo "</TR>";
}

?>[/php:1:f1e77e4da6]
Plik, który dodaje wpisy:
[php:1:f1e77e4da6]<?
$plik=fopen("komentarze/dane.txt","a");
if (!$plik)
{
echo "Błąd Zapisu do pliku!";
exit;
}

fputs($plik,"$imie:$mail:$komentarzrn");
fclose($plik);
header("Location: pokazwpisy.php");
?>
[/php:1:f1e77e4da6]

Zmoderowany przez: [KaMeLeOn]
KaMeLeOn
[php:1:1e50fad1e8]<?php
$plik=file("komentarze/dane.txt");
$plik = array_reverse($plik);
?>[/php:1:1e50fad1e8]

[KaMeLeOn]: Proszę używać znaczników php... Ile razy można powtarzać...
kam10
Jeszce jeden problem, jak zrobić żeby wstawił datę napisania komentarza na końcu komentarza np. pochyłą czcionką.
To jest kod do wysyłania komentarza.
Kod
<FORM action="dodajwpis.php">

<tr><td align="right"><h2>Imię/nick:</h2></td><td><INPUT name="imie"></td></tr>

<tr><td align="right"><h2>e-Mail:</h2></td><td><INPUT name="mail"></td></tr>

<tr><td align="right"><h2>Komentarz:</h2></td><td><textarea rows="5" name="komentarz" cols="35"></textarea></td></tr>

<tr><td></td><td align="left"><INPUT type="SUBMIT" value="Dodaj komentarz"></td></tr>

</FORM>

Kod do wyświetlania komentarza.
[php:1:499fc797e0]<?php
$plik=file("komentarze/dane.txt");
$plik = array_reverse($plik);
for($i=0;$i<count($plik);$i++)
{
$wpis=split(":",$plik[$i]);
echo "<TR>";
echo "<TD valign=top>$wpis[0]</TD>";
echo "<TD valign=top><a class=mail href=mailto:$wpis[1]>$wpis[1]</a></TD>";
echo "<TD>$wpis[2]</TD>";
echo "</TR>";
}
?>[/php:1:499fc797e0]
A to kod do wstawiania komentarza.
[php:1:499fc797e0]<?php
$plik=fopen("komentarze/dane.txt","a");
if (!$plik)
{
echo "Błąd Zapisu do pliku!";
exit;
}

fputs($plik,"$imie:$mail:$komentarzrn");
fclose($plik);
header("Location: pokazwpisy.php");
?>[/php:1:499fc797e0]
P.S. Jeszcze jedna rzecz. Jak zrobić żeby po linku np. pokaż komentarze wyświetlił ilość komentarzy.
Cudi
Jeśli chodzi o date to zapisz do pliku wartość zwróconą przez funkcje time(),
[php:1:0f4b3c6cc7]<?php
fputs($plik, "$imie:$mail:$komentarz:".time()."rn");
?>[/php:1:0f4b3c6cc7]
A potem przy wyświetlaniu daj:
[php:1:0f4b3c6cc7]<?php
echo date('d.m.Y, H:i', $wpis[3]);
?>[/php:1:0f4b3c6cc7]

Ps. Dwukropek nie jest najlepszym seperatorem, bo każdy może go wpisać w imię lub treść komentarza i cały wpis sie posypie. Skorzystaj z czegoś bardziej skomplikowanego.
bu
np. Ŕ tongue.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.