Hilfe bei Formularen mit PHP

Ok. Ihr sind die drei Skripte nochmal:

Skript1:
PHP:
			<h3><u>Benutzerauswahl</u></h3>
			<br></br>
			<br></br>
   			<h3>
Wählen Sie aus, welcher Datensatz geändert werden soll:<p>
<form action = "benutzer_aendern_single_admin.php" method = "post">
<?php
   $db = mysql_connect("localhost", "root") or die("Verbindungsversuch fehlgeschlagen");
   $res = mysql_db_query("test",
      "SELECT id, username, mail, abteilung
            FROM benutzer
            ORDER BY id");
   $num = mysql_num_rows($res);

   // Tabellenbeginn
   echo "<table border>";

   // Überschrift
   echo "<tr> <td>Auswahl</td> <td>Username</td>";
   echo "<td>Mail</td> <td>Abteilung</td>";
   echo "</tr>";

   for ($i=0; $i<$num; $i++)
   {
      $nn = mysql_result($res, $i, "username");
      $vn = mysql_result($res, $i, "mail");
      $pn = mysql_result($res, $i, "id");
      $gt = mysql_result($res, $i, "abteilung");
      

      // Tabellenzeile mit -zellen
      echo "<tr> <td><input type='radio' name='auswahl'";
      echo " value='$pn'></td> <td>$nn</td> <td>$vn</td>";
      echo " <td>$gt</td></tr>";
   }

   // Tabellenende
   echo "</table>";

   mysql_close($db);
?>
   <p>
   <input type="submit" value="Datensatz anzeigen">
</form>


Skript2:
PHP:
<html>
<body>
<?php
if ("$_POST[auswahl]")
{
  $db = mysql_connect("localhost", "root") or die("Verbindungsversuch fehlgeschlagen");

   $sqlab = "select * from benutzer where";
   $sqlab .= " id = '$_POST[auswahl]'";

   $res = mysql_db_query("test", $sqlab);

   $altnn = mysql_result($res, 0, "username");
   $altvn = mysql_result($res, 0, "mail");
   $altgt = mysql_result($res, 0, "abteilung");

   echo "Führen Sie die Änderungen durch,<p>";
   echo "betätigen Sie anschließend den Button<p>";

   echo "<form action = 'benutzer_aendern_true_admin.php' ";
   echo " method = 'post'>";

   echo "<input name='neunn' value='$altnn'>";
   echo " Username<p>";
   echo "<input name='neuvn' value='$altvn'> ";
   echo " Mail<p>";
   echo "<input name='neugt' value='$altgt'>";
   echo " Abteilung<p>";
   echo "<input type='hidden' name='oripn' ";
   echo " value='$_POST[auswahl]']>";

   echo "<input type='submit' ";
   echo " value='Änderungen in DB speichern'><p>";
   echo "<input type='reset'>";
   echo "</form>";

   mysql_close($db);
}

else
   echo "Es wurde kein Datensatz ausgewählt<p>";
?>
</body>
</html>

Skript3:
PHP:
<html>
<body>
<?php
  $db = mysql_connect("localhost", "root") or die("Verbindungsversuch fehlgeschlagen");
  
   $sqlab = "update benutzer set username = '$neunn',";
   $sqlab .= "mail = '$neuvn',";
   $sqlab .= "abteilung = '$neugt'";
   $sqlab .= "where id = '$_POST[auswahl]'";

   mysql_db_query("test", $sqlab);

   $num = mysql_affected_rows();
   if ($num>0)
      echo "Der Datensatz wurde geändert<p>";
   else
      echo "Der Datensatz wurde nicht geändert<p>";

   mysql_close($db);
?>
Zurück zur <a href="benutzer_verwalten_admin.php">Auswahl</a>

</body>
</html>

Vielleicht fällt dir ja noch was auf

Vielen Dank im Voraus.

Gruß
Nano
 
Hallo zusammen,

habe wieder ein Problem.

Und zwar folgendes.....
Ich habe die obigen 3 Skripte jetzt getrennt und zwar nach HTML Code und PHP Code.
Mache bei der HTML Seite ein include von der jeweiligen PHP Seite.

Bsp.: HTML -> skript3 PHP-> c_skript3, dieses c_skript3 inkludiere ich in dem HTML Code.

Nun geht aber leider das UPDATE nicht mehr richtig. Wenn ich also bei einem Benutzer etwas abändere, wird der Datensatz komplett leer.

Hoffe das mir jemand sagen kann woran das liegen könnte.
Würde die Skripte noch mal hochstellen wenn ihrs wollt.

Vielen Dank im Voraus.

Gruß
Nano
 
Hallo ihr sind die Skripte:

Skript1:
PHP:
<html>
<head>
Wählen Sie aus, welcher Datensatz geändert werden soll:<p>
<form action = "Skript2.php" method = "post">
       <?php
            include ('../controller/c_skript1.php');
        ?>
        <p>
        <input type="submit" value="Datensatz anzeigen">
</form>
</html>
</head>

c_skript1:
PHP:
<?php

$db = mysql_connect("localhost", "root") or die("Verbindungsversuch fehlgeschlagen");
$res = mysql_db_query("test", "SELECT id, username, mail, abteilung, session, recht
              					 FROM benutzer ORDER BY id");
$num = mysql_num_rows($res);

// Tabellenbeginn
echo "<table cellpadding='5' cellspacing='2' border='2'>";

// Überschrift
echo "<tr> <td>Auswahl</td> <td>Username</td>";
echo "<td>Mail</td> <td>Abteilung</td> <td>Berechtigung</td>";
echo "<td>Status</td></tr>";

for ($i = 0; $i < $num; $i++) {
	$id = mysql_result($res, $i, "id");
	$un = mysql_result($res, $i, "username");
	$ma = mysql_result($res, $i, "mail");
	$ab = mysql_result($res, $i, "abteilung");
	$re = mysql_result($res, $i, "recht");
	$se = mysql_result($res, $i, "session");
	
		if($se != null)
		{
			$s="Online";
		}
		else
		{
			$s="Offline";
		}

	// Tabellenzeile mit -zellen
	echo "<tr> <td><input type='radio' name='auswahl'";
	echo " value='$id'></td> <td>$un</td> <td>$ma</td>";
	echo " <td>$ab</td> <td>$re</td>";
	echo " <td>$s</td></tr>";
}

// Tabellenende
echo "</table>";

mysql_close($db);
?>


Skript2:
PHP:
<html>
<head>
 <form action = "Skript3.php" method = "post">
   	<table cellpadding="8" cellspacing="10" border="0">
		<?php 
			include ('../controller/c_skript3.php'); 
		?>
	 </table>
	<br></br>
	<br></br>
   	<input type="submit" value="Änderungen in DB speichern">&nbsp&nbsp
   	<input type="reset" value="Zurücksetzen">
   				      
 </form>
</html>
</head>

c_skript2:
PHP:
<?php

if ("$_POST[auswahl]")
{
  $db = mysql_connect("localhost", "root") or die("Verbindungsversuch fehlgeschlagen");

   $sqlab = "select * from benutzer where";
   $sqlab .= " id = '$_POST[auswahl]'";

   $res = mysql_db_query("test", $sqlab);

   $altun = mysql_result($res, 0, "username");
   $altma = mysql_result($res, 0, "mail");
   $altab = mysql_result($res, 0, "abteilung");
   $altre = mysql_result($res, 0, "recht");

   echo "<tr> <td height = '50' width= '200'>Username:</td> ";
   echo "<td height = '50' width= '200'><input style='width:200' name='neuun' value='$altun'></td>";
   echo "<td></td> </tr>";
   echo "<tr><td height = '50' width= '200'>Mail:</td>";
   echo "<td height = '50' width= '200'><input style='width:200' name='neuma' value='$altma'></td></tr>";
   echo "<tr><td height = '50' width= '200'>Abteilung:</td>";
   echo "<td height = '50' width= '200'><input style='width:200' name='neuab' value='$altab'></td></tr><p>";
   echo "<input type='hidden' name='oripn' ";
   echo " value='$_POST[auswahl]']>";
				
   
   mysql_close($db);
}

else
   echo "Es wurde kein Datensatz ausgewählt<p>";
?>


Skript3:
PHP:
<html>
<head>
           <?php
			include ('../controller/c_skript3.php'); 
	?>

</html>
</head>

c_skript3:
PHP:
<?php
$db = mysql_connect("localhost", "root") or die("Verbindungsversuch fehlgeschlagen");

$sqlab = "UPDATE benutzer SET username = '$_POST[neunn]',";
$sqlab .= "mail = '$_POST[neuvn]',";
$sqlab .= "abteilung = '$_POST[neugt]'";
$sqlab .= "where id = '$_POST[oripn]'";

mysql_db_query("test", $sqlab);

$num = mysql_affected_rows();
if ($num > 0)
	echo "Der Datensatz wurde geändert<p>";
else
	echo "Der Datensatz wurde nicht geändert<p>";

mysql_close($db);
?>

Hoffe dass man die Struktur besser versteht und dass mir jemand weiter helfen kann?

Vielen Dank im Voraus.

Gruß
Nano
 
Im zweiten Skript hast du beim Formular eine Klammer hinter dem ' also dies:
PHP:
   echo " value='$_POST[auswahl]']>";

in dass:

PHP:
   echo " value='$_POST[auswahl]'>";

ändern.

Und wie gesagt benutze nicht mehr mysql_db_query(); weil dies veraltet ist.
 
Hallo MsStriker,

danke für dein Antwort.

Leider lag es an der Klammer nicht.
Hast du noch ne Idee evtl. worans liegen könnte
Könntest du mir bitte sagen, was ich anstatt mysql_db_query(); verwenden könnte?

Vielen Dank im Voraus.

Gruß
Nano
 
Zurück