Editieren von Einträgen

ja np hier der code wenn dun fragen hast wie ich das gemacht habe etc dann frag ruhig mfg nucle

edit.php // daten in textfeldern auslesen und dann äkann man sie ändern


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

$log = "../db/eintraege.txt";
$array = file($log);
$eintrag = explode("|-|",$array[$eintragnr]);




<table width="993" border="0" cellpadding="0" cellspacing="0">
<!--DWLayoutDefaultTable-->
<input type="text" name="text" value ="<? print $eintragnr?>">
<tr>
<td width="993" height="481" valign="top"><form name="form1" method="post" action="<? echo"admin_edit2.php?nr=$eintragnr"; ?>">
</p>
<p> Homepage:
<input name="text1" type="text" id="text1" value="<? print $eintrag[1]?>">
</p>
<p> Email :
<input name="text2" type="text" id="text2" value="<? print $eintrag[2]?>">
</p><p>
<input type="submit" name="submit" value="Ok">


<input type="reset" name="Submit2" >
</p>
<p>&nbsp; </p>
</form></td>
</tr>
</table>
</body>
</html>





PHP:
edit2.php
echo "$nr";
$log = "../db/eintraege.txt";

echo"<br>$text7 <br> $text12<br>";
$zeile = 2;
$i = 2;
$log = "../db/eintraege.txt";
$array = file($log);
$anzahl = count($array);

$eintrag = explode("|-|",$array[$eintragnr]);
for ($i = 0;$i<$anzahl;$i++){

if ($nr == $i){
//echo "DEr Wert ist: $array[$i]";
$eintrag = explode("|-|",$array[$i]);

$newtext = $array;

//Ab hier wird der alte  Eintrag ersetzt 
$newtext[$i] = str_replace("$eintrag[1]","$text1",$newtext[$i]);//7Wert
$newtext[$i] = str_replace("$eintrag[2]","$text2",$newtext[$i]);//2Wert
//kommt darauf an wieviele infos zu einem beitrag dazugibst 0-soviele du halt hast


   echo "<br>$newtext<br>";
  $fp=fopen($log,"w+");
  fwrite($fp,implode("",$newtext));
  fclose($fp);
  print "Eintrag gespeichert!";
}
else
{
}
 
}
 
Zuletzt bearbeitet:
erstma danke :-)

ich sehe du stellt vor jedem eintrag eine id nummer. fügst du die beim eintragen ein? wenn ja wie zählst du di nummer hoch?
 
is recht einfach ich zähle zuesrt wieviele einträge vorhanedn sind und lass den link dann mit einer for schleife sooft wiederholen bis alle einträge eine id haben.


ung so :

for (x=0;x<$anzahl;$x++){
dann der link
echo "<a href="edit.php?$x">editieren</a>";

}

Wenn du nch mehr fragen hast frag mfg nucle
 
ahh ja ist ja einfach :)
nur das problem ist bei mir ich kann die variable $x dann nicht ansprechen. wenn ich z.b. echo $x mache bekomme ich keine ausgabe, obwohl es in der url ist. oder muss ich die variable irgendwie anders ansprechen?
 
PHP:
$inhalt = file("../db/eintraege.txt","r");//Daten in ein Array einlesen 
$anzahl = count($inhalt);//Anzahl der Daten lesen
echo "$anzahl";


  for($i = 0; $i < $anzahl; $i++){//wieviele einträge herausgelesen werden sollen
        
        $edit = "<a href=\"edit.php?eintragnr=$i\"><img src=\"admingrafixx/edit.gif\" border = \"0\" width=\"14\" title =\"Editieren\" height=\"14\"></a> ";
        $loeschen = "<a href=\"loeschen.php?eintragnr=$i\"><img src=\"admingrafixx/delete.gif\" border = \"0\" title =\"Loeschen\" width=\"14\" height=\"14\"></a>";
       }

Hoffe das hilft dir jetzt weiter
 
ja jetzt ist schon klarer geworden

hab jetzt nur noch ein problem mit dem eintragen und zwar ist dass hier der code zum eintragen

PHP:
$array = file("literatur.txt");
$anzahl = count($array);

$eintrag = explode("#",$array[$eintragnr]);
for ($i = 0;$i<$anzahl;$i++){

if ($nr == $i){
$eintrag = explode("#",$array[$i]);

$newtext = $array;

$newtext[$i] = str_replace("$eintrag[0]","$text1",$newtext[$i]);
$newtext[$i] = str_replace("$eintrag[1]","$text2",$newtext[$i]);
$newtext[$i] = str_replace("$eintrag[2]","$text3",$newtext[$i]);


  echo "<br>$newtext<br>";
  $fp=fopen("literatur.txt","w+");
  $neu=implode("",$newtext);
  fwrite($fp,"$neu");
  fclose($fp);
  print "Eintrag gespeichert!";
}
else
{
}
 
}

in der txt steht

lala#lala
lala#lala
lala#lala

wenn ich jetzt was in der ersten änder, schreibt er mir die 2 spalte an die erste dran. woran könnte das liegen?
 
gg das hab ich auch immer beim testen gehabt der grund liegt daran das man eine absatz machen muss

gg


also lautet dann die letzte zeile so :
PHP:
$newtext[$i] = str_replace("$eintrag[2]","$text3\r\n",$newtext[$i]);

klar ?
Wenn du noch mehr fragen hast dann schreib ruhig

Werde den ganzen code dann im tutorial posten - Thema Textfiles
 
Zuletzt bearbeitet:
schön klappt so weit
nur wie kann ich ihm sagen, dass er bei der letzten varibale einen absatz machen soll, wenn ich nicht immer lala#lala hab sondern auch mal lala#lala#lala#lalal
und wie leg ich die anzahl von
PHP:
$newtext[$i] = str_replace("$eintrag[0]","$text1",$newtext[$i]);
$newtext[$i] = str_replace("$eintrag[1]","$text2",$newtext[$i]);
$newtext[$i] = str_replace("$eintrag[2]","$text3",$newtext[$i]);
dynamisch fest

auf freudige Antwort hoffend :p
 
schon klar wie der befehl zum teilenumbruch ist.
die frage ist nur wie ich das machen wenn ich weniger als 3 variable hab dann kann ich nicht mehr

PHP:
$newtext[$i] = str_replace("$eintrag[2]","$text3\r\n",$newtext[$i]);

sondern müsste ja

PHP:
$newtext[$i] = str_replace("$eintrag[1]","$text2\r\n",$newtext[$i]);

und dann müsst ich ihm sagen, dass er beim 3 eintrag keinen umbruch macht, weil die varibale ja nicht vorhanden ist
 
Zurück