Hallo Leute,
ich habe mir da was zusammengebastelt aus div.Tutorials
Im Prinzip nur einen Datensatz anlegen der wird oben als Link angezeigt.
Wenn man auf den Link klickt wird dieser aufgerufen und dann kann ich an diesem was ändern und wieder speicher. Leider wird zwar die Änderung übernommen aber es wird zusätzlich noch ein Datensatz angelegt.
Kann mir da jekmad helfen den Fehler zu finden.
PS. bin nur ein blutiger Anfänger in Sachen PHP :-)
PHP-Code:<?php
mysql_connect("localhost", "root", "root");
mysql_select_db("test");
// Prüfen, ob eine bestimmte Adress-ID gelesen werden soll
if ($_GET['id'] > 0)
{
$sql = "select * from adressen where id = '" . $_GET['id'] . "'";
// echo "sql: $sql<br>";
$result = mysql_query($sql);
echo mysql_error();
$items = mysql_fetch_array($result);
// die gefundenen Werte in das POST-Array eintragen
foreach ($items as $key => $value)
{
$_POST[$key] = $value;
}
}
if ( isset($_POST['save']) )
{
// Neue Adresse anlegen
$sql = "insert into adressen (id, name, anschrift, plz, ort, mail)
VALUES
(0,
'" . $_POST['name'] . "',
'" . $_POST['anschrift'] . "',
'" . $_POST['plz'] . "',
'" . $_POST['ort'] . "',
'" . $_POST['mail'] . "' )";
// echo "sql: $sql<br>";
$result = mysql_query($sql);
echo mysql_error();
}
if ( isset($_POST['update']) )
{
// Adresse ändern
$sql = "update adressen set
name = '" . $_POST['name'] . "',
anschrift = '" . $_POST['anschrift'] . "',
plz = '" . $_POST['plz'] . "',
ort = '" . $_POST['ort'] . "'
where id = '". $_POST['id'] . "'";
// echo "sql: $sql<br>";
$result = mysql_query($sql);
echo mysql_error();
}
// alle adressen auslesen
$sql = "select id, name, ort from adressen";
$result = mysql_query($sql);
echo mysql_error();
// die Adressen zur Bearbeitung als Link anzeigen
while ($items = mysql_fetch_array($result))
{
echo '<a href="' . $_SERVER['PHP_SELF'] .
'?id=' . $items['id'] . '">' .
$items['name'] . ' ' . $items['ort'] .
'</a> | ';
}
echo "<hr>";
// Formular anzeigen
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" name="id" value="<?php echo $_GET['id'] ?>">
Adressen-ID: <?php echo $_POST['id'] ?><br />
Name: <br /><input type="text"
name="name"
value="<?php echo $_POST['name'] ?>"><br />
Anschrift: <br /><input type="text"
name="anschrift"
value="<?php echo $_POST['anschrift'] ?>"><br />
PLZ: <br /><input type="text"
name="plz"
value="<?php echo $_POST['plz'] ?>"><br />
Ort: <br /><input type="text"
name="ort"
value="<?php echo $_POST['ort'] ?>"><br />
mail: <br /><input type="text"
name="mail"
value="<?php echo $_POST['mail'] ?>"><br />
Suchen: <br /><input type="text"
name="suchen"
value=""><br />
<input type="submit" name="save" value="speichern">
<a href="mailto:<? echo $_POST['mail'];?>?subject=test&body=<? echo $_POST['name'];?>" >eMail Versand</a>
<a href="lesen.php">all Datens‰tze zeigen</a>
</form>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="submit" name="update" value="update">
</form>
Geändert von homermg (14.06.2009 um 15:35 Uhr)
Gruss Guin
Mein Blog
was meinst du mit gesetzt?
isset($_POST['save']) === true
Gruss Guin
Mein Blog
super vielen Dank,
kannst du mir bitte sagen wo ich das einsetzen soll, an welche Stelle?
if ( isset($_POST['save']) && /* Hier selber nachdenken */ )
Prüf doch erst mal mit einer Ausgabe, was da herauskommt. Bisher ist alles nur gerate, da du nicht alles gepostet hast. Wenn das doch alles ist, dann uebrlege dir noch mal, ob das mit den Formularen so passt.
Gruss Guin
Mein Blog
Was bruachst du noch? Ich habe nur dieses oder was meisnt du?
Am liebsten waere mir ein vollstaendiges Skript, aber wenn du sagst, dass das alles ist, dann schaue dir mal deine beiden Formulare an...
Formular 1
Formular 2PHP-Code:<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" name="id" value="<?php echo $_GET['id'] ?>">
Adressen-ID: <?php echo $_POST['id'] ?><br />
/* gekuerzt, der Uebersicht wegen */
<input type="submit" name="save" value="speichern">
</form>
Nun schlaf mal eine Nacht drueber und versuche es Morgen noch mal.PHP-Code:<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="submit" name="update" value="update">
</form>![]()
Gruss Guin
Mein Blog
super DANKE!!!!!
habe nun mit deiner Hilfe den Fehler gefunden!
jetzt habe ich nur das nächste Problem. Wie kann ich das anzeigen von zwei Formularen unterbinden?
Sprich alles über ein Formular zu machen neue anlegen, speichern und updaten.
PHP-Code:// Formular anzeigen
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" name="id" value="<?php echo $_GET['id'] ?>">
Adressen-ID: <?php echo $_POST['id'] ?><br />
Name: <br /><input type="text"
name="name"
value="<?php echo $_POST['name'] ?>"><br />
Anschrift: <br /><input type="text"
name="anschrift"
value="<?php echo $_POST['anschrift'] ?>"><br />
PLZ: <br /><input type="text"
name="plz"
value="<?php echo $_POST['plz'] ?>"><br />
Ort: <br /><input type="text"
name="ort"
value="<?php echo $_POST['ort'] ?>"><br />
mail: <br /><input type="text"
name="mail"
value="<?php echo $_POST['mail'] ?>"><br />
Suchen: <br /><input type="text"
name="suchen"
value=""><br />
<input type="submit" name="save" value="speichern">
<a href="mailto:<? echo $_POST['mail'];?>?subject=test&body=<? echo $_POST['name'];?>" >eMail Versand</a>
<a href="lesen.php">all Datens‰tze zeigen</a>
</form>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" name="id" value="<?php echo $_GET['id'] ?>">
Adressen-ID: <?php echo $_POST['id'] ?><br />
Name: <br /><input type="text"
name="name"
value="<?php echo $_POST['name'] ?>"><br />
Anschrift: <br /><input type="text"
name="anschrift"
value="<?php echo $_POST['anschrift'] ?>"><br />
PLZ: <br /><input type="text"
name="plz"
value="<?php echo $_POST['plz'] ?>"><br />
Ort: <br /><input type="text"
name="ort"
value="<?php echo $_POST['ort'] ?>"><br />
mail: <br /><input type="text"
name="mail"
value="<?php echo $_POST['mail'] ?>"><br />
Suchen: <br /><input type="text"
name="suchen"
value=""><br />
<input type="submit" name="update" value="update">
Beispielsweise so
if (Bedingung){
zeige Formular 1
}else {
zeige Formular 2
}
Gruss Guin
Mein Blog
Gibt es da nicht einen anderen Weg? Ich habe nu bedenken wenn die Sache großer wird dann muss ich jedes Formular separate gestalten
Wenn beide Formulare gleich sind, reicht es ja auch aus, wenn du nur den Absendenbutton aenderst.
if (Bedingung){
<input type="submit" name="save" value="speichern">
}else {
<input type="submit" name="update" value="update">
}
Gruss Guin
Mein Blog
Hmm, wie mache ich das jetzt, die Bedinung ist ja der Absendebutton, bin jetzt glaube ich etwas durcheinander gekommen.
Nein.die Bedinung ist ja der Absendebutton
Die Bedingung ist das, was du sehen willst. Du musst dir ja schon mal Gedanken gemacht haben, wann was angezeigt werden soll.
Gruss Guin
Mein Blog
bei mir werden ja oben alle Datensätze angezeigt:
das heißt eigentlich ist doch die Bedingung wenn jamand auf den Hyperlink klinkt.PHP-Code:// die Adressen zur Bearbeitung als Link anzeigen
while ($items = mysql_fetch_array($result))
{
echo '<a href="' . $_SERVER['PHP_SELF'] .
'?id=' . $items['id'] . '">' .
$items['name'] . ' ' . $items['ort'] .
'</a> | ';
}
echo "<hr>";
nur wie formuliere ich das?
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)