• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Datenbank Problem

Status
Für weitere Antworten geschlossen.

shade

Neues Mitglied
Morgchen.
Also mein Problem ist folgendes, ich ziehe Daten aus einer Datenbank und zeige generiere dann eine Tabelle. Hier soll man nun die Möglichkeit haben, Datensätze einzeln zu löschen oder zu bearbeiten. Oder einen neuen eintragen. Das anzeigen klappt Perfekt, das löschen auch. Nur beim erstellen und bearbeiten klappts nicht. Ich bin jetzt auch mit meinem Latein am ende. Wäre nett wenn einer von euch mir helfen könnte.

*thx*

Code fürs bearbeiten:
PHP:
<!-db_update.php->
<html>
<body>
<?PHP include("db_connect.php");
$id = $_GET[id];
if ($button==" OK ") {
 $sql = "UPDATE Fehlerprotokoll SET id='$id', melder='$melder', prio='$prio', beschreibung='$beschreibung', status='$status' WHERE id='$id';";
 mysql_query($sql);
 mysql_close();
 ?>
 Die Daten wurden eingetragen<br>
 <a href="db_show.php">zur Übersicht</a>
<? } else {
 $query = "SELECT * FROM Fehlerprotokoll WHERE ID='$id'";
 $result = mysql_query($query);
 $line = mysql_fetch_array($result)
 ?>
 <form method="post" action="db_update.php?id=<?PHP echo $id; ?>">
 <input type="text" name="id" value="<?PHP echo $line[ID]; ?>"><br>
 <input type="text" name="melder" value="<?PHP echo $line[Melder]; ?>"><br>
 <input type="text" name="prio" value="<?PHP echo $line[Prio]; ?>"><br>
 <input type="text" name="beschreibung" value="<?PHP echo $line[Beschreibung]; ?>"><br>
 <input type="text" name="status" value="<?PHP echo $line[Status]; ?>"><br>
 <input type="submit" name="button" value=" OK ">
 </form>
<? } ?>
</body>
</html>

Code fürs erstellen:
PHP:
<!-db_insert.php->
<html>
<body>
<?PHP
if ($button==" OK ") {
 include("db_connect.php");
 $sql = "INSERT INTO Fehlerprotokoll(ID,Melder,Prio,Beschreibung,Status,Unternehmen,Meldezeitpunkt) VALUES('','$melder','$prio','$beschreibung','$status','','',);";
 mysql_query($sql);
 mysql_close();
 ?>
 Die Daten wurden eingetragen<br>
 <a href="db_insert.php">neuer Eintrag</a><br>
 <a href="db_show.php">zur Übersicht</a>
 <?PHP
} else { ?>
 <form method="post" action="db_insert.php">
 <input type="text" name="melder" value="Melder"><br>
 <input type="text" name="prio" value="Prio"><br>
 <input type="text" name="beschreibung" value="Beschreibung"><br>
 <input type="text" name="status" value="Status"><br>
 <input type="submit" name="button" value=" OK ">
 </form>
 <?PHP
} ?>
</body>
</html>

Struktur der Datenbank sieht so aus:
Name Fehlerprotokoll
ID|Melder|Prio|Beschreibung|Status|Unternehmen|Meldezeitpunkt
 
Moin,

Du benutzt in Deinem Script nicht gesetzte Variablen. Was Du benutzt sind die Indizes aus dem assoziativen Arrey $_GET. Ich würde es so machen.
PHP:
if (isset($_GET['button'])) {
   $id=$_GET['id'];
   $melder = $_GET['melder'];
   $prio = $_GET['prio'];
   // andere  Variablen füllen
   $sql = "INSERT INTO `Fehlerprotokoll` (`Melder`, `Prio`) VALUES ('', '".$melder."', '".$prio."');";
// sql ausführen 
}
Wie Du siehst habe ich nciht alle Felder gefüllt, das überlasse ich dann Dir. Dasselbe geht dann bei dem Update genauso.

Gruß thuemmy
 
Du hast auf jeden Fall in der Spaltenliste die Id vergessen und bei den Werten hast Du einen leeren Wert ('') stehen.

Gruß thuemmy
 
Jep deswegen war es auch, jetzt funktioniert es auch. Ich kann neue Einträge anlegen. Was mir jetzt nur noch Probleme bereitet, ist das bearbeiten. Hab mir den SQL String anzeigen lassen, aber er bleibt leer!?
 
Wie, der bleibt leer? So müsste es bei Dir aussehen:
PHP:
$sql = "UPDATE `Fehlerprotokoll` SET `Melder` = '".$melder."', `Prio` = '".$prio."' WHERE `Id` = ".$id.";";
Gruß thuemmy
 
Ja genau den gleichen String hab ich. Hab das Problem aber gefunden, ich hab vergessen den Code zu verändern
PHP:
if (isset($_GET['button']))

Was bewirkt das denn eigentlich!?
 
Die Funktion isset() prüft ob die Variable gesetzt ist. Dies ist in diesem Fall dann gegeben, wenn die submit-Schaltfläche betätigt wurde.

Gruß thuemmy
 
Glaub hab irgendwie was falsch gemacht, jetzt kann ich keine Datensätze mehr bearbeiten!? Aber warum!?

SQL String sieht so aus:
UPDATE 'dwnlds' SET 'Datei'='Dateikjkj', 'Beschreibung'='Beschreibung', 'Link'='Link' WHERE 'Id'='6';

Programmcode so:
PHP:
<!-db_update.php->
<html>
<body>
<?PHP include("../../scrpt/db_connect.php");
$id=$_GET['id'];
$datei=$_GET['datei'];
$unternehmen=$_GET['unternehmen'];
$beschreibung=$_GET['beschreibung'];
$link=$_GET['link'];
if (isset($_GET['button'])) {
 $sql = "UPDATE 'dwnlds' SET 'Datei'='".$datei."', 'Beschreibung'='".$beschreibung."', 'Link'='".$link."' WHERE 'Id'='".$id."';";
 mysql_query($sql);
 mysql_close();
 ?>
 Die Daten wurden eingetragen <?PHP echo($sql);?><br><br>
 <a href="../../usrmgt/admin_dwnlds_show.php">zur Übersicht</a>
<? } else {
 $query = "SELECT * FROM dwnlds WHERE Id='$id';";
 $result = mysql_query($query);
 $line = mysql_fetch_array($result)
 ?>
 <?PHP echo $result;?>
 <form method="get" action="dwnlds_update.php?id=<?PHP echo $id;?>">
 <input type="text" name="id" value="<?PHP echo $line[Id]; ?>"><br>
 <input type="text" name="datei" value="<?PHP echo $line[Datei]; ?>"><br>
 <input type="text" name="beschreibung" value="<?PHP echo $line[Beschreibung]; ?>"><br>
 <input type="text" name="link" value="<?PHP echo $line[Link]; ?>"><br>
 <input type="text" name="unternehmen" value="<?PHP echo $line[Unternehmen]; ?>"><br>
 <input type="submit" name="button" value=" OK ">
 </form>
<? } ?>
</body>
</html>
 
Code:
$sql = "UPDATE dwnlds SET Datei='".$datei."', Beschreibung='".$beschreibung."', Link='".$link."' WHERE Id='".$id."';";

Mach mal die ganzen Hochkommas weg..
 
Hä, jetzt gehts. Aber warum!? Ich hab auf mehreren Seiten gelesen, wenn man Update benutzt, soll man alles in Hochkommas setzen. Naja muss man nicht verstehen. Trotzdem danke nochma...
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben