Witam
Wiem ze wątki podobne do tego mojego sa poruszane na forum ale przeszukując je nie znalazłem interesującego mnie w tej chwili tematu.
Nie jestem zbyt dobry z programowania akurat w php a potrzebuje zrobic na strone system newsow ktory umozliwi dodawanie oraz usuwanie wybranych przezemnie newsow.
System oparty na plikach tekstowych.
Mam napisane dodawanie do pliku tylko nio z tym usuwaniem mi nie wychodzi.
Bede wdzieczny za pomoc
news.php
[php:1:03a89972be]<?
$show_num=5;
$spacer="<hr size=1>";
$newsdata="newsdata.dat";
$table=file($newsdata);
$total=count($table);
if ($list=="all") {
$max=0;
}
else {
$max=$total-$show_num;
}
if ($max < 0) {
$max=0;
}
for ($i=$total; $i >= $max; $i--)
{
$table[$i]=trim($table[$i]);
if($table[$i]!="")
{
echo "$table[$i]$spacer<br>";
}
}
if ($list!="all") {
echo "<p align=right><a href=$news_page?list=all>Pokaż wszystkie ($total)</a></p>";
}
?> [/php:1:03a89972be]
admin.php
[php:1:03a89972be]<?
$show_num=5;
$spacer="<hr size=1>";
$encoding="ISO-8858-2";
$newsdata="newsdata.dat";
$menu="| <a href=admin.php?action=new&pass=$pass>Dodaj newsa</a> | <a
href=admin.php?action=delete&pass=$pass>Usuń newsa</a> | <br>";
if(!isset($action))
{
$action="drawmenu";
}
switch ($action) {
case "delete":
if($pass==$password)
{
echo "$menu<br>";
$table=file($newsdata);
$total=count($table);
$size=(int)((filesize("$newsdata")+1023)/1024);
if ($size==0) {
$total=0;
}
$table=file($newsdata);
$total=count($table);
$nr=1;
for ($i=$total; $i >= 0; $i--)
{
$table[$i]=trim($table[$i]);
if($table[$i]!="")
{
$text=str_replace("", "", $table[$i]);
echo "$nr. $text | <a href=admin.php?action=remove&id=$i&pass=$pass>usuń newsa</a> |
<br>$spacer";
$nr++;
}
}
}
else
{
print "Błąd";
}
break;
case "new":
if($pass==$password)
{
echo("$menu<br><p><b>Dodaj newsa</b></p><form method=POST action=admin.php?action=add>
News:<br><textarea rows=5 name=newsbody cols=25></textarea><br>
Autor:<br><input type=text name=author size=20><br>
E-mail:<br><input type=text name=email size=20><br>
<input type=submit value=Dodaj>
<input type=hidden name=pass value=$pass><br>
</form>");
}
else
{
print "Błąd";
}
break;
case "add":
if($pass==$password)
{
$date=date("d-m-Y");
if (eregi("8859-2", $encoding)) {
$newsbody=ereg_replace("Ą", "Ą", $newsbody);
$newsbody=ereg_replace("Ś", "Ś", $newsbody);
$newsbody=ereg_replace("Ź", "Ź", $newsbody);
$newsbody=ereg_replace("ź", "ź", $newsbody);
$newsbody=ereg_replace("ą", "ą", $newsbody);
$newsbody=ereg_replace("ś", "ś", $newsbody);
}
$newsbody=stripslashes($newsbody);
$newsbody=eregi_replace("n", "<br>", $newsbody);
$title=stripslashes($title);
$author=stripslashes($author);
$data="<br>$newsbody<br>$date<br><br><a href=mailto:$email>$author</a></p>n";
$f=fopen($newsdata, "a");
flock($f, "2");
fputs($f, $data);
flock($f, "3");
fclose($f);
echo "$menu<br><b>News został dodany</b>.";
}
else
{
print "Błąd";
}
break;
case "remove":
$table=file($newsdata);
$total=count($table);
$f=fopen($newsdata, "w");
flock($f, "2");
for ($i=0; $i <= $total; $i++)
{
if($i!=$id)
{
fputs($f, $table[$i]);
}
}
flock($f, "3");
fclose($f);
echo "$menu<br><b>Usunięto.</b>";
break;
case "drawmenu":
if($pass==$password)
{
echo "$menu<br>";
$table=file($newsdata);
$total=count($table);
$size=(int)((filesize("$newsdata")+1023)/1024);
if ($size==0) {
$total=0;
}
echo "<b>Liczba wpisów w bazie:</b> $total<br> <b>Rozmiar bazy: </b>$size KB<hr
size=1 noshade><br>";
}
else
{
Print "Błąd";
}
break;
}
?>[/php:1:03a89972be]
I tak jak juz pisalem dodawanie dziala bez problemu ale jest problemik z usuwaniem bo jak usuwa newsa o jakims indeksie to potem te rekordy ktore zostawil to je laczy i z nich tworzy oddzielny news
Przyklad:
Tworze 4 rekordy
Usuwam rekord 2
i potem mam tylko jeden wspolny rekord zlozony z 3 pozostalych rekordow
Z gory dziekuje za pomoc