methode Get will nicht so wie ich will *g*

LoMo

Erfahrenes Mitglied
hi, (ich bins scho wieder *g*)

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<?php

	function datenbank_oeffnen()
	{	
		$hostname = 'localhost';
		$username = 'root';
		$password = '';
		$database = 'test';
		
		$db = mysql_connect($hostname,$username,$password); // Öffnet eine Verbindung zum Datenbankserver
		
		if ($db)
		{
			mysql_select_db($database,$db); // Wählt eine Datenbank aus 
		}
		else
		{
			echo "<b>Verbindung nicht erfolgreich</b>";
		}
		return $db;
	}
	
	function ausgabe($db)
	{
		
		$rs = mysql_query("select * from test01 order by Index1 asc",$db); // Sendet SQL-Befehl
		if ($rs)
		{
			$number = mysql_num_rows($rs);
			echo "<h3>In der gewählten Tabelle sind $number Datensätze vorhanden (Recordcount): </h3>";
			echo "<br />";
			echo "<table border=1>";
			$row = mysql_fetch_array($rs, MYSQL_ASSOC);
			
			// Tabellenfelder als Überschrift
			while ($field = key($row))
			{
					echo '<th>' . ucwords($field) . '</th>';
					if ($field != key($row))
					{
						echo '<th>' . ucwords("löschen") . '</th>';
					}
				next($row);
			}
			echo "</tr><tr><td>";
			echo implode("</td><td>",$row );
			echo "</td></tr>";
			
			$row = 0;
			// Tabelle mit Datenbankfeldern füllen
			while ($row = mysql_fetch_object($rs))
			{	
				echo "<tr><td>";
				echo $row->Index1;
				echo "</td>";
				echo "<td>";
				echo $row->text01;
				echo "</td>";
				echo "<td>";
				echo $row->text02;
				echo "</td>";
				echo "<td>";
				echo "<a href=\"".$_SERVER['PHP_SELF']."?loeschen=".$row->Index1."\">Loeschen</a>"; 
				echo "</td>";
				echo "<td>";
				echo "<a href=\"".$_SERVER['PHP_SELF']."?aendern=".$row->Index1."&speichern=update"."\">Ändern</a>"; 
				echo "</td></tr>";
			}
			
			echo "</table>";
		}
		else
		{
			echo mysql_error($db);
		}
		mysql_close($db);
	}

?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Datenbank: MySQL</title>
</head>
<body>
<?php
	
	if ((isset($_POST['text01'])) && (isset($_POST['text02'])))
	{	
		if (trim($_POST['text01']) != '' or trim($_POST['text02']) != '')
		{	
			if (trim($_GET['speichern'])=="")
			{
				$db = datenbank_oeffnen();
				$query = "INSERT INTO test01 (text01,text02) Values ('{$_POST['text01']}','{$_POST['text02']}')"; 
				$rs = mysql_query($query,$db);
				
				if ($rs)
				{
					// Erfolgreich
				}
				else
				{
					echo mysql_error($db);
				}
				mysql_close($db);
			}
		}
	}
	
	if (isset($_GET['loeschen']))
	{
		$db = datenbank_oeffnen();
		$query = "Delete from test01 where index1 = {$_GET['loeschen']}";
		$rs = mysql_query($query,$db);
		
		if ($rs)
		{
			echo mysql_affected_rows($db);
		}
		else
		{
			echo mysql_error($db);
		}
	}
	
	if (isset($_GET['aendern']))
	{
		$db = datenbank_oeffnen();
		$query = "Select * from test01 where index1 = {$_GET['aendern']}";
		$rs = mysql_query($query,$db);
		
		if ($rs)
		{
			$objekt = mysql_fetch_object($rs);
		}
		else
		{
			echo mysql_error($db);
		}
	}
	
	if (isset($_GET['speichern']))
	{
		if ($_GET['speichern'] != '')
		{
			$db = datenbank_oeffnen();
			$query = "Update test01 set text01={$_POST['text01']}, text02={$_POST['text02']} where Index1=".$_GET['aendern'].""; 
			$rs = mysql_query($query,$db);
			
			if ($rs)
			{
				// Juhu es funktioniert endlich
			}
			else
			{
				echo mysql_error($db);
			}
		}
	}

	$db = datenbank_oeffnen();
	ausgabe($db);
?>

<form name="send" method="post" action="<?=$_SERVER['PHP_SELF']?>">
    <input type="text" name="text01" value="<?php if (isset($objekt->text01)) echo $objekt->text01;?>">
    <input type="text" name="text02" value="<?php if (isset($objekt->text01)) echo $objekt->text02;?>">
    <input type="submit" value="Senden">
</form>

</body>
</html>

Problem: Sobald der user auf den Link ändern klickt schreib ich in die URL aendern=(Index aus der Tabelle) und speichern='update' rein und füllt die Formularfelder mit den entsprechenden Daten und hier auch schon des problem irgendwie liest er speichern nicht richtig aus und dadurch speichert er den Datensatz neu. Aber ich will ihn ja updaten wenn er auf ändern geklickt hat.

Hoffentlich kann mir jemand helfen.

mfg lomo
 
ich weis nicht ob ich mich jetzt vieleicht etwas doof anstelle, aber in deiner Updateschleife steht lediglich etwas vom Auslesen drin, und in deiner Speichern Schleife etwas von Update, kann da der Fehler liegen?
Müsste es nicht bei Speichern "instern INTO" heissen und nur beim Update "update tabellenname" ?
 
Ne da hast du was falsch verstanden. wenn $_GET['speichern'] == '' ist dann soll er einen neuen Datensatz anlegen und wenn != '' soll er den Satz updaten.

mfg lomo
 
Was spricht gegen sowas wie hier?
Code:
if ($insert)
	{
         ...
	}
if ($delete)
	{
         ...
	}
if ($update)
	{
         ...
	}
Eine Wert zum einfuegen neuer Daten (insert), einer zum loeschen (delete) und einer zum aktualisieren (update).
 
@Golz: des speichern kommt von einen url (GET)

@Reptiler: Hä wie meinst du das ? Hab ich jetzt irgendwie nicht verstanden. Die Struktur des Codes gefällt mir schonmal muss nur noch verstehen was du meinst! *g*

mfg lomo
 
Also, bei mir ist das folgendermassen.

Wenn ich als Admin eingeloggt bin stellt mir mein Script zur User-Administration eine Liste aller User dar. Mit den Links Edit und Delete.
Ausserdem eine leere Form um einen neuen User anzulegen.
Die Form hat einen Button mit dem Namen insert, folglich wird beim druecken auf den Button die Variable $insert uebergeben.
Bei Delete wird als wert der Variable delete die ID des zu loeschenden Users mitgegeben, sodass dieser dann anhand seiner ID in der Datenbank identifiziert werden kann.
Bei Edit zeigt mir das Script nicht die Tabelle mit allen Usern an, sondern eine Form mit default-Werten. Naemlich denen des Users. Auch hier wird die ID als Wert von edit mit uebergeben.
Diese Form hat einen Button mit dem Namen update, sodass eine Variable $update uebergeben wird wenn ich diesen druecke.

Ich hoffe ich konnte alle Klarheiten beseitigen.

Nachtrag: Ich weiss nicht ob Dir die Struktur des Codes gefallen wuerde wenn Du das ganze Script siehst. :) Aber immerhin ist es HTML 4.01 Transitional Valid!
 
Zuletzt bearbeitet:
Hört sich ja schonmal gut an *g*. Ich versuch gerade den Code a bisl zu gliedern und dann versuch ich mal deinen Vorschlag.

Ps. Gibt es irgend eine Variable, in der die aktuelle URL steht ? Ich muss irgendwie rausfinden wie meine Aktuelle URL lautet!

mfg lomo
 
Es muesste so eine Variable geben, ich weiss jetzt aber nicht den Namen.
Vielleicht mal auf www.php.net in die Doku schauen, ob da was steht.
Oder vielleicht weiss auch jemand anders wie die heisst. Bin aber recht sicher, dass es da was gibt.
 
versuchs mal mit

PHP:
echo $_SERVER['REQUEST_URI'];


könnte sein ^^
 
Zuletzt bearbeitet:
Zurück