Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Edytowanie news'a
Ive
post
Post #1





Grupa: Zarejestrowani
Postów: 352
Pomógł: 1
Dołączył: 17.07.2003
Skąd: Kazanów

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


Mam system newsów i zapisuje te newsy do jednego pliku news.txt w postaci:
Kod
$nr|*|/*|$nick|*|/*|$emb|*|/*|$temat|*|/*|$data|*|/*|$trescn

i jak teraz zrobić edytor do tych newsów że np podaje numer news'a a on mi wyszukuje go w tablicy i wyświetla (np. w takim stylu że:
Kod
Nick <input type=text name=nick value=$nick><br>

Emblemat <input type=text name=emb value=$emb><br>

...

bardzo proszę o pomoc
Go to the top of the page
+Quote Post
dob
post
Post #2





Grupa: Zarejestrowani
Postów: 166
Pomógł: 0
Dołączył: 30.01.2003
Skąd: Warszawa

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


[php:1:fbae1547fe]<?php
$tablica=file("news.txt");
$ile=count($tablica);


$czesc=explode("|*|/*|", $tablica[$_GET['id']]);

echo "Nick <input type='text' name='nick' value='".$czesc[1]."'><br>
Emblemat <input type='text' name='emb' value='".$czesc[2]."' <br>";
?>[/php:1:fbae1547fe]

Może będzie działać (IMG:http://forum.php.pl/style_emoticons/default/laugh.gif) pamietaj ze w php liczy sie od 0, zmienne sobie jakoś przygotuj do wyswietlania (np. stripslashes(), trim() itp.)

PS żeby zobaczyc w formularzu zawartosć którejś linii z pliku txt musisz wejsć w plik php ze zmienną w adresie o numerze lini w pliku (pamietaj że liczymy od zera). Przykładowy adres index.php?id=0 (dla pierwszej linijki)
Go to the top of the page
+Quote Post
Ive
post
Post #3





Grupa: Zarejestrowani
Postów: 352
Pomógł: 1
Dołączył: 17.07.2003
Skąd: Kazanów

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


Cytat
[php:1:de7f7ddb2a]<?php
$tablica=file("news.txt");
$ile=count($tablica);


$czesc=explode("|*|/*|", $tablica[$_GET['id']]);

echo "Nick <input type='text' name='nick' value='".$czesc[1]."'><br>  
Emblemat <input type='text' name='emb' value='".$czesc[2]."' <br>";
?>[/php:1:de7f7ddb2a]

Może będzie działać  :lol:  pamietaj ze w php liczy sie od 0, zmienne sobie jakoś przygotuj do wyswietlania (np. stripslashes(), trim() itp.)

PS żeby zobaczyc w formularzu zawartosć którejś linii z pliku txt musisz wejsć w plik php ze zmienną w adresie o numerze lini w pliku (pamietaj że liczymy od zera). Przykładowy adres index.php?id=0 (dla pierwszej linijki)

dzieki dob ;]
Go to the top of the page
+Quote Post
Ive
post
Post #4





Grupa: Zarejestrowani
Postów: 352
Pomógł: 1
Dołączył: 17.07.2003
Skąd: Kazanów

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


A jak teraz napisać kod żeby nadpisywał mi tą zmieniona już linię w pliku ? :?
Go to the top of the page
+Quote Post
dob
post
Post #5





Grupa: Zarejestrowani
Postów: 166
Pomógł: 0
Dołączył: 30.01.2003
Skąd: Warszawa

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


ja to robilem na zasadzie 2 pętli tzn wpierw usuwam z tablicy element o numerze linii edytowanej, od 0 do posta którego edytujesz - 1 pętelką wrzucam wszystko do tablicy następnie za linijkę którą edytuje również wrzucam do tablicy (z nowymi danymi) potem o dnumeru lini edytowany+1 pętlą wrzucałem niezmienione linijki to tablicy a poźniej zapisywałem tablice tutaj przykład kodu :
[php:1:6741089b43]<?php
$tablica=file($plik);
$ile=count($tablica);
$nr=$_POST['edit'];
unset($tablica[$nr]);
for($i=0; $i<=$nr-1; $i++){
$tab[]=$tablica[$i];
}
$tab[]=$nr."|*|/*|".$nick."|*|/*|".$emb."|*|/*|".$temat."|*|/*|".$data."|*|/*|".$tresc."n";
for($i=$nr+1; $i<=$ile-1; $i++){
$tab[]=$tablica[$i];
}
$fp=fopen($plik, "w");
flock($fp, 2);
fwrite($fp, str_replace("r", '', implode('', $tab)));
flock($fp, 3);
fclose($fp);
?>[/php:1:6741089b43]
Go to the top of the page
+Quote Post
Ive
post
Post #6





Grupa: Zarejestrowani
Postów: 352
Pomógł: 1
Dołączył: 17.07.2003
Skąd: Kazanów

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


heh nie działa mi to (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
dob
post
Post #7





Grupa: Zarejestrowani
Postów: 166
Pomógł: 0
Dołączył: 30.01.2003
Skąd: Warszawa

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


bo to jest wklejone z jakiegoś mojego pliku, w formularzu musisz mie ukryte pole o wartosci edytowanego newsa - czyli tego samego co w formularzu itp. Pokombinuj z tym a będzie ci działało
Go to the top of the page
+Quote Post
Ive
post
Post #8





Grupa: Zarejestrowani
Postów: 352
Pomógł: 1
Dołączył: 17.07.2003
Skąd: Kazanów

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


Cytat
bo to jest wklejone z jakiegoś mojego pliku, w formularzu musisz mie ukryte pole o wartosci edytowanego newsa - czyli tego samego co w formularzu itp. Pokombinuj z tym a będzie ci działało

zrobiłem tak:
plik edit_news.php:
[php:1:703b7f09ec]<?php
$tablica=file("news.txt");
$ile=count($tablica);
$_GET['id'] = $_GET['id'] -1;

$czesc=explode("|*|/*|", $tablica[$_GET['id']]);

echo "<form method=post action=zamiana.php?nr=$id>
Nick ".$czesc[1]."<input type=hidden value=".$czesc[1]." name=nick><br>
Emblemat <input type='text' name='emb' value='".$czesc[2]."'><br>
Temat <input type=text name=temat value=".$czesc[3]."><br>
Data <input type=text name=data value=".$czesc[4]."><br>
Treść <textarea name=tresc cols=25 rows=10>".$czesc[5]."</textarea><br>
<input type=submit value=Ok>";

?>[/php:1:703b7f09ec]

plik zamiana.php:
[php:1:703b7f09ec]<?php

$plik = "news.txt";
$tablica=file($plik);
$ile=count($tablica);
$nr=$_POST['edit'];
unset($tablica[$nr]);
for($i=0; $i<=$nr-1; $i++){
$tab[]=$tablica[$i];
}
$tab[]=$nr."|*|/*|".$nick."|*|/*|".$emb."|*|/*|".$temat."|*|/*|".$data."|*|/*|".$tresc."n";
for($i=$nr+1; $i<=$ile-1; $i++){
$tab[]=$tablica[$i];
}
$fp=fopen($plik, "w");
flock($fp, 2);
fwrite($fp, str_replace("r", '', implode('', $tab)));
flock($fp, 3);
fclose($fp);

?>[/php:1:703b7f09ec]
nie wiem wg mnie wszyscho dobrze zrobiłem ale on zamienia mi tą linię ale wstawia ją na początku ;/
Go to the top of the page
+Quote Post
dob
post
Post #9





Grupa: Zarejestrowani
Postów: 166
Pomógł: 0
Dołączył: 30.01.2003
Skąd: Warszawa

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


[php:1:74ad4907da]<?php
$plik = "news.txt";
$tablica=file($plik);
$ile=count($tablica);
$nr=$_GET['id'];
unset($tablica[$nr]);
for($i=0; $i<=$nr-1; $i++){
$tab[]=$tablica[$i];
}
$tab[]=$_POST['nr']."|*|/*|".$_POST['nick']."|*|/*|".$_POST['emb']."|*|/*|".$_POST['temat']."|*|/*|".$data."|*|/*|"
.$tresc."n";
for($i=$nr+1; $i<=$ile-1; $i++){
$tab[]=$tablica[$i];
}
$fp=fopen($plik, "w");
flock($fp, 2);
fwrite($fp, str_replace("r", '', implode('', $tab)));
flock($fp, 3);
fclose($fp);
?>[/php:1:74ad4907da]

Jakl to nei będzie działało to napisz do mnie na priva to ci napisze przykład cały
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 10:31