Zur Navigation

update der datenbank

1 tomaschko

Hi,

bei soviel fragen die ich habe, dacht ich mir, kann ich mich auch gleich registrieren, immerhin bekommt man hier immer gute hilfestellungen;-)

mein neues Problem ist die updatefunktion. Ich erarbeite zum ersten mal eine funtkion zum updaten der daten, jedoch wird die $subid immer auf 0 gesetzt, wenn ich ein update durchführe, wie kann ich das ändern.

Der Code:

update.php -- das formular

<?php
include('../includes/db_connect.inc.php');
include('../includes/functions.inc.php');

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Learn to breath - ADMIN</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
   <link rel="stylesheet" type="text/css" href="../includes/style.css">
  </head>
  <body>
  <!--Kopf der Website-->
  <div id="head"></div>
  <!--Die Navigation-->
  <div id="navi">
  <div class="menuecontainer">
  
  </div>
  </div>
  <!--Inhalt-->
  <div id="content">
 <form method="post" action="save_update.php">
 <input type="hidden" name="sid" value="<?php echo $_GET["sid"]; ?>">
 <input type="hidden" name="id" value="<?php echo $_GET["id"]; ?>">
<table>
<tr>
<td>
  <select name="subname">
<?php
 $result = mysql_query("SELECT * FROM subsections WHERE sid=".$_GET["sid"]);
 while ($sec = mysql_fetch_object($result)) {
  $sub_id = $sec->id;
  $subname = $sec->subname;

?>

<?php
echo '<option>';
echo $sub_id;
echo '</option>';
}
?>
</select>
</td>
<td><font color="red"><b>
<?php
 $result = mysql_query("SELECT * FROM subsections WHERE sid=".$_GET["sid"]);
 while ($sec = mysql_fetch_object($result)) {
  $subid = $sec->id;
  $subname = $sec->subname;
echo $subid;
echo ' = ';
echo $subname;
echo '<br>';
}
?>
</b></font>></td>
</tr>
</table>
<br><br>
<?php
$result = mysql_query("SELECT * FROM content WHERE id=".$_GET["id"]);
 while ($row = mysql_fetch_object($result)) {
  $id = $row->id;
  $user = $row->user;
  $title = $row->title;
  $content = $row->content;
?>

 User(später hidden):<br>
 <input type="text" name="user" value="<?php echo $user; ?>"><br>
 titel:<br>
 <input type="text" name="title" value="<?php echo $title; ?>"><br>
 Content:<br>
 <textarea name="content" ><?php echo $content; ?></textarea><br>
 <input type="submit" value="update">
 </form>
  
  <?php
}
?>

</div>
 
           
  </body>
</html>

und das skript zum update durchführen
save_update.php

<?php
include('../includes/db_connect.inc.php');
include('../includes/functions.inc.php');

//kurze variablennamen
$id = $_POST["id"];
$sid = $_POST["sid"];
$sub_id = $_POST["sub_id"];
$user = $_POST["user"];
$title = $_POST["title"];
$content = $_POST["content"];

//Jetzt content in db eintragen
mysql_query("UPDATE content SET sid='$sid', subid='$sub_id', user='$user', title='$title', content='$content' WHERE id = '$id'");


?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Lean to breath - ADMIN</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
   <link rel="stylesheet" type="text/css" href="../includes/style.css">
  </head>
  <body>
  <!--Kopf der Website-->
  <div id="head"></div>
  <!--Die Navigation-->
  <div id="navi">
  <div class="menuecontainer">
  
  </div>
  </div>
  <!--Inhalt-->
  <div id="content">
 <?php
 echo "Zur&uuml;ck zur <a href=\"show_sub.php?sid=".$sid."\">";
 echo "Subsectionliste </a>";
  
  ?>
  

</div>
 
           
  </body>
</html>


ich hoff ihr könnt mir helfen

21.12.2006 09:43

2 Jörg

Hallo tomaschko,

dem name Attribut des select Elements entsprechend ...:

<select name="subname">
<?php
$result = mysql_query("SELECT * FROM subsections WHERE sid=".$_GET["sid"]);
while ($sec = mysql_fetch_object($result)) {
 $sub_id = $sec->id;
 $subname = $sec->subname;

?>

<?php
echo '<option>';
echo $sub_id;
echo '</option>';
}
?>
</select>

... wird die subid Variable als $_GET['subname'] übertragen. Du müsstest also entweder den Namen des select ändern oder die Zuweisung im Script save_update.php entsprechend anpassen:

$sub_id = $_POST["subname"];

21.12.2006 10:18 | geändert: 21.12.2006 10:18

3 tomaschko

ah, wie dumm von mir, hab ich das vergessen abzuändern. Der eigetentliche plan war im optionfeld die subnamen zu haben, statt der id, da ich aber unsicher war ob das machbar is, weil in die contenttabelle ja nur die subid kommt, hab ich dann die subids auslesen lassen und daneben eine art legende gemacht. irgendwie muss ich dann vergessen haben den namen des feldes zu ändern - dumm von mir....

dank erstmal,

Ist er echt?

21.12.2006 10:28

4 Jörg

Der eigetentliche plan war im optionfeld die subnamen zu haben, statt der id

Du kannst auch beides nehmen:

echo '<option value="', $sub_id, '">', $subname, '</option>';

Angezeigt wird dann $subname, und übertragen wird der value Wert, in diesem Fall $sub_id

21.12.2006 11:20

5 tomaschko

Guter Vorschlag! Eigentlich weiss ich auch, dass nur der valuewert ausschlaggebend ist, aber im moment des programmierens vergess ich solche Details...

Danke auf jedenfall und gesundes neues;-)

Ist er echt?

02.01.2007 08:20

Beitrag schreiben (als Gast)





[BBCode-Hilfe]