Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] kolejność wpisów
Forum PHP.pl > Forum > Przedszkole
zico_biezanow
Witam. Chodzi mi o kolejnosc wpisów w kodzie: (nowo dodany wpis zostaje zapisany do pliku na koncu gdyz fopen ma tryb "a" ! A ja potrzebuje zeby nowy wpis zostawal dodawany na poczatku ! Jak to zrobic? sprawdzalem z innymi trybami i mi sie nie udalo :/ z "w" jest lipa bo zastepuje mi nowy wpis poprzednie wpisy :/ help !

  1. <HTML>
  2. <HEAD>
  3. <center>
  4. <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=iso-8859-2">
  5. <META NAME="Author" CONTENT="Skr3czu">
  6. <title>NewSor by Skr3czu</title>
  7. <LINK REL="stylesheet" HREF="style.css" TYPE="text/css">
  8. </HEAD>
  9. <BODY>
  10.  
  11. <TABLE WIDTH="500" BORDER="0">
  12. <TR>
  13. <TD WIDTH="500">
  14.  <ul>
  15. <hr width="400" noshade size="1" align="left">
  16. <br><br>
  17. Tutaj dodaje się newsy
  18. <?php
  19. function load($file){
  20. $plik = @file( $file ) ;
  21. if ( empty( $plik )) return "" ;
  22. $count = count( $plik ) ;
  23. for( $a = 0 ; $a < $count ; $a++ )
  24. $e[$a] = chop( $plik[$a] ) ;
  25. return $e ;
  26. }
  27. function add($file, $line ){
  28. if(file_exists( $file )){$plik = @fopen( $file, "a" );}
  29. flock( $plik, 2 ) ;
  30. fwrite( $plik, $line ) ;
  31. flock( $plik, 3 ) ;
  32. fclose( $plik ) ;
  33. }
  34.  
  35. if ($_POST['opisy']){
  36. $nick=$_POST['nick']; $opis=$_POST['opis'];
  37. add("dane.dat", "<b><big>".$nick."</b></big><br><br><b>".$opis."</b><br>---------------------------------------------------------------------------<br>Dodał:<b>Admin</b><br><br>");
  38. }
  39. ?>
  40. </head>
  41. <body>
  42. <p align="center">
  43. <table align="center" style="border-style: dashed; border-width: 1px; border-color: black">
  44. <tr>
  45.  
  46. <form method="POST">
  47. <div align="center"><center><table border="0" cellpadding="0"
  48. cellspacing="0">
  49. <tr>
  50. <td align="right">Temat:&nbsp;&nbsp;&nbsp;&nbsp</td>
  51. <td><input type="text" size="20" name="nick"></td>
  52. </tr>
  53. <tr>
  54. <td align="right">News:&nbsp;&nbsp;&nbsp;&nbsp;</td>
  55. <td><input type="text" size="20" name="opis"
  56. style="width:155px;"> <input type="submit" name="opisy"
  57. value="Dodaj"></td>
  58.  
  59. </table>
  60. </div>
  61. </form>
  62. </table>
  63. </p>
  64. Newsy dodane:<br>
  65. <?php
  66. $tmp=load("dane.dat");
  67. while (list ($key, $val) = each ($tmp)) {echo "<b>".$key."</b>. ".$val."<br>";};
  68. ?>
  69.  
  70.  
  71.  
  72. <br><br>
  73.  
  74. </center>
  75.  </ul>
  76.  
  77. </TD>
  78. </TR>
  79. </TABLE>
  80. </CENTER>
  81. </BODY>
  82. </HTML>
b0b3k
zawsze mozna odwrocic kolejnosc odczytywania z pliku, nie pamietam jak to lecialo ale chyba uksort ?
zico_biezanow
a jak to konkretnie zrobic bo ja jestem zielony jesli chodzi o php

no to tutaj niemam tablic, to jest caly kod skryptu (pozniej go includuje do index.php) do wyswietlania wpisow przez formularz ! chce odwrocic tylko kolejnosc ;/
lopik
Co to za funkcja "load" ? chyba nie ma takiej funkcji...
Tu masz coś więcej chyba źle...

PS. Zerkne na to... winksmiley.jpg
zico_biezanow
wiesz no skrpyt dziala tylko potrzebuje zmienic ta nieszczesna kolejnosc wpisow ! chodzi mi tylko o kolejnosc i nic wiecej
Kuziu
Zapisz zawartość pliku do zmiennej, zapisz nowy wpis z opcją W co skasuje stare wpisy i zapisz na koncu to co trzymasz w zmiennej.
zico_biezanow
a podasz mi kod jak to zrobic bo nie bardzo rozumiem
dzobert
otwórz plik z parametrem r+, a nie a

Kod
'r+'     Otwiera do odczytu i zapisu; umieszcza wskaźnik pliku na jego początku.
zico_biezanow
tyle że jak dam r+ to napisze cos poraz drugi w formularzu zeby mi odalo to mi nie dodaje tylko zastepuje poprzedni wpis na aktualny :/
lopik
No niestety ;/ nie pomogę w tym skrypcie sad.gif
Jak dla mnie on jest przesadzony, można by to zrobić prościej, i z mniejszą ilością kodu php.

PS. A ten plik 'dane.dat' to troche dziwnie wygląda od środka winksmiley.jpg.

Inni pomogą smile.gif
Pozdrawiam.
XDocTorX
Nie testowałem ale tak powinno działać
  1. <?php
  2. $p="plik.txt";
  3. $dane1 = file($p);
  4. $newsF = fopen($p, "w+");
  5. flock($p, 2);
  6. fputs($p, $dane_na_poczatku."n");
  7. foreach($dane1 as $zapis)
  8. {
  9.  if ($zapis!="n"&&$zapis!="")
  10.  {
  11. fputs($p,$zapis);
  12.  }
  13. }
  14. flock($p, 3);
  15. fclose($p);
  16. ?>
zico_biezanow
a jak połączyc ten kod co podałes z moim kodem?
XDocTorX
tą stroną http://pl2.php.net/ wystarczy troszeczke poczytać przeanalizowac kod i scalić.

Pozdrawiam
zico_biezanow
połączyłem to tak ale cos chyba jest zle :/

  1. <HTML>
  2. <HEAD>
  3. <center>
  4. <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=iso-8859-2">
  5. <META NAME="Author" CONTENT="Skr3czu">
  6. <title>NewSor by Skr3czu</title>
  7. <LINK REL="stylesheet" HREF="style.css" TYPE="text/css">
  8. </HEAD>
  9. <BODY>
  10.  
  11. <TABLE WIDTH="500" BORDER="0">
  12. <TR>
  13. <TD WIDTH="500">
  14.  <ul>
  15. <hr width="400" noshade size="1" align="left">
  16. <br><br>
  17. Tutaj dodaje się newsy
  18. <?php $p="plik.txt";$dane1 = file($p);$newsF = fopen($p, "w+");flock($p, 2);fputs($p, $dane_na_poczatku."n"); foreach($dane1 as $zapis) {  if ($zapis!="n"&&$zapis!="")  { fputs($p,$zapis);  } }flock($p, 3);fclose($p); }
  19.  
  20. if ($_POST['opisy']){
  21. $nick=$_POST['nick']; $opis=$_POST['opis'];
  22. add("dane.dat", "<b><big>".$nick."</b></big><br><br><b>".$opis."</b><br>---------------------------------------------------------------------------<br>Dodał:<b>Admin</b><br><br>");
  23. }
  24. ?>
  25. </head>
  26. <body>
  27. <p align="center">
  28. <table align="center" style="border-style: dashed; border-width: 1px; border-color: black">
  29. <tr>
  30.  
  31. <form method="POST">
  32. <div align="center"><center><table border="0" cellpadding="0"
  33. cellspacing="0">
  34. <tr>
  35. <td align="right">Temat:&nbsp;&nbsp;&nbsp;&nbsp</td>
  36. <td><input type="text" size="20" name="nick"></td>
  37. </tr>
  38. <tr>
  39. <td align="right">News:&nbsp;&nbsp;&nbsp;&nbsp;</td>
  40. <td><input type="text" size="20" name="opis"
  41. style="width:155px;"> <input type="submit" name="opisy"
  42. value="Dodaj"></td>
  43.  
  44. </table>
  45. </div>
  46. </form>
  47. </table>
  48. </p>
  49. Newsy dodane:<br>
  50. <?php
  51. $tmp=load("dane.dat");
  52. while (list ($key, $val) = each ($tmp)) {echo "<b>".$key."</b>. ".$val."<br>";};
  53. ?>
  54.  
  55.  
  56.  
  57. <br><br>
  58.  
  59. </center>
  60.  </ul>
  61.  
  62. </TD>
  63. </TR>
  64. </TABLE>
  65. </CENTER>
  66. </BODY>
  67. </HTML>
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.