Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Edytowanie newsa, jak to zrobić?
MissMoneypenny
post 28.06.2005, 19:04:16
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 11.06.2005

Ostrzeżenie: (0%)
-----


Zaczęłam pisac prosty skrypt newsów (dopiero się uczę) i chcę spróbować dodać do niego panel administracyjny w dodawaniem newsów (to sobie poradziłam) ale gorzej jest już z edycją wpisów sad.gif .Nie wiem jak się zabrać do tego. Może ktoś mógłby mi doradzić w jaki sposób to najprościej wykonać. Nie chodzi mi o gotowca tj. żeby mi ktoś napisał bo chcę się nauczyć. Jeśli ktoś może mi podpowiedzieć to byłabym bardzo wdzięczna.
Go to the top of the page
+Quote Post
NuLL
post 28.06.2005, 19:12:04
Post #2





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


Zakładam, że jest na MySQL-u oraz masz jakieś pole typu ID albo coś podobnego.

Klikasz na link Edytuj - w linku przekazujesz ID newsa który ma być edytowany. Pobierasz go z bazy - umieszczasz newsa w formularzu. Do formularza dodajesz pole ukryte z ID newsa który ma zostać zupdateowany, że tak brzydko powiem smile.gif Wysyłasz formularz a na stronie gdzie jest on wykonywany wykonujesz zapytanie UPDATE news SET tu pola WHERE news_id=tu id z pola ukrytego.

Mam nadzieję, że dość prosto się wyraziłem smile.gif


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
MissMoneypenny
post 28.06.2005, 19:14:55
Post #3





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 11.06.2005

Ostrzeżenie: (0%)
-----


No niestety całość jest na plikach zapomniałam dodać na początku withstupidsmiley.gif . I nie wiem jak zapisać dane po zmienieniu ich w formularzu
Go to the top of the page
+Quote Post
NuLL
post 28.06.2005, 19:20:50
Post #4





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


Przydała by się jakaś struktura tychże plików bądź ew. skrypt który je dodaje.


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
MissMoneypenny
post 30.06.2005, 15:50:48
Post #5





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 11.06.2005

Ostrzeżenie: (0%)
-----


Przeszukałam forum i znalazłam coś co mogłabym wykorzystać w swoim sktypcie. Próbowałam dostosować to do moich danych ale coś robię żle. Nie zapisuje mi pliku a jak już zapisze to zamiast spodziewanych danych jest Array. Nie potrafię znależć błędu, może ktoś będzie wiedział co jest źle. przedstwawiam ten fragment kodu:
  1. <?php
  2. if(!($_POST['id']==&#092;"\")){
  3. $plik=&#092;"newsy.txt\";
  4. $tablica=file($plik);
  5. $ile=count($tablica);
  6. $nr=$_GET['edit_id'];
  7. unset($tablica[$nr]);
  8. for($i=0; $i<=$nr-1; $i++){
  9. $tab[]=$tablica[$i];
  10. }
  11. $tab[]=&#092;"$_POST['id']|$_POST['dodal']|$_POST['nazwa']|$_POST['tresc']n\";
  12. for($i=$nr+1; $i<=$ile-1; $i++){
  13. $tab[]=$tablica[$i];
  14. }
  15. $plik=&#092;"newsy.txt\";
  16. $fp=fopen($plik, &#092;"w\");
  17. flock($fp, 2);
  18. fwrite($fp, $tab);
  19. flock($fp, 3);
  20. fclose($fp);
  21.  
  22. }
  23. ?>

http://forum.php.pl/index.php?showtopic=6758&hl=

To jest to co znalazłam na forum snitch.gif
Z góry dzięki za wskazówki co robię nie tak
Go to the top of the page
+Quote Post
NuLL
post 30.06.2005, 17:48:46
Post #6





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


A teraz po mojemu - wydaje mi iż ta metoda jest łatwiejsza.

Pliki newsy.dat
Kod
NuLL$$null_pl@o2.pl$$30.06.2005$$Tytul testowy nr.3$$A to jest tresc jakas tam sobie|@|MissMoneyPenny$$missy@wp.pl$$28.06.2005$$Tytul testowy nr 2$$A to jest tresc jakas tam sobie tyleze troche inna|@|NuLL$$null_pl@o2.pl$$27.06.2005$$Tytul testowy nr 1$$A to jest tresc jakas tam sobie ale jeszcze troche inna|@|


Ten plik trochę jest nieczytelny ale nie oto chodzi. Poszczególne wpisy są oddzielane dzięki takiemu dziwnemu separatorowi |@| - po aby było małe prawdopodobieśtwo powtórzenia. Kolejne pola wpisu są oddzielone dzięki $$.

I do zabawy

Odczyt newsów z pliku.
  1. <?php
  2.  
  3. $_tresc=file_get_contents('newsy.dat');//odczyt całości pliku
  4. $_newsy=explode(&#092;"|@|\",$_tresc);//->do tablicy. Element tablicy - wiersz z newsem
  5. //Usuwamy puste wiersze z tablicy :-)
  6. $_newsy = array_diff($_newsy, array(''));
  7. //zamieniamy kolejne wiersze na tablice aby bylo latwiej
  8. $_temp=array();//tymczasowa tablica
  9. foreach($_newsy as $_news){
  10.     $_temp[]=explode('$$',$_news);//separator - opisane wyżej
  11. }
  12. $_newsy=$_temp;
  13. //i tu możesz coś robić ale dla testu.
  14. echo '<pre>';
  15. print_r($_newsy)
  16. echo '</pre>';
  17.  
  18. ?>


Dodanie newsa biggrin.gif - zakładam, że dane są wypełnione
  1. <?php
  2. $_news=$_POST['kto'].'$$'.$_POST['email'].'$$'.date(&#092;"d-m-Y\",time()).'$$'.$_POST['tytul'].'$$'.$_POST['tresc'];//mamy nowy news sklejony
  3. $_news.=&#092;"|@|\";//dopisujemy separator - wspomniany wyzej
  4. //a teraz sam zapis
  5. $_tresc=file_get_contents('newsy.dat');//odczyt całości pliku
  6. //doklejamy na poczatku tekstu w pliku
  7. $_tresc=$_news.$_tresc;//news doklejony
  8. file_put_content('newsy.dat',$_tresc);//zapisujemy
  9. ?>


Nie prawda, że proste :?:

Teraz usuwanie - zakładam ze newsy maja numery tak jak sa w pliku zapisane
  1. <?php
  2.  
  3. $id=2;//chcemy usunac drugi wpis
  4. //tablica jest indeksowana od 0 a nie od 1 tak wiec trzeba odjac
  5. $id=$id-1;
  6. $_tresc=file_get_contents('newsy.dat');//wiadomo
  7. $_newsy=explode('|@|',$_tresc);//zamieniamy w tablice
  8. $_tresc='';//czyscimy , bedzie zmienna wykorzystana drugi raz
  9. $_newsy[$id]='';//pusta linia w miejsce danego newsa
  10. //Usuwamy puste wiersze z tablicy :-)
  11. $_newsy = array_diff($_newsy, array(''));
  12. //zamiana tablicy z newsami na powrot w lancuch
  13. $_tresc=implode('|@|',$_newsy);
  14. //zapis do pliku
  15. file_put_contents('newsy.dat',$_tresc);
  16.  
  17. ?>


I teraz o co prosiłaś - czyli edycja - zakładam, żę edytujesz news o numerze dwa.
Beda dwa przyklady: jak dostać się do newsa o numerze i jak nadpisać news numer dwa.

Najpierw odczyt - dzieki niemu odtrzymasz zmienne ktore bedziesz mogla wstawic do formularza
  1. <?php
  2.  
  3. //Patrzy wyzej
  4. $id=2;
  5. $id=$id-1;
  6. $_tresc=file_get_contents('newsy.dat');
  7. $_newsy=explode('|@|',$_tresc);
  8. $_news_do_edycji=$_newsy[$id];
  9. list($autor,$email,$data,$tytul,$tresc)=explode('$$',$_news_do_edycji);
  10.  
  11. ?>

No dobra trzeba zapisać :roll2: tak więc co następuje
Zakładam, że przekazałaś sobie w polu ukrytym numer newsa do edycji
  1. <?php
  2.  
  3. $id=$_POST['id'];//no to mamy numer newsa do nadpisania
  4. $id=$id-1;//tak czy tak tu też trzeb odjąć
  5. $_news=$_POST['kto'].'$$'.$_POST['email'].'$$'.date(&#092;"d-m-Y\",time()).'$$'.$_POST['tytul'].'$$'.$_POST['tresc'];//przy wedrowalo z formularza
  6. $_tresc=file_get_contents('newsy.dat');//czytamy
  7. $_newsy=explode('|@|',$_tresc);// do tablicy z tym...
  8. $tresc='';
  9. //podmieniamy na zedytowany
  10. $_newsy[$id]=$_news;
  11. //zamiana w lanuch
  12. $_tresc=implode('|@|',$_newsy);
  13. file_put_contents('newsy.dat',$_tresc);
  14.  
  15. ?>


Tak wygląda cały system newsów od strony php - mam nadzieję, że zostanę doceniony tongue.gif winksmiley.jpg


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
MissMoneypenny
post 30.06.2005, 18:46:39
Post #7





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 11.06.2005

Ostrzeżenie: (0%)
-----


Dzięki wielkie! Zaraz sobie to wszystko przeanalizuje. Nareszcie ktoś mi to że tak powiem łopatologicznie wytłumaczył tongue.gif . Jeszcze raz wielkie dzięki za twoją pracę winksmiley.jpg
Go to the top of the page
+Quote Post
NuLL
post 30.06.2005, 18:55:04
Post #8





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


Próbowałem najprościej jak umiem smile.gif Jakbyś czegoś nie rozumiała napisz. Opisy funkcji w manualu ale za dużo ich tu nie użyłem i za trudne nie są smile.gif

AHa - pisane z palca więc mogą być literówki.


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 17:09