Datenbank Update

bambid

Mitglied
Hallo,
Ich habe vor einigen Tagen endlich mal den xampp heruntergeladen. Da habe ich die CD Datenbank mal einwehnig angeschaut, welche ich auch etwas versucht habe umzubauen.

ich habe versucht nicht nur löschen zu können sondern auch bearbeiten.

So sieht mein Code nun aus:

PHP:
<html>
<head>
		<meta http-equiv="content-type" content="text/html;charset=utf-8">
		<title>apachefriends.org cd collection</title>
<link href="xampp.css" rel="stylesheet" type="text/css">
</head>

<body>

<p>
<h1>Kunden Daten</h1>

Die einfach zu verwaltende Datenbank

<?

//    Copyright (C) 2002/2003 Kai Seidler, oswald@apachefriends.org
//
//    This program is free software; you can redistribute it and/or modify
//    it under the terms of the GNU General Public License as published by
//    the Free Software Foundation; either version 2 of the License, or
//    (at your option) any later version.
//
//    This program is distributed in the hope that it will be useful,
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//    GNU General Public License for more details.
//
//    You should have received a copy of the GNU General Public License
//    along with this program; if not, write to the Free Software
//    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


	if(!mysql_connect("localhost","root",""))
	{
		echo "<h2>Het nöd klappt</h2>";
		die();
	}
	mysql_select_db("cdcol");
?>

<h2>Daten</h2>

<table border=0 cellpadding=0 cellspacing=0>
<tr bgcolor=#f87820>
<td><img src=img/blank.gif width=10 height=25></td>
<td class=tabhead><img src=img/blank.gif width=200 height=6><br><b>Interpret</b></td>
<td class=tabhead><img src=img/blank.gif width=200 height=6><br><b>Titel</b></td>
<td class=tabhead><img src=img/blank.gif width=50 height=6><br><b>Jahr</b></td>
<td class=tabhead><img src=img/blank.gif width=50 height=6><br><b>Aktion</b></td>
<td><img src=img/blank.gif width=10 height=25></td>
</tr>


<?
	if($_REQUEST['interpret']!="")
	{
		if($jahr=="")$jahr="NULL";
		$titel=htmlentities($_REQUEST['titel']);
		$interpret=htmlentities($_REQUEST['interpret']);
		$jahr=htmlentities($_REQUEST['jahr']);
		mysql_query("INSERT INTO cds (titel,interpret,jahr) VALUES('$titel','$interpret',$jahr);");
	}

	if($_REQUEST['action']=="del")
	{
		mysql_query("DELETE FROM cds WHERE id={$_REQUEST['id']};");
	}
	
	else if($_REQUEST['action']=="sich")
	{
		mysql_query("UPDATE `cdcol`.`cds` SET `titel` = {$_REQUEST['titel']},`interpret` = {$_REQUEST['interpret']},`jahr` = {$_REQUEST['jahr']} WHERE `cds`.`id` ={$_REQUEST['id']} LIMIT 1 ");
		echo $row;
	}
	
	
	$result=mysql_query("SELECT id,titel,interpret,jahr FROM cds ORDER BY interpret;");
	
	$i=0;
	while( $row=mysql_fetch_array($result) )
	{
		if($i>0)
		{
			echo "<tr valign=bottom>";
			echo "<td bgcolor=#ffffff background='img/strichel.gif' colspan=6><img src=img/blank.gif width=1 height=1></td>";
			echo "</tr>";
		}
		
		if($_REQUEST['action']=="upd")
				{
					
					echo "<tr valign='middle'>";
					echo "<td class='tabval'><img src='img/blank.gif' alt='' width='10' height='20'></td>";
										
					echo "<td class='tabval'><input type=text value=".$row['interpret']." size=20 name=interpret>&nbsp;</td>";
					echo "<td class='tabval'><input type=text value=".$row['titel']." size=20 name=titel>&nbsp;</td>";
					echo "<td class='tabval'><input type=text value=".$row['jahr']." size=20 name=jahr>&nbsp;</td>";
					echo "<td><a href=cds.php?action=sich&id=".$row['id']."&interpret=".$row['interpret']."&titel=".$row['titel']."&jahr=".$row['jahr']."><span class=green>[sichern]</span></a></td>";
					echo "<td class='tabval'></td>";
					echo "</tr>";
					
					
					
				}
			else
			{
		echo "<tr valign=center>";
		echo "<td class=tabval><img src=img/blank.gif width=10 height=20></td>";
		echo "<td class=tabval><b>".$row['interpret']."</b></td>";
		echo "<td class=tabval>".$row['titel']."&nbsp;</td>";
		echo "<td class=tabval>".$row['jahr']."&nbsp;</td>";

		echo "<td class=tabval><a onclick=\"return confirm('Sicher?');\" href=cds.php?action=del&id=".$row['id']."><span class=red>[löschen]</span></a></td>";
		echo "<td class=tabval><a href=cds.php?action=upd&id=".$row['id']."><span class=green>[bearbeiten]</span></a></td>";
		echo "<td class=tabval></td>";
		echo "</tr>";
		$i++;
}
	}

	echo "<tr valign=bottom>";
        echo "<td bgcolor=#fb7922 colspan=6><img src=img/blank.gif width=1 height=8></td>";
        echo "</tr>";


?>

</table>

<h2>Neuer Eintrag</h2>

<form action=cds.php method=get>
<table border=0 cellpadding=0 cellspacing=0>
<tr><td>Interpret:</td><td><input type=text size=30 name=interpret></td></tr>
<tr><td>Titel:</td><td> <input type=text size=30 name=titel></td></tr>
<tr><td>Jahr:</td><td> <input type=text size=5 name=jahr></td></tr>
<tr><td></td><td><input type=submit border=0 value="Neu eintragen"></td></tr>
</table>
</form>


</body>
</html>

Das ist alles Wunderbar. und ich kann einfügen und löschen. und wenn ich auf bearbeiten klicke, kann ich auch Den Text bearbeiten. doch leider liest er mir aus der Datenbank immer nur das erste Wort aus.
z.B.:
Der Interpret heisst: Hans Müller

Dann steht im eingabe Fenster: Hans

und wenn ich hans verändere und daraus Fritz mache, dann bleibt es Hans.
Was habe ich falsch gemacht, Ich denke mir, dass ich falsch in die Datenbank schreibe aber ich kann mir das nicht erklären.

kann mir bei diesen Problemen jemand helfen?

Mit freundlichem Gruss
bambid
 
Zuletzt bearbeitet:
Es liegt schlicht und ergreifend am HTML Code.

PHP:
echo "<input type=text value=".$row['interpret']." size=20 name=interpret>";

Dieser Code gibt dann z. B: aus:

HTML:
<input type=text value=Hans Meiser size=20 name=interpret>

Dies führt zum Problem, dass er NUR "Hans" als zugehörig zu "value" betrachtet. "Meiser" ist dann ein eigenständiges Attribut von <input>.

Die Lösung sind Anführungszeichen:

PHP:
echo "<input type='text' value='".$row['interpret']."' size='20' name='interpret'>";

Sind übrigens generell zu empfehlen ;)

Schöner würde ich es übrigens finden, wenn zum editieren nur EIN Datensatz geladen wird und nicht alle.
Denn das würde nicht soviele Ressourcen fressen.
 
Danke dir für die Antwort Das hat wunderbar geklappt!

jetzt ist noch das Problem mit dem überschreiben der Datenbank Einträge.
Ist dir da auch was aufgefallen?


Wie meinst du das mit nur einem Datensatz?

so dass nur die eine Zeile sich ändert welche ich anklicke?
Das wäre Toll doch wie mache ich das?

Mit freundlichem Gruss
bambid
 
Zurück