Bearbeiten von MySQL Einträgen

Überall wo

HTML:
einfuegen.php

steht, fügst du

HTML:
funktions.php?action=add

ein.

Überall wo

HTML:
update.php

steht, fügst du

HTML:
funktions.php?action=update

ein.

Überall wo

HTML:
ausgabe.php

steht, fügst du

HTML:
funktions.php?action=show

ein.

Und überall wo

HTML:
edit.php

steht, fügst du

HTML:
funktions.php?action=edit

ein.


Dann funktioniert dein Script wieder...
 
Super das du das hier echt für blöde erklärst.

Aber ich glaube wir reden etwas aneinander vorbei.


Also ich möchte gerne eine Seite, auf der mir alle Datensätze (Termine) aufgelistet werden. Hinter jedem Termin befindet sich ein Radio-Button mit dem der jeweilige Datensatz ausgewählt wird. Im Grunde genommen erfüllt das meine ausgabe.php.

Nun hätte ich gerne 3 Buttons auf der Seite:

1. ausgewählten Eintrag löschen
2. neuen Eintrag hinzufügen
3. ausgewählten Eintrag bearbeiten

Im Prinzip habe ich ja alle Funktionen schon programmiert, weiß nur nicht wie ich das mit den 3 Buttons auf einer Seite zusammen realisieren soll.


PHP:
echo"<form name='form2' method='post' action='functions.php?action=xxx'>";
echo"<table>";

while($row=mysql_fetch_array($result)){



// die Ausgabe:
echo"<tr><td>".$row['datum']." ".$row['uhrzeit']." Uhr: ".$row['stichwort']." <br> ".nl2br($row['beschreibung'])."<input type='radio' name='auswahl' value=".$row['ID']."><br><br><td></tr>";

}

//das Ende der Tabelle
echo"</table>";
echo"<input type='submit' name='Submit1' value='Neu'>";
echo"<input type='submit' name='Submit2' value='Bearbeiten'>";
echo"<input type='submit' name='Submit3' value='Löschen'>";
echo"</form>";


Nun wie kann ich xxx jeweils mit den 3 SubmitButtons anders belegen?

mfg,Olli
 
Zuletzt bearbeitet:
Ich erkläre es deswegen so idiotensicher, da ich nicht weiss wieweit du und andere die den Thread lesen sich mit PHP auskennen...

PHP:
echo"<input type='submit' name='neu' value='Neu'>";
echo"<input type='submit' name='edit' value='Bearbeiten'>";
echo"<input type='submit' name='delete' value='Löschen'>";
Wenn du es über Buttons realisieren willst, kannst du anstatt der $_GET Variante $_Post nutzen... wenn du dann in deinem Funktionsscript die $_Post-Daten annimmst, hast du in dem Array $_Post:

Array ( [auswahl] => 1 [neu] => Neu )

Wenn du das jetzt anstatt der $_GET Variablen nimmst, hast du alle Daten die du brauchst in dem Script welches dafür zuständig ist... dann brauchst du keine URLParameter..
PHP:
if(isset($_POST['neu']))
{
echo $_POST['auswahl'];
}

if(isset($_POST['edit']))
{
echo $_POST['auswahl'];
}

if(isset($_POST['delete']))
{
echo $_POST['auswahl'];
}
 
Zuletzt bearbeitet:
Hallo habe das ganze jetzt folgender Maßen gelöst:

Habe meine ausgabe.php mit 3 Buttons "Löschen", "Bearbeiten" und "Neu". Über einen Radio-Button hinter den aufgelisteten Einträgen lässt sich der jeweilige Eintrag markieren und die dazugehörige ID wird mitgesendet. Alle Funktionen zum löschen, updaten, einfügen etc. befinden sich in der funktionen.php.

ausgabe.php

PHP:
<?php
$dbhost = 'localhost';
$dbname = 'termine'; // Hier Datenbankname rein
$dbuser = 'root'; // Hier User...
$dbpasswd = ''; // und passwort...

//Verbindungsaufbau
$connection = @mysql_connect($dbhost, $dbuser, $dbpasswd);
@mysql_select_db($dbname, $connection);


// Timestamp ein Tag später:
$loesch_stamp=time() - (86400);

// DB-Eintrag älter 1 Tag löschen

$delete = "DELETE FROM termine WHERE datum_stamp <'$loesch_stamp'";
mysql_query($delete) or die(mysql_error()); 


//Das wichtige SQL-Statement:
$sql="SELECT * FROM termine ORDER BY datum_stamp ASC, uhrzeit ASC";

$result=mysql_query($sql) or die(mysql_error()); // Query senden und Fehler abfangen

// der Anfang der Tabelle

echo"<form name='form2' method='post' action='funktionen.php'>";
echo"<table>";

while($row=mysql_fetch_array($result)){



// die Ausgabe:
echo"<tr><td>".$row['datum']." ".$row['uhrzeit']." Uhr: ".$row['stichwort']." <br> ".nl2br($row['beschreibung'])."<input type='radio' name='auswahl' value=".$row['ID']."><br><br><td></tr>";

}

//das Ende der Tabelle
echo"</table>";
echo"<input type='submit' name='Neu' value='Neu'>";
echo"<input type='submit' name='Bearbeiten' value='Bearbeiten'>";
echo"<input type='submit' name='Loeschen' value='Löschen'>";
echo"</form>";
?>


funktionen.php

PHP:
<?php
$dbhost = 'localhost';
$dbname = 'termine'; // Hier Datenbankname rein
$dbuser = 'root'; // Hier User...
$dbpasswd = ''; // und passwort...

$connection = @mysql_connect($dbhost, $dbuser, $dbpasswd);
@mysql_select_db($dbname, $connection);




//Abfrage welcher Button gedrückt wurde
if (isset($_POST['Neu']))
{

echo <<<EOT

<form name="form1" method="post" action="funktionen.php">
Datum(TT.MM.JJJJ):<br>

<input type="text" name="datum">
<br>
Uhrzeit:<br>
<input type="text" name="uhrzeit"><br>
Stichwort:
<br>
<input type="text" name="stichwort">
<br>
Kurzbeschreibung:<br>
<textarea name="beschreibung"></textarea><br>

<input type="submit" name="Eintragen" value="Eintragen">
</form>
EOT;

}





if (isset($_POST['Eintragen']))
{
// Datum in einzelne Variablen speichern:
$array=explode(".",$_POST['datum']);
$tag=$array[0];
$monat=$array[1];
$jahr=$array[2];

//Datum ins Timestamp-Format umwandeln:
$datum_stamp=mktime(0,0,0,$monat,$tag,$jahr);

//Das wichtige SQL-Statement:
$sql="INSERT INTO termine SET
datum='".$_POST['datum']."',
datum_stamp=$datum_stamp,
uhrzeit='".$_POST['uhrzeit']."',
stichwort='".$_POST['stichwort']."',
beschreibung='".$_POST['beschreibung']."'";

mysql_query($sql) or die(mysql_error()); // Query senden und Fehler abfangen

header("Location:http://localhost/php/termine/ausgabe.php"); // Bla bla...

}











if (isset($_POST['Loeschen']))
{
$delete = "DELETE FROM termine WHERE ID='".$_POST['auswahl']."'";
mysql_query($delete) or die(mysql_error()); 

header("Location:http://localhost/php/termine/ausgabe.php");

}






if (isset($_POST['Bearbeiten']))
{

$sql = "SELECT * FROM termine
        WHERE ID = '".$_POST['auswahl']."'";
$result = mysql_query($sql);
$rows = mysql_fetch_assoc($result);


echo"<form name='form2' method='post' action='funktionen.php?id=".$_POST['auswahl']."'>";
echo "Datum:<input type='text' name='datum' value=".$rows['datum']."><br>";
echo "Uhrzeit:<input type='text' name='uhrzeit' value=".$rows['uhrzeit']."><br>";
echo "Stichwort:<input type='text' name='stichwort' value=".$rows['stichwort']."><br>";
echo "Beschreibung:<textarea name='beschreibung'>".$rows['beschreibung']."</textarea>";

echo"<input type='submit' name='Update' value='Update'>";
echo"</form>";
}





if (isset($_POST['Update']))
{


// Datum in einzelne Variablen speichern:
$array=explode(".",$_POST['datum']);
$tag=$array[0];
$monat=$array[1];
$jahr=$array[2];


//Datum ins Timestamp-Format umwandeln:
$datum_stamp=mktime(0,0,0,$monat,$tag,$jahr);

$aendern = " UPDATE termine SET
    
	datum = '".$_POST['datum']."',
	datum_stamp = $datum_stamp,
	uhrzeit = '".$_POST['uhrzeit']."',
	stichwort = '".$_POST['stichwort']."',
    beschreibung = '".$_POST['beschreibung']."'
 
WHERE ID = '".$_GET['id']."' ";

$update = mysql_query($aendern);

if (!$update)
echo "Fehler aufgetreten!";

else
      {
       header("Location:http://localhost/php/termine/ausgabe.php");
    } 
	
}


?>


Vielleicht kann der ein oder andere es ja gebrauchen. Klappt auch hundertprozent.
Aber vielleicht hat der ein oder andere evt. auch noch einen Verbesserungsvorschlag?!

mfg,Olli
 
Kann sich bitte nochmal kurz jemand meinen Code anschauen? Ich komme wirklich keinen Schritt weiter...

Anzeige der SQL-Einträge:
PHP:
<?php

$host = "localhost";
$user = "xxx";
$password = "xxx";
$dbname = "xxx";
$tabelle ="xxx";

$dbverbindung = mysql_connect ($host, $user, $password);

$dbanfrage = "SELECT * FROM $tabelle ORDER BY Jahr, Monat, Tag";
$result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);

 while ($ausgabe = mysql_fetch_array ($result))
 {

 print ("$ausgabe[Wochentag], $ausgabe[Tag].$ausgabe[Monat].$ausgabe[Jahr]<br>$ausgabe[Stunde]:$ausgabe[Minute] Uhr - $ausgabe[Ereignis]&nbsp;&nbsp;&nbsp;<a href=termineaktivewehr.php?id=".$ausgabe['id']." target=_self><img src=b_edit.png border=0></a><br><hr><br>");
 }

mysql_close ($dbverbindung)

?>


Update der SQL-Einträge:
PHP:
<?php

$host = "localhost";
$user = "xxx";
$password = "xxx";
$dbname = "xxx";
$tabelle ="xxx";

$dbverbindung = mysql_connect ($host, $user, $password);



$dbanfrage = "UPDATE ".$tabelle." SET '".$Array["Wochentag"]."', '".$Array["Tag"]."', '".$Array["Monat"]."', '".$Array["Jahr"]."', '".$Array["Stunde"]."', '".$Array["Minute"]."', '".$Array["Ereignis"]."' WHERE ID = '".$ausgabe["id"]."'";



if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
print ("Datenbankeintrag erfolgreich.");
} else {
print ("Es traten Probleme auf." . mysql_error() );
}
mysql_close ($dbverbindung);

?>

Das ist der Fehlercode, der mir ausgegeben wird, wenn ich das Update machen will:
PHP:
Es traten Probleme auf.You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Montag', '01', '01', '2007', '00', '00', '' WHERE ID = ''' at line 1

Ich denke, dass der Fehler irgendwo an dem " .$ausgabe[id]. " liegt...

Bin mir aber nicht wirklich sicher. Weiss jemand Rat?
 
Dadurch, dass es 5 Einträge in der SQL-Tabelle sind, die nie mehr oder weniger werden sollen, sondern immer nur editiert werden sollen, muss die ID des jeweiligen Eintrags überprüft werden...

Wie muss der Code richtig lauten?
 
Hast du den Spaltennamen auch richtig verwendet. Du greifst ja mit $ausgabe['id'] auf die Spalte zu. Ist es möglich das du in der DB "ID" stehen hast. Ich glaube eine Verwechslung von groß und klein kann schon einen Fehler auslösen.

Und muss es in der update.php nicht so lauten: WHERE ID = '".$ausgabe['id']."'

mfg,Olli
 
Zuletzt bearbeitet:
Zurück