eine datensatzzeile bearbeiten aus einer dynamischen tabelle

Skyhead

Mitglied
Hallo!

Ich habe da folgendes Problem, ich hab mir eine dynamische Tabelle angelegt, die mir die notwendigen dateien aus einer Datenbank wiedergibt. nun würde ich allerdings in einer weiteren Spalte dieser Tabelle einen "Bearbeiten" Button oder sowas einfügen, wo ich jede einzelne Datensatzzeile bearbeiten kann. wie bekomme ich dies hin. Jeder Datensatz hat auch eine eindeutige Nummer (BNr) die automatisch generiert wird.

Der vorhande PHP-Code lautet:

PHP:
<?php require_once('Connections/datenbank.php'); ?>
<?php
//initialize the session
if (!isset($_SESSION)) {
  session_start();
}

// ** Logout the current user. **
$logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";
if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
  $logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
  //to fully log out a visitor we need to clear the session varialbles
  $_SESSION['MM_Username'] = NULL;
  $_SESSION['MM_UserGroup'] = NULL;
  $_SESSION['PrevUrl'] = NULL;
  unset($_SESSION['MM_Username']);
  unset($_SESSION['MM_UserGroup']);
  unset($_SESSION['PrevUrl']);
	
  $logoutGoTo = "formular_anmelden.php";
  if ($logoutGoTo) {
    header("Location: $logoutGoTo");
    exit;
  }
}

   if(isset($_POST['benutzername'])){
     // Mache alles notwendige .....
     setcookie("benutzername", $_POST['benutzername'], time()+3600);
   }

$maxRows_buecher = 10;
$pageNum_buecher = 0;
if (isset($_GET['pageNum_buecher'])) {
  $pageNum_buecher = $_GET['pageNum_buecher'];
}
$startRow_buecher = $pageNum_buecher * $maxRows_buecher;

$colname_buecher = "-1";
if (isset($_COOKIE['benutzername'])) {
  $colname_buecher = (get_magic_quotes_gpc()) ? $_COOKIE['benutzername'] : addslashes($_COOKIE['benutzername']);
}
mysql_select_db($database_datenbank, $datenbank);
$query_buecher = sprintf("SELECT Schulname, Buchname, ISBN_Nr, Verlagsname, Anzahl, Fachname, Klasse FROM buecher WHERE Schulname = '%s'", $colname_buecher);
$query_limit_buecher = sprintf("%s LIMIT %d, %d", $query_buecher, $startRow_buecher, $maxRows_buecher);
$buecher = mysql_query($query_limit_buecher, $datenbank) or die(mysql_error());
$row_buecher = mysql_fetch_assoc($buecher);

if (isset($_GET['totalRows_buecher'])) {
  $totalRows_buecher = $_GET['totalRows_buecher'];
} else {
  $all_buecher = mysql_query($query_buecher);
  $totalRows_buecher = mysql_num_rows($all_buecher);
}
$totalPages_buecher = ceil($totalRows_buecher/$maxRows_buecher)-1;
?>
<?php
$currentPage = $_SERVER["PHP_SELF"];
?>
<?php
$queryString_buecher = "";
if (!empty($_SERVER['QUERY_STRING'])) {
  $params = explode("&", $_SERVER['QUERY_STRING']);
  $newParams = array();
  foreach ($params as $param) {
    if (stristr($param, "pageNum_buecher") == false && 
        stristr($param, "totalRows_buecher") == false) {
      array_push($newParams, $param);
    }
  }
  if (count($newParams) != 0) {
    $queryString_buecher = "&" . htmlentities(implode("&", $newParams));
  }
}
$queryString_buecher = sprintf("&totalRows_buecher=%d%s", $totalRows_buecher, $queryString_buecher);
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Herzlich Willkommen</title>
<link rel="stylesheet" type="text/css" href="css/schule.css" />
<script type="text/JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
//-->
</script>
</head>

<body>

<form action="eingeloggt.php" method="post" enctype="application/x-www-form-urlencoded" name="formular_eingeloggt" id="formular_eingeloggt">

  <h1 align="center" class="header">Herzlich Willkommen</h1>
  <h2 align="center" class="header">auf der Schulbuchverwaltung in M-V</h2>
  <div align="center" class="abmelden"><a href="<?php echo $logoutAction ?>"><img src="Bilder/abmelden.gif" /></a>
  </div>
  <div class="navi" align="center">
  
  <a href="#" onclick=  "MM_openBrWindow('neu.php','NeuesSchulbuch','status=yes,scrollbars=yes,resizable=yes,width=500,height=350')"><img src="Bilder/neues_buch.gif" alt="neues Buch anlegen" /></a><a href="#" onclick="MM_openBrWindow('Schule.php','AngabenSchule','status=yes,scrollbars=yes,resizable=yes,width=500,height=350')"><img src="Bilder/benutzerdaten.gif" alt="benutzerdaten &auml;ndern" /></a>
  </div>
  
<table border="0" width="50%" align="center" class="table_navi">
  <tr>
    <td width="23%" align="center"><?php if ($pageNum_buecher > 0) { // Show if not first page ?>
          <a href="<?php printf("%s?pageNum_buecher=%d%s", $currentPage, 0, $queryString_buecher); ?>"><img src="Bilder/back_back_button.gif" alt="Erster" /></a>
          <?php } // Show if not first page ?>
    </td>
    <td width="31%" align="center"><?php if ($pageNum_buecher > 0) { // Show if not first page ?>
          <a href="<?php printf("%s?pageNum_buecher=%d%s", $currentPage, max(0, $pageNum_buecher - 1), $queryString_buecher); ?>"><img src="Bilder/back_button.gif" alt="Zurück" /></a>
          <?php } // Show if not first page ?>
    </td>
    <td width="23%" align="center"><?php if ($pageNum_buecher < $totalPages_buecher) { // Show if not last page ?>
          <a href="<?php printf("%s?pageNum_buecher=%d%s", $currentPage, min($totalPages_buecher, $pageNum_buecher + 1), $queryString_buecher); ?>"><img src="Bilder/vor_button.gif" alt="Vor" /></a>
          <?php } // Show if not last page ?>
    </td>
    <td width="23%" align="center"><?php if ($pageNum_buecher < $totalPages_buecher) { // Show if not last page ?>
          <a href="<?php printf("%s?pageNum_buecher=%d%s", $currentPage, $totalPages_buecher, $queryString_buecher); ?>"><img src="Bilder/vor_vor_button.gif" alt="Letzter" /></a>
          <?php } // Show if not last page ?>
    </td>
  </tr>
</table>
Datens&auml;tze <?php echo ($startRow_buecher + 1) ?> bis <?php echo min($startRow_buecher + $maxRows_buecher, $totalRows_buecher) ?> von <?php echo $totalRows_buecher ?>
<br />
<br />



  <table width="964" border="1" align="center" cellpadding="2">
    <tr>
      <td width="202"><div align="center"><strong>Schule</strong></div></td>
      <td width="142"><div align="center"><strong>Buch-Titel</strong></div></td>
      <td width="142"><div align="center"><strong>ISBN_Nr</strong></div></td>
      <td width="142"><div align="center"><strong>Verlag</strong></div></td>
      <td width="52"><div align="center"><strong>Anzahl</strong></div></td>
      <td width="142"><div align="center"><strong>Kursfach</strong></div></td>
      <td width="142"><div align="center"><strong>Klasse</strong></div></td>
    </tr>
    <?php do { ?>
    <tr>
      <td width="182"><?php echo $row_buecher['Schulname']; ?></td>
      <td width="142"><?php echo $row_buecher['Buchname']; ?></td>
      <td width="142"><?php echo $row_buecher['ISBN_Nr']; ?></td>
      <td width="142"><?php echo $row_buecher['Verlagsname']; ?></td>
      <td width="102"><?php echo $row_buecher['Anzahl']; ?></td>
      <td width="142"><?php echo $row_buecher['Fachname']; ?></td>
      <td width="142"><?php echo $row_buecher['Klasse']; ?></td>
    </tr>
    <?php } while ($row_buecher = mysql_fetch_assoc($buecher)); ?>
  </table>
<br />

Datens&auml;tze <?php echo ($startRow_buecher + 1) ?> bis <?php echo min($startRow_buecher + $maxRows_buecher, $totalRows_buecher) ?> von <?php echo $totalRows_buecher ?>
<table border="0" width="50%" align="center" class="table_navi">
  <tr>
    <td width="23%" align="center"><?php if ($pageNum_buecher > 0) { // Show if not first page ?>
          <a href="<?php printf("%s?pageNum_buecher=%d%s", $currentPage, 0, $queryString_buecher); ?>"><img src="Bilder/back_back_button.gif" alt="Erster" /></a>
          <?php } // Show if not first page ?>
    </td>
    <td width="31%" align="center"><?php if ($pageNum_buecher > 0) { // Show if not first page ?>
          <a href="<?php printf("%s?pageNum_buecher=%d%s", $currentPage, max(0, $pageNum_buecher - 1), $queryString_buecher); ?>"><img src="Bilder/back_button.gif" alt="Zurück" /></a>
          <?php } // Show if not first page ?>
    </td>
    <td width="23%" align="center"><?php if ($pageNum_buecher < $totalPages_buecher) { // Show if not last page ?>
          <a href="<?php printf("%s?pageNum_buecher=%d%s", $currentPage, min($totalPages_buecher, $pageNum_buecher + 1), $queryString_buecher); ?>"><img src="Bilder/vor_button.gif" alt="Vor" /></a>
          <?php } // Show if not last page ?>
    </td>
    <td width="23%" align="center"><?php if ($pageNum_buecher < $totalPages_buecher) { // Show if not last page ?>
          <a href="<?php printf("%s?pageNum_buecher=%d%s", $currentPage, $totalPages_buecher, $queryString_buecher); ?>"><img src="Bilder/vor_vor_button.gif" alt="Letzter" /></a>
          <?php } // Show if not last page ?>
    </td>
  </tr>
</table>
</form>

</body>
</html>
<?php
mysql_free_result($buecher);
?>
 
Erzeug doch eine weitere Spalte in deiner do...while Schleife, platzier dort einen Link, welchem Du die eindeutige ID zur Bearbeitung übergibst und in deinem Script, welches du zur Bearbeitung wohl noch schreiben musst, reagierst du auf diese Id um die Daten zu holen und um die Änderungen wieder abzuspeichern.
 
Nunja, eine andere datei z.B namens "edit.php" wartet auf GET-Anfragen und gibt, wenn die Authorizierte Person eingeloggt und die nötigen Rechte besitzt alles aus und man kann alles wieder abspeichern.

Dies soll nur ein Beispiel darstellen:

PHP:
<?php

if(isset($_GET['nr']) && $_GET['nr'] !== "") {

// ... Verbindung ...

$sql1 = sprintf('SELECT text, ... FROM tabelle1 WHERE bnr = %d', 
                 mysql_real_escape_string($_GET['nr'])
                 );
                 
$query1 = mysql_query($sql1);

}

if(isset($_POST)) {

// MySQL-Update......

}

?>
<html>
<head></head>

<body>
<?php 

if(mysql_num_rows($query1) > 0) { ?>
<form method="post" action="edit.php" >

<textarea <!-- ............. -->>

<!-- Inhalt -->

</textarea>

</form>
<?php
}
?>
</body>

</html>




// EDIT

Nicht vergessen, alle Werte die von einer Textarea ausgegeben werden sollen mit nl2br() zu escapen ;)
 
Zuletzt bearbeitet:
Sorry Leute ich verstehe nur Bahnhof Ich muss gestehen, das der Code nur von Dreamweaver erzeugt wurde, nur kleine Änderungen von mir vorgenommen wurden. Ich habe mal in Visual Studio so in GridView gesehen, aber das war nur in ASP .Net, aber das bringt mir nichts, da ich es in PHP brauch. Aber genau soetwas wie dieses GridViw suche ich nur in PHP. Hat da vielleicht einer ne Idee oder kann mir vielleicht konkret sagen, was ich bei mir ändern müsste?
 
Dreamweaver kann zwar keine Gedanken lesen, aber wenn man sich in sachen php nichtso sehr aukennt, hilft es einem schon

Kann mir denn vielleicht jemand helfen, denn Dreamweaver kann es meiner Meinung nach nicht.

Mfg Skyhead
 
Gibt es jemanden, der etwas Zeit hat, mir zu helfen? Es ist leider sehr dringend und ich weiß echt nicht, wie ich es anstellen soll.

Mfg Skyhead
 
Sorry das ich erst jetzt wieder antworte..

Du musst eine Administrative Oberfläche erstellen, wo du nur dich einloggen kannst :)

Erstell einfach eine neue PHP Datei und erstell die Admin Oberfläche ;) Wenn du kein PHP kannst, kann ich dir gern ein script schreiben, dazu brauch ich nur die tabellennamen damit ich alles schnell machen kann ;)
 
Ich habe 5 Tabellen:

1. Tabelle: buecher:
Schulname
Buchname
BNr
ISBN_Nr
Verlagsname
Anzahl
Fachname
Klasse

2. Tabelle: fach:
FNr
Fachname

3. Tabelle: klasse:
KNr
Klasse

4. Tabelle: schule:
SNr
Schulname
Passwort
Schulort

5.Tabelle: verlag:
VNr
Verlagsname

Man kann sich mein bisheriges Ergebnis auch ansehen: hier

Habe zum Testen mal ein Testaccount:

Bentzername: probe
Passwort: probe


Ich habe nicht grad sehr viel ahnung in sachen php, aber ich bemühe mich.
 

Neue Beiträge

Zurück