php / sql löschabfrage über href

Phil La Fari

Grünschnabel
Ich bin neu in PHP und SQL und habe im Moment so meine Schwierigkeiten mit einer löschanweisung.

Ich hab 2 Datein für den Vorgang

1.Datei/Quelltext

PHP:
	<h2>Die Supporter</h2>
	<p>
	
		<?php
		
			// Verbindung zur Datenbank
			
			$conncetion = mysql_connect ("localhost", "nix", "nix");
			
			
			// Datenbank auswählen
			$db = mysql_select_db("96kader");
			
			
			
			// SQL-Anweisung 
			$Suche = '';
			if (isset ($_GET ['Suche'] )) $Suche = $_GET ['Suche'];
			$sql = "SELECT * FROM fanclubs WHERE Name LIKE '%$Suche%' OR Gruendungsjahr LIKE '%$Suche%'";
			$result = mysql_query("$sql");
			 
			 if (!$result) {
			 
			 die ('fehler'.mysql_error());
			 
			 
			 
			 }
			
			// Verbindung schließen
			mysql_close($conncetion);
		
			
		?>
		
		Suchen Sie nach ihrem gewünschtem Fanclub oder nach dem Gründungsjahr
	
		<form action="" method="get">
			
			<input type="hidden" name="content" value="supporters" />
			<input type="text" name="Suche" value="<?php echo $Suche; ?>" />
			<input type="submit" />
			
		</form>
		
		
		<table class="kader">
		
		
			<tr>
				<th>Nr.</th><th>ID</th><th>Name</th><th>Beschreibung</th><th>Gründungsjahr</th><th>Mitgliederanzahl</th>
			</tr>
			

		
		<?php
			$count = 1;
			
			
	// Ausgabe der Fanclubs
			while ($row = mysql_fetch_array($result)) {
			
				if ( is_int ($count /2) )
		$trclass ="even";
		else
			$trclass="odd";
				
				echo"<tr class='$trclass'>";
				echo "<td>".$count."</td>";
				echo"<td>".$row['ID_supporters']."</td>";
				echo"<td>".$row['Name']."</td>";
				echo"<td>".$row['Beschreibung']."</td>";
				echo"<td>".$row['Gruendungsjahr']."</td>";
				echo"<td>".$row['Mitgliederanzahl']."</td>";
				echo"<td><a href='?dellID=".$row['ID_supporters']."&content=supdeleteID'>delete</a></td>";


				echo"</tr>";
				
				$count++;
			}	

		?>
		</table>
		
		<?php
		

			
	?>
	</p>

2. Datei/Quelltext

PHP:
<h2>Eintrag löschen</h2>
	<p>
	
		<?php
		
			// Verbindung zur Datenbank
			
			$conncetion = mysql_connect ("localhost", "nix", "nix");
			
			
			// Datenbank auswählen
			$db = mysql_select_db("96kader");
			
			// SQL-Anweisung 

			mysql_query("DELETE FROM `fanclubs` WHERE ID_supporters='".mysql_real_escape_string($_GET['ID_supporters'])."'"); 
			
			

			?>

 

			Die Daten wurden gelöscht<br>

			
			
			
			
			// Verbindung schließen
			mysql_close($conncetion);
		
			
		?>

Es kommt bei mir immer die Fehlermeldung " Content wurde nicht erkannt ". Ich hatte erst versucht die Löschanweisung mit auf eine Seite zu packen, jedoch habe ich nach einigem googlen und Tutorials lesen gesehen das es meistens mit 2 Seiten gelöst wird.
Wenn man mit einem Projekt nicht weiter kommt, treibt es einem schier zur Verzweiflung. Vor allem Wenn um soetwas einfaches geht.

Vielen Dank für die Hilfe
 
Die fehlermeldung ist natürlich "komisch", da dieser Text nicht einmal in deinem Skript vorkommt. Desweiteren fehlt da auch einmal das PHP-Start-Tag.
 
Hi und Willkommen bei tutorials.de,

Die Meldung kommt also beim Löschen (dh. Anzeigen geht)?
Ist das die genaue Meldung? Oder verkürzt, übersetzt...

Beim Code 2, vorm mysql_close, fehlt ein <?php
Aber das sollte nicht das Hauptproblem sein.

Wenn du grad erst beim Neuentwickeln bist, steig vllt. auf mysqli um.
mysql_... ist veraltet und ist in Zukunft eventuell gar nicht mehr bei PHP dabei.
(Übrigens, es heißt connection, nicht conncetion. Ist aber auch nur ein Schönheitsfehler).

Kannst du ca. eingrenzen, bei welchen Codezeilen die Meldung auftritt?

PS: Nur, falls das im Code deine echten Zugangsdaten zu DB waren: Besser aufpassen :)
Habs entfernt. Und den Benutzernamen zu verwenden ist...naja.
 
Danke für die schnelle Antwort, manchmal brauch man nur einen kleinen anstupser. Die Fehlermeldung kam weil ich supdeleteID nocht nicht in der index datei hinterlegt hatte, die fehlermeldung ist behoben. Nun kommt die Fehlermeldung
"
Notice: Undefined index: ID_supporters in K:\CMS-Labor\xampp\htdocs\3sem - Menu Test\contents\supdeleteID.php on line 16"
 
Hallo sheel, danke das du die Daten rausgenommen hast. Ich habe den Fehler gerade gefunden.


mysql_query("DELETE FROM `fanclubs` WHERE ID_supporters='".mysql_real_escape_string($_GET['dellID'])."'");

statt ($_GET['ID_supporters']) --> ($_GET['dellID'])

Vielen Dank!

edit;
Vielen Dank für Eure Hilfe, ich bin nun dabei den Datensatz bearbeiten zu können. Mein Quelltext sieht wie folgt aus:

Die ID nehme ich vorher in einer anderen Datei mit , mit
PHP:
echo"<td><a href='?dellID=".$row['ID_supporters']."&content=supdeleteID'>löschen</a>
						<a href='?updateID=".$row['ID_supporters']."&content=supupdate'>bearbeiten</a>
.

In der zweiten Datei möchte ich sie dann auffangen und bearbeiten:

PHP:
<?php

	

	

			// Verbindung zur Datenbank
			
			$conncetion = mysql_connect ("localhost", "XXXXX", "XXXXX");
			
			
			//Row
			
			$ID_supporters = $_GET['updateID'];
			
			
			// Datenbank auswählen
			$db = mysql_select_db("96kader");
			
			
			//sql Anweisung
		
			$sql="SELECT * FROM fanclubs WHERE ID_supporters = $ID_supporters";
	
				$result = mysql_query($sql);
	
				if (!$result){
		
					die('Fehler: '.mysql_error());
	 
				$row = mysql_fetch_array($result); //Datensätze in Var $row ablegen
			
			// SQL-Anweisung Datensatz anpassen
			
			if (isset($_POST['Name']) ) {
	
				$Name = $_POST['Name'];
				$Beschreibung = $_POST['Beschreibung'];
				$Gründungsjahr = $_POST['Gründungsjahr'];
				$Mitgliederanzahl = $_POST['Mitgliederanzahl'];
			
			
			$sql = "UPDATE fanclubs
	
			SET
			
			Name=$'Name',
			Beschreibung=$'Beschreibung',
			Gründungsjahr=$'Gründungsjahr',
			Mitgliederanzahl=$'Mitgliederanzahl'
			WHERE
			ID_supporters = $ID_supporters
			";
			
			
	$result =mysql_query($sql);
	
		if(!result){
		
			die('Fehler: '.mysql_error());
			}else{
			echo"Datensatz angepasst!";
			}
		}	
		//sql Anweisung
		
			$sql="SELECT * FROM fanclubs WHERE ID_supporters = $ID_supporters";
	
				$result = mysql_query($sql);
	
				if (!$result){
		
					die('Fehler: '.mysql_error());
	 
				$row = mysql_fetch_array($result); //Datensätze in Var $row ablegen
		
			
			// Verbindung schließen
			mysql_close($conncetion);
		
		
		}}

?>

<h2>Fanclub eintragen</h2>
<p>

	<form action="" method="post">
	
	<table  border="0" cellpadding="0" cellspacing="4">

	<tr>
		<td>
		Name
		</td>
		
		<td>
		<input size="36" type="text" name="Name" value="<?php echo $row['Name'];?>"/>
		</td>
	</tr>
	
	<tr>
		<td>
		Beschreibung
		</td>
		
		<td>
		<textarea name="Beschreibung" cols="30" rows="10"value="<?php echo $row['Beschreibung'];?>"></textarea>
		</td>
	</tr>
	
	<tr>
		<td>
		Gründungsjahr
		</td>
		
		<td>
		<input size="36" type="text" name="Gründungsjahr" value="<?php echo $row['Gründungsjahr'];?>" />
		</td>
	</tr>
	
	<tr>
		<td>
		Mitgliederanzahl
		</td>
		
		<td>
		<input size="36" type="text" name="Mitgliederanzahl" value="<?php echo $row['Mitgliederanzahl'];?>" />
		</td>
	</tr>
	
	<tr>
		<td>
		<input type="submit"/>
		</td>
	</tr>
		
	</table>
	
	</form>

</p>

Ich bekomme nun im Forumar in jedem Feld eine Fehlermeldung "fine<br /><b>Notice</b>: Unded variable: row in <b>K:\CMS-Labor\xampp\htdocs\Hannover 96 Fanseite\contents\supupdate.php</b> on line <b>99</b><br />"

Ich war eigtl der Meinung das ich die Daten in row abgelegt hatt.
 
Hi

du hast da Klammerungsfehler.
Nach dem ersten select ist ein if(!$result)...die('Fehler: '.mysql_error());...
Und in dem if ist der gesamte restliche PHP-Block drin.
 
Hi, super! Jetzt funktioniert es. Mit den Klammern muss man ja echt ein Fuchs sein. Das einzige bestehende Problem ist, das in dem Formular Feld "Beschreibung" nichts angezeigt wird. Liegt es daran das es eine Textarea ist?
 
Textarea hat kein "value=", das musst du so schreiben:

PHP:
<textarea name="Beschreibung" cols="30" rows="10"><?php echo $row['Beschreibung'];?></textarea>
 
alles klar! Vielen Dank, Ich hoffe ich kann mich iwann revanchieren !

Wenn ich jetzt auf daten absenden klicke, kommen leider wieder zwei Fehlermeldungen.
Zuerst aber erstmal der aktuelle php Code,
PHP:
<?php

	

	

			// Verbindung zur Datenbank
			
			$conncetion = mysql_connect ("localhost", "XXXX", "XXXX");
			
			
			//Row
			
			$ID_supporters = $_GET['updateID'];
			
			
			// Datenbank auswählen
			$db = mysql_select_db("96kader");
			
			
			//sql Anweisung
		
			$sql="SELECT * FROM fanclubs WHERE ID_supporters = $ID_supporters";
	
				$result = mysql_query($sql);
	
				if (!$result){
		
					die('Fehler: '.mysql_error());}
	 
				$row = mysql_fetch_array($result); //Datensätze in Var $row ablegen
			
			// SQL-Anweisung Datensatz anpassen
			
			if (isset($_POST['Name']) ) {
	
				$Name = $_POST['Name'];
				$Beschreibung = $_POST['Beschreibung'];
				$Gruendungsjahr = $_POST['Gruendungsjahr'];
				$Mitgliederanzahl = $_POST['Mitgliederanzahl'];
			
			
			$sql = "UPDATE fanclubs
	
			SET
			
			Name=$'Name',
			Beschreibung=$'Beschreibung',
			Gruendungsjahr=$'Gruendungsjahr',
			Mitgliederanzahl=$'Mitgliederanzahl'
			WHERE
			ID_supporters = $ID_supporters
			";
			
			
	$result =mysql_query($sql);
	
		if(!result){
		
			die('Fehler: '.mysql_error());
			}else{
			echo"Datensatz angepasst!";
			}
		}	
		//sql Anweisung
		
			$sql="SELECT * FROM fanclubs WHERE ID_supporters = $ID_supporters";
	
				$result = mysql_query($sql);
	
				if (!$result){
		
					die('Fehler: '.mysql_error());
	 
				$row = mysql_fetch_array($result); //Datensätze in Var $row ablegen
		
			
			// Verbindung schließen
			mysql_close($conncetion);
		
		
		} 

?>

<h2>Fanclub eintragen</h2>
<p>

	<form action="" method="post">
	
	<table  border="0" cellpadding="0" cellspacing="4">

	<tr>
		<td>
		Name
		</td>
		
		<td>
		<input size="36" type="text" name="Name" value="<?php echo $row['Name'];?>"/>
		</td>
	</tr>
	
	<tr>
		<td>
		Beschreibung
		</td>
		
		<td>
		<textarea name="Beschreibung" cols="30" rows="10"><?php echo $row['Beschreibung'];?></textarea>
		</td>
	</tr>
	
	<tr>
		<td>
		Gründungsjahr
		</td>
		
		<td>
		<input size="36" type="text" name="Gründungsjahr" value="<?php echo $row['Gruendungsjahr'];?>" />
		</td>
	</tr>
	
	<tr>
		<td>
		Mitgliederanzahl
		</td>
		
		<td>
		<input size="36" type="text" name="Mitgliederanzahl" value="<?php echo $row['Mitgliederanzahl'];?>" />
		</td>
	</tr>
	
	<tr>
		<td>
		<input type="submit"/>
		</td>
	</tr>
		
	</table>
	
	</form>

</p>

Die Fehlermeldungen:

Notice: Undefined index: Gruendungsjahr in K:\CMS-Labor\xampp\htdocs\Hannover 96 Fanseite\contents\supupdate.php on line 39

Notice: Use of undefined constant result - assumed 'result' in K:\CMS-Labor\xampp\htdocs\Hannover 96 Fanseite\contents\supupdate.php on line 58

Gruendungsjahr ist ja eigtl in ' ' geschrieben.

ich glaube es muss $result heißen. Da es sich um Notice handelt und nicht um einen Error wundert es mich um so mehr das die Datensätze noch nicht angepasst werden.
 
Zurück