Hi, ich bastel grad ein kleines Adressbuch mit PHP in Verbindung mit SQL. Alles funktioniert soweit gut, nun bin ich aber dabei eine Funktion zum editieren von Datensätzen einzubauen, und genau hier schlägt der Fehlerteufel zu, warum funktioniert das ganze NUR beim Datensatz mit der id1, den kann ich editieren, alle anderen nicht.
hier der Inhalt der edit.php
dazu gibt es noch zusagen: edit.php wird nicht direkt aufgerufen, sondern von der index.php inkludiert:
der Witz ist nur, warum funktioniert das editieren wie gesagt beim 1. Datensatz nur bei allen anderen nicht? Mir ist es ein Rätsel...
hier der Inhalt der edit.php
PHP:
<?php
//check if POST data is available
//if yes -> insert it to the MySQL Database
if($_POST['lastname'] && $_POST['company'] && $_POST['email'])
{
/* Verbindung aufbauen, auswählen einer Datenbank */
$link = mysql_connect($sqlhost, $sqlusr, $sqlpwd)
or die("Keine Verbindung möglich: " . mysql_error());
//echo "DEBUG: Verbindung zum Datenbankserver erfolgreich<br />\n";
mysql_select_db($sqldb) or error("Auswahl der Datenbank fehlgeschlagen");
$sql= "UPDATE `$sqldb`.`$sqltbl` SET `name` = '".$_POST['name']."',
`lastname` = '".$_POST['lastname']."',
`phone` = '".$_POST['phone']."',
`mobile` = '".$_POST['mobile']."',
`email` = '".$_POST['email']."',
`company` = '".$_POST['company']."',
`position` = '".$_POST['position']."',
`comment` = '".$_POST['comment']."',
`fax` = '".$_POST['fax']."' WHERE `$sqltbl`.`id` = '".$_POST['id']."' LIMIT 1 ;";
$result = mysql_query($sql) OR error("Konnte den Datensatz nicht eintragen: " . mysql_error());
if($result)
{
error("Erfolgreich in der Datenbank editiert");
//error($sql);
}
//error($sql);
}
//check if GET data is available
//if yes -> insert it to the MySQL Database
if($_GET['id'])
{
/* Verbindung aufbauen, auswählen einer Datenbank */
$link = mysql_connect($sqlhost, $sqlusr, $sqlpwd)
or die("Keine Verbindung möglich: " . mysql_error());
//echo "DEBUG: Verbindung zum Datenbankserver erfolgreich<br />\n";
mysql_select_db($sqldb) or error("Auswahl der Datenbank fehlgeschlagen");
$sql= " SELECT * FROM `$sqldb`.`$sqltbl` WHERE `id` = ".$_GET['id']." LIMIT 1 ";
$result = mysql_query($sql) OR error("Konnte den Datensatz nicht auslesen: " . mysql_error());
if($result)
{
while($row = mysql_fetch_assoc($result))
{
?>
<form action="index.php?cmd=edit" method="post">
<input type="hidden" name="id" value="<?php echo $row['id']; ?>" />
<div id="createleft">
<fieldset>
<legend>Allgemein</legend>
<table>
<tr>
<td class="tblleft">Nachname <span class="req">*</span></td>
<td><input type="text" name="lastname" value="<?php echo $row['lastname']; ?>" maxlength="30" tabindex="5"/></td>
</tr>
<tr>
<td class="tblleft">Vorname</td>
<td><input type="text" name="name" value="<?php echo $row['name']; ?>" maxlength="30" tabindex="10"/></td>
</tr>
</table>
<div id="registered"><noscript>Please enable Javascript</noscript></div>
</fieldset>
<fieldset>
<legend>Geschäftliches</legend>
<table>
<tr>
<td class="tblleft">Firma <span class="req">*</span></td>
<td><input type="text" name="company" value="<?php echo $row['company']; ?>" maxlength="30" tabindex="15"/></td>
</tr>
<tr>
<td class="tblleft">Abteilung</td>
<td><input type="text" name="position" value="<?php echo $row['position']; ?>" maxlength="30" tabindex="20"/></td>
</tr>
</table>
</fieldset>
<span class="req" style="font: 10px verdana; margin: 10px;">* benötigte Felder</span>
<div style="text-align:center; margin-top: 15px;"><input type="submit" value="absenden" name="submit" style="width: 150px; height: 40px;" tabindex="99"/></div>
</div>
<div id="createright">
<fieldset><legend>Kontaktmöglichkeiten</legend>
<table>
<tr>
<td class="tblleft">E-Mail <span class="req">*</span></td>
<td><input type="text" name="email" value="<?php echo $row['email']; ?>" maxlength="30" tabindex="25"/></td>
</tr>
<tr>
<td class="tblleft">Telefon</td>
<td><input type="text" name="phone" value="<?php echo $row['phone']; ?>" maxlength="30" tabindex="30"/></td>
</tr>
<tr>
<td class="tblleft">Mobil</td>
<td><input type="text" name="mobile" value="<?php echo $row['mobile']; ?>" maxlength="30" tabindex="35"/></td>
</tr>
<tr>
<td class="tblleft">Fax</td>
<td><input type="text" name="fax" value="<?php echo $row['fax']; ?>" maxlength="30" tabindex="40"/></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend>Kommentar</legend>
<textarea name="comment" cols="40" rows="8" tabindex="50"><?php echo $row['comment']; ?></textarea>
</fieldset>
</div>
</form><?php } } } //else { error("Es wurden nicht alle benötigten Parameter übermittelt");}
?>
dazu gibt es noch zusagen: edit.php wird nicht direkt aufgerufen, sondern von der index.php inkludiert:
PHP:
<?php
//Überprüfen ob der CMD GET Wert exisitert, wenn ja includen, wenn nicht, Fehler ausgeben
if(isset($_GET['cmd']) && $_GET['cmd'] != "default")
{
if(file_exists($_GET['cmd'].".php"))
{
include($_GET['cmd'].".php");
} else
{
error("The Command you wanted to execute is not valid.");
}
} else
{
include("default.php");
}
if($_GET['cmd'] != "printview")
{
?>
der Witz ist nur, warum funktioniert das editieren wie gesagt beim 1. Datensatz nur bei allen anderen nicht? Mir ist es ein Rätsel...