Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
DB via Formular ändern [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
DB via Formular ändern


 
718
22-10-2007, 10:27 
 
Hallo an die Runde! Erster Eintrag hier!:)

Leider stehe ich nun nach einigen langen Nächten an.
Ich habe ein News-Script gebastelt in dem man einen Titel, das Datum und einen Newstext via Formular einfügen kann. Nun hab ich es auch geschafft diese wieder in einem Formular auszulesen..

edit.php = Anzeige der DB mit einem ändern Link
aendern.php = Anzeige der ausgewählten News als Formular
update.php = Ändern der Daten

edit.php

$abfrage = "SELECT * FROM test ORDER BY id DESC";
$ergebnis = @mysql_query( $abfrage ) or die( "Fehler: " . mysql_error() );
while ( $row = mysql_fetch_assoc( $ergebnis ) )
{
echo "<a href=\"aendern.php?id=". $row['id'] ."\">". $row['h1'] ."</a><br>";
}


aendern.php

<?
$abfrage = "SELECT * FROM test WHERE id = '". mysql_escape_string( $_GET['id'] ) ."'";
$ergebnis = @mysql_query( $abfrage ) or die( "Fehler: " . mysql_error() );
$link = mysql_fetch_assoc( $ergebnis );
?>

<form action="update.php" method="post" name="form">
Titel:<br><input type="text" name="link1" value="<?= $link['h1'] ?>"><br>
Date:<br><input type="text" name="link2" value="<?= $link['date'] ?>"><br>
News:<br><input type="text" name="link3" value="<?= $link['news'] ?>"><br>
<button type="submit">update</button>
</form>


Und hier mein Problem in der update.php. Bis jetzt klappt alles. Nun weiss ich allerdings nicht wie ich die ID von aendern.php auf update.php übertragen kann. So wie es zurzeit unten steht geht es zwar, aber es werden alle Einträge geändert. Also alle News sind dann gleich! Da ich eben nicht weiss was ich als "WHERE ID" einfügen soll.

update.php

<?
$sql = "UPDATE test SET h1 = '$link1', date = '$link2', news = '$link3'";
mysql_query($sql);
?>


Leider, bin mit meinem Latein an Ende!
Vielen Dank für eure Antworten!:)

 
ministry
22-10-2007, 10:58 
 
Von edit.php zu ändern.php hast du die id per GET weitergegeben.

Genauso kannst du sie jetzt mit Hilfe eines hidden-inputs per POST von ändern.php zu update.php weitergeben.

 
718
22-10-2007, 11:06 
 
Original geschrieben von ministry
Von edit.php zu ändern.php hast du die id per GET weitergegeben.

Genauso kannst du sie jetzt mit Hilfe eines hidden-inputs per POST von ändern.php zu update.php weitergeben.
Hallo!

Danke dir. Ja an dem bastle ich gerade. Leider klappts nicht so richtig!

Könntest du mir vl. mit paar Code-Schnippsel den Anstoß geben!

Danke dir

 
TobiaZ
22-10-2007, 11:10 
 
Was davon kennst du nicht?

Ein <form method="post"> ???
Ein <input type="hidden"> ???

 
jahlives
22-10-2007, 11:12 
 
Könntest du mir vl. mit paar Code-Schnippsel den Anstoß geben!

Du gibst ja bereits einen GET Parameter von edit and ändern. Mach es genau so von ändern an update.
Btw: du bist dir schon bewusst, dass du bei deinem Update einfach alle Datensätze anpasst. Falls das nicht gewünscht ist solltest du in einem WHERE den Datensatz einschränken (z.B. anhand der ID).

Gruss

tobi

p.s. läuft dein Server mit register_globals on oder off? phpinfo() kann weiterhelfen.

 
718
22-10-2007, 11:25 
 
Original geschrieben von jahlives
Du gibst ja bereits einen GET Parameter von edit and ändern. Mach es genau so von ändern an update.
Btw: du bist dir schon bewusst, dass du bei deinem Update einfach alle Datensätze anpasst. Falls das nicht gewünscht ist solltest du in einem WHERE den Datensatz einschränken (z.B. anhand der ID).

Gruss

tobi

p.s. läuft dein Server mit register_globals on oder off? phpinfo() kann weiterhelfen.

Genau das will ich ja. Ich lasse mir alle News in der edit.php anzeigen, wähle dann eine aus die dann in der aendern.php ausgelesen wird. Und genau diese möchte ich dort bearbeiten und auch NUR diese mit den geänderten Daten überschreiben. Deswegen suche ich einen Weg die ID von aendern.php zu update.php zu übergeben. Leider klappt das bei mir zurzeit noch nicht...

BTW: Mit globals on!;)

 
ministry
22-10-2007, 11:31 
 
Dann mach register globals aus :)

Was klappt nicht?

Mach, wie schon gesagt, ein <input type="hidden" name="id" value="$_GET['id']"> ins Formular und schränke dann das UPDATE-SQL mit WHERE id = $_POST['id'] ein.

Das ist jetzt schon fast vorgekaut zu nennen ;)

 
TobiaZ
22-10-2007, 11:32 
 
Deswegen suche ich einen Weg die ID von aendern.php zu update.php zu übergeben. Leider klappt das bei mir zurzeit noch nicht... Bei ner so guten Problembeschreibung kann man natürlich nur weiter drauf pochen, Grunlagen zu lernen. Vielleicht schafft du es später, vernünftige Details zu liefern, so dass wir uns wieder einklinken.

BTW: Mit globals on!;) :rolleyes:

 
718
22-10-2007, 11:45 
 
Original geschrieben von ministry
Dann mach register globals aus :)

Was klappt nicht?

Mach, wie schon gesagt, ein <input type="hidden" name="id" value="$_GET['id']"> ins Formular und schränke dann das UPDATE-SQL mit WHERE id = $_POST['id'] ein.

Das ist jetzt schon fast vorgekaut zu nennen ;)

Vielen Dank für deine Hilfe!

Nun gehts! War leider mein Fehler! Hab anstatt value=<?= $_GET['id'] ?> nur value=" $_GET['id']"> geschrieben!

Ich danke für eure schnelle und tolle Hilfe! :)

@TobiaZ:
Schießt du dich auf jeden Newbie ein?

 
TobiaZ
22-10-2007, 13:41 
 
Ne.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:05 Uhr.