Bearbeiten von MySQL Einträgen

Hallo hier scheint wohl noch jemand einen Terminkkalender für die Feuerwehr zu basteln.
Wollte soeben auch ein ähnliches Thema öffnen aber dann poste ich halt hier.


Also mache im Prinzip das gleiche:

formular.html zum Eintragen neuer Termine

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Unbenanntes Dokument</title>
</head>

<body>
<form name="form1" method="post" action="einfuegen.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="Submit" value="Senden">
</form>


</body>
</html>

einfuegen.php fügt den neuen Termin in die DB ein

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);

if(isset($_POST['Submit'])){ // wurde das Formular abgeschickt?


// 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

echo "Termin erfolgreich hinzugefügt!"; // Bla bla...

}

?>

ausgabe.php gibt die DB-Einträge aus und die Einträge können bearbeitet werden
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";

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

// der Anfang der Tabelle

echo"<form name='form2' method='post' action='edit.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='Submit' value='Bearbeiten'>";
echo"</form>";
?>

edit.php zum editiern des ausgewählten Datensatzes

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);

$datensatz = $_POST['auswahl'];


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

echo"<form name='form2' method='post' action='update.php'>";
echo "<input type='hidden' name='ID' value='$datensatz'>";
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='submit' value='Update'>";
echo"</form>";




?>

update.php zum aktualiesieren der DB

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);

// 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 = '".$_POST['ID']."' ";



$update = mysql_query($aendern);

if (!$update)
echo "Fehler aufgetreten!";
else
      {
        echo "Eintrag erfolgreich";
    } 
	

?>


Ist es wirklich nötig so viele Dateien zu benutzen um zu bearbeiten und updaten?
Aber eins vorweg, so klappt es zumindest schon mal.

mfg,Olli
 
Du kannst auch alles in eine Datei klatschen und dort dann mit URLParametern arbeiten.
zb. kalernder.php?action=edit

Und dann in der Datei selbst kannst du dann alles über $_GET laufen lassen.
PHP:
if($_GET['action']=="edit")
{
#Hier der Code um das Editformular und die EDITFunktionen auszugeben bzw zu verarbeiten
}

if($_GET['action']=="save")
{
#Hier der Code um alles zu speichern.
}

Und das sendest du dann alles einfach an PHP_SELF ;)

MFG
Sandro
 
Ok jetzt blick ichs gar nicht mehr...

Mit meinem Script schreibt er mir, sobald ich die Datenbank updaten will, dass ein Fehler aufgetreten ist.

Jetzt habe ich mein Script auf das von HTML umgeschrieben, schreibt er mir auch, dass ein Fehler aufgetreten ist.

Dh. bei beiden Scripts funktioniert das UPDATE nicht!

HILFE
 
Also mein update code funktioniert hundert Prozent. Teste das ganze local mit xampp.

Übergibst du auch die id korrekt und sprichst du auch die richtige Tabelle an?!

mfg,Olli
 
Also ich dachte eigentlich ich hätte alles passend auf meine Scripts umgeschrieben...

Ausgabe der Werte aus der Tabelle:
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)

?>

Dein Script zum neu Ausfüllen:
PHP:
<?php 
$dbhost = 'localhost'; 
$dbname = xxx; // Hier Datenbankname rein 
$dbuser = xxx; // Hier User... 
$dbpasswd = xxx; // und passwort... 

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

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

echo"<form name='form2' method='post' action='update.php'>"; 
echo "<input type='hidden' name='ID' value='$datensatz'>"; 
echo "Wochentag:<input type='text' name='Wochentag' value=".$rows['Wochentag']."><br>"; 
echo "Tag:<input type='text' name='Tag' value=".$rows['Tag']."><br>"; 
echo "Monat:<input type='text' name='Monat' value=".$rows['Monat']."><br>"; 
echo "Jahr:<input type='text' name='Jahr' value=".$rows['Jahr']."><br>"; 
echo "Stunde:<input type='text' name='Stunde' value=".$rows['Stunde']."><br>"; 
echo "Minute:<input type='text' name='Minute' value=".$rows['Minute']."><br>"; 
echo "Ereignis:<input type='text' name='Ereignis' value=".$rows['Ereignis']."><br>"; 
; 

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

?>

Und hier das Update selbst:
PHP:
<?php 
$dbhost = 'localhost'; 
$dbname = xxx; // Hier Datenbankname rein 
$dbuser = xxx; // Hier User... 
$dbpasswd = xxx; // und passwort... 

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


$aendern = " UPDATE TermineAktiveWehr SET 
    Wochentag = '".$_POST['Wochentag']."',
    Tag = '".$_POST['Tag']."', 
    Monat = '".$_POST['Monat']."', 
    Jahr = '".$_POST['Jahr']."',
    Stunde = '".$_POST['Stunde']."',
	Minute = '".$_POST['Minute']."',
	Ereignis = '".$_POST['Ereignis']."',
    
    WHERE ID = '".$_POST['id']."' "; 



$update = mysql_query($aendern); 

if (!$update) 
echo "Fehler aufgetreten!"; 
else 
      { 
        echo "Eintrag erfolgreich"; 
    }  
     

?>
 
Also versuche dir mal zu helfen, aber lerne selber gerade erst php.

ausgabe der Werte:

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=edit.php?id=".$ausgabe['id']." target=_self><img src=b_edit.png border=0></a><br><hr><br>");
 }

mysql_close ($dbverbindung)

?>


edit.php (muss so heißen)

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

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

$sql = "SELECT * FROM TermineAktiveWehr WHERE ID = '".$_GET['id']."'"; 
 $result = mysql_query($sql); 
 $rows = mysql_fetch_assoc($result); 

echo"<form name='form2' method='post' action='update.php'>"; 
echo "<input type='hidden' name='ID' value='$datensatz'>"; 
echo "Wochentag:<input type='text' name='Wochentag' value=".$rows['Wochentag']."><br>"; 
echo "Tag:<input type='text' name='Tag' value=".$rows['Tag']."><br>"; 
echo "Monat:<input type='text' name='Monat' value=".$rows['Monat']."><br>"; 
echo "Jahr:<input type='text' name='Jahr' value=".$rows['Jahr']."><br>"; 
echo "Stunde:<input type='text' name='Stunde' value=".$rows['Stunde']."><br>"; 
echo "Minute:<input type='text' name='Minute' value=".$rows['Minute']."><br>"; 
echo "Ereignis:<input type='text' name='Ereignis' value=".$rows['Ereignis']."><br>"; 
; 

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

?>

In der Ausgabe habe ich den Link zu edit.php gesetzt mit dem die id übergeben wird. Dann habe ich in edit.php Post als Get geschrieben.

Probiers so mal aus.
 
Das mit dem PHP_SELF kannst du als Variable nutzen um es an dich selbst zu schicken.
Wenn du alles in der kalender.php hast, kannst du entweder

PHP:
echo"<form name='form2' method='post' action='kalender.php'>";

oder

PHP:
echo"<form name='form2' method='post' action=.$_SERVER[PHP_SELF].>";

schreiben...
Das ist dann dynamischer.. aber es war eh nur ein Tipp und für die Funktion ist es uninteressant..

Lass dir mal bitte bevor du das Update machst die übergebenen Variablen ausgeben...
Dann weisst du mit was dein mysql_query arbeiten muss und siehst evtl einen Fehler..

MFG
 
Da kommt immernoch die Meldung "Fehler aufgetreten"

Ich verwende jetzt wieder meine alten Scripts, vielleicht kann mir da nochmal jemand weiterhelfen...
 
Hast du auch in der edit.php im hidden input-feld die variable $datensatz mit der id beschrieben?

Weil sonst weiß die update.php nicht welcher datensatz geändert werden soll!


Olli
 
Zurück