![]() |
![]() ![]() |
![]() |
![]()
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 |
|
|
![]()
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) |
|
|
![]()
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 ;] |
|
|
![]()
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 ? :?
|
|
|
![]()
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] |
|
|
![]()
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)
|
|
|
![]()
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
|
|
|
![]()
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 ;/ |
|
|
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 10:31 |