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

Datenbanksätze updaten

Status
Für weitere Antworten geschlossen.

sveka

Mitglied
Hallo,

wie kann ich es realisieren, das ich Datensätze aus einer Datenbank ausgeben kann um mir dann einen ausszusuchen und zu bearbeiten?

Gehen wir davon aus ich habe eine tabelle mit den Attributen "vorname" & "name".
Nun möchte ich alle vorhanden Datensätze ausgeben und mir einen aussuchen um Ihn zu ändern. Wie mache ich das?
 
so
PHP:
<?php
//mysql-connection sollte schon da sein

$tbl = "tabelle"; //Name der Tabelle

if(!isset($_REQUEST['action']) && !$action = $_REQUEST['action'])
  $action = "list";
switch($action)
{
  case 'list':
    $query = mysql_query("SELECT * FROM `".$tbl."` ORDER BY `name` ASC")
        or die(mysql_error()."<br />".mysql_errno());
    while($row = mysql_fetch_assoc($query))
    {
      echo $row['vorname'].' '.$row['name']." \n";
      echo '<a href="'.$_SERVER["PHP_SELF"].'?action=edit&id='.$row["id"].'">'."\n";
      echo '<br>'."\n";
    }
  break;
  case 'edit':
    $id = mysql_real_escape_string($_GET['id']);
    $query = mysql_query("SELECT `name`,`vorname` FROM `".$tbl."` WHERE `id` = '$id'")
        or die(mysql_error()."<br />".mysql_errno());
    list($name,$vorname) = mysql_fetch_array($query);
    ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
    <input type="hidden" name="id" value="<?php echo $_GET['id']; ?>" />
    <input type="hidden" name="action" value="save" />
    Name: <input type="text" name="name" value="<?php echo $name; ?>" /><br>
    Vorname: <input type="text" name="vorname" value="<?php echo $vorname; ?>" /><br>
    <input type="submit" name="submit" value="ändern" />
    </form>
    <?php
  break;
  case "save":
    $id = mysql_real_escape_string($_POST['id']);
    $name = mysql_real_escape_string($_POST['name']);
    $vorname = mysql_real_escape_string($_POST['vorname']);
    $query = mysql_query("UPDATE `".$tbl."` SET  `name` = '".$name."',   `vorname` = '".$vorname."'  WHERE `id` = '$id'")
        or die(mysql_error()."<br />".mysql_errno());
    echo "Daten ge&auml;ndert";
  break;
}
?>
 
du lässt dir die dinger z.b. in textfeldern ausgeben:

PHP:
<?php
echo '
<form action="'.$_SERVER['PHP_SELF'].'" method="POST">

<input type="text" name="name" value="'.$row['name'].'">
<br>
<input type="text" name="vorname" value="'.$row['vorname'].'">

<p>

<input type="submit" name="update" value="updaten">

</form>
';

//jetzt die funktion zum ändern
//muss noch angepasst werden, sicherheitsüberprüfungen weggelassen

if(isset($_POST['update']))
   {
   $sql = "UPDATE table SET name = '".$_POST['name']."' "; //usw.
   }
      else
            {
            //fehler ausgeben oder sonstiges tun
            }
?>

Nils aka XraYSoLo
 
Zuletzt bearbeitet:
Wenn ich die zweite Variante nehme - mit meinen Einbastelungen bekommt er zwar einen Datenbankzugriff aber er lässt sich nicht updaten. Woran liegt es?

PHP:
<?php
	error_reporting(E_ALL);

    include 'config.php';
    // Konfigurationsdatei laden
  
   if(!@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS)) {
        die("Es konnte keine Verbindung aufgebaut werden");
    }

    echo "Verbindung wurde aufgebaut<br />\n";

    if(!mysql_select_db(MYSQL_DATABASE)) {
        die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());
    }

    echo "Die Datenbank wurde ausgewählt und Ihr Datensatz erfolgreich eingetragen.";

    // Hier kann man jetzt MySQL-Querys senden
	
echo '
<form action="'.$_SERVER['PHP_SELF'].'" method="POST">

<input type="text" name="name" value="'.$row['nachname'].'">
<br>
<input type="text" name="vorname" value="'.$row['vorname'].'">

<p>

<input type="submit" name="update" value="updaten">

</form>
';

//jetzt die funktion zum ändern
//muss noch angepasst werden, sicherheitsüberprüfungen weggelassen

if(isset($_POST['update']))
   {
   $sql = "UPDATE SET '".$row['nachname']."' = '".$_POST['vorname']."' "; //usw.
   }
      else
            {
            //fehler ausgeben oder sonstiges tun
            }
?>
 
Zuletzt bearbeitet:
das kann ja zu gar keinem ergebnis führen, wenn du das SQL nicht mal absendest...

der UPDATE-befehl ist auch falsch, schaus dir an, wie ich ihn oben geschrieben hab'.

Nils aka XraYSoLo
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben