Editier-Funktion

PHP-Fan

Erfahrenes Mitglied
Hallo,

ich bin am Verzweifeln. Ich suche seit 22 Uhr danach wie man einträge editieren kann. Mein Script besteht darin, dass man Partner Links eintragen kann mit dazugehöriger Banner-URL. Das eintragen funktioniert super er zeigt auch alles an. Das editieren dagegen überhaupt nicht. Ich habe schon alles ausprobiert. Versucht habe ich bisher, die Inhalte anzeigen zu lassen und hinter jedem Inhalt ein Edit Button gemacht und auf die URL eingestellt. Quasi:

PHP:
'partner_edit_eingabe.php?id=$ausgabe[id]'

Er zeigt auch die neue Seite an und wenn ich die Felder editiere kommt auch EIntrag erfolgreich, editiert hat er es aber nicht wirklich.

Ich hoffe ihr könnt mir helfen...

partner_edit.php (anzeige)

PHP:
<?php

$host = "localhost";
$user = "-";
$password = "-";
$dbname = "usr_web3_2";
$tabelle ="f95_partner";

$dbverbindung = mysql_connect ($host, $user, $password);

$dbanfrage = "SELECT * from $tabelle";
$result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);

 while ($ausgabe = mysql_fetch_array ($result))
 {
 print ("
<table width='60%' div align='center'>
<tr>
<td width='50%'><font size='1' face='Verdana' color='#FFFFFF'>
<a href='$ausgabe[site_url]' target='_blank'><img src='$ausgabe[banner_url]' witdh='468' height='60' border='0'></a><br>
Seiten-URL: $ausgabe[site_url]<br>
Banner-URL: $ausgabe[banner_url]<br>
</td>

<td witdh='50%' div align='left'><font size='1' face='Verdana' color='#FFFFFF'>
<b>»</b> <a href='partner_edit_eingabe.php?id=$ausgabe[id]'>Editieren</a>
</td>
</tr>
</table><br>");
 }

mysql_close ($dbverbindung)


?>

partner_edit_eingabe.php (formular)

PHP:
<form action="partner_edit_made.php" method=post>


Banner-URL: <input type=text name="Array[banner_url]" size=60><br>
Seiten-URL: <input type=text name="Array[site_url]" size=60><br>
<input type='hidden' name='Array[id]' value="".$_GET['id'].""> 
<br>
<br>
<input type=submit name="editieren" value="ok">

partner_edit_made.php (Vearbeitung)

PHP:
<?php

$host = "localhost";
$user = "-";
$password = "-";
$dbname = "usr_web3_2";
$tabelle ="f95_partner";

$dbverbindung = mysql_connect ($host, $user, $password);

$dbanfrage = "UPDATE `".$tabelle."` SET `banner_url` = '".$_POST['banner_url']."' WHERE `id` = '".$_GET['id']."';";

if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
print ("Datenbankeintrag erfolgreich.");
} else {
print ("Es traten Probleme beim editieren auf.");
}
mysql_close ($dbverbindung);

?>

Ich hoffe das ihrmir helfen könnt,!
 
Re: Editier funktion

Hier mal als Anregung meine links.php
Da ist alles drin, also einfuegen, editieren, loeschen und anzeigen.

links.php
PHP:
<?php
$changesection="main";
if (isset($_GET['view']))
	{
		$view=$_GET['view'];
	}
if (($accesslevel==255) && (!isset($view)))
	{
		if (isset($_POST['insert']))
			{
				$insert=$_POST['insert'];
			}
		if (isset($_POST['update']))
			{
				$update=$_POST['update'];
			}
		if (isset($_GET['delete']))
			{
				$delete=$_GET['delete'];
			}
		if (isset($_GET['edit']))
			{
				$edit=$_GET['edit'];
			}
		if (isset($insert))
			{
				if (isset($_POST['title']))
					{
						$title=$_POST['title'];
					}
				if (isset($_POST['url']))
					{
						$url=$_POST['url'];
					}
				if (isset($_POST['description']))
					{
						$description=$_POST['description'];
					}
				if ((!empty($title)) && (!empty($url)) && (!empty($description)))
					{
						mysql_query("insert into links (title,url,description) values ('$title','$url','$description')",$db);
						$changes[$changesection].='Link <b>'.$title.'</b> has been inserted into database<br>';
					}
				else
					{
						$changes[$changesection].='Link could not be inserted into database<br>';
						if (empty($title))
							{
								$changes[$changesection].='Title missing<br>';
							}
						if (empty($url))
							{
								$changes[$changesection].='URL missing<br>';
							}
						if (empty($description))
							{
								$changes[$changesection].='Description missing<br>';
							}
						$changes[$changesection].='<hr>';
					}
			}
		if (isset($update))
			{
				if (isset($_POST['linkid']))
					{
						$linkid=$_POST['linkid'];
					}
				if (isset($_POST['title']))
					{
						$title=$_POST['title'];
					}
				if (isset($_POST['url']))
					{
						$url=$_POST['url'];
					}
				if (isset($_POST['description']))
					{
						$description=$_POST['description'];
					}
				$links=mysql_query("select * from links where id='$linkid'",$db);
				$link=mysql_fetch_assoc($links);
				if ((!empty($title)) && ($title!=$link['title']))
					{
						mysql_query("update links set title='$title' where id='$linkid'",$db);
						$changes[$changesection].='Title has been changed to <b>'.$title.'</b><br>';
					}
				$links=mysql_query("select * from links where id='$linkid'",$db);
				$link=mysql_fetch_assoc($links);
				if ((!empty($url)) && ($url!=$link['url']))
					{
						mysql_query("update links set url='$url' where id='$linkid'",$db);
						$changes[$changesection].='URL has been changed to <b>'.$url.'</b><br>';
					}
				$links=mysql_query("select * from links where id='$linkid'",$db);
				$link=mysql_fetch_assoc($links);
				if ((!empty($description)) && ($description!=$link['description']))
					{
						mysql_query("update links set description='$description' where id='$linkid'",$db);
						$changes[$changesection].='Description has been changed to <b>'.$description.'</b><br>';
					}
			}
		if (isset($delete))
			{
				$links=mysql_query("select * from links where id='$delete'",$db);
				$link=mysql_fetch_assoc($links);
				mysql_query("delete from links where id='$delete'",$db);
				$changes[$changesection].='Link <b>'.$link['title'].'</b> has been deleted from database<br>';
			}
		$changes[$changesection].='<form method="post" action="index.php?subsite=links.php'.$sessionparm_link.'">';
		$changes[$changesection].='<table class="vistable">';
		if (isset($edit))
			{
				$links=mysql_query("select * from links where id='$edit'",$db);
				$link=mysql_fetch_assoc($links);
				$changes[$changesection].='<tr><td>Title:</td><td><input type="text" name="title" value="'.$link['title'].'"></td></tr>';
				$changes[$changesection].='<tr><td>URL:</td><td><input type="text" name="url" value="'.$link['url'].'"></td></tr>';
				$changes[$changesection].='<tr><td>Description:</td><td><input type="text" name="description" value="'.$link['description'].'"></td></tr>';
				$changes[$changesection].='</table>';
				$changes[$changesection].='<input type="hidden" name="linkid" value="'.$link['id'].'">';
				$changes[$changesection].='<input type="submit" name="update" value="Update Link">';
				$changes[$changesection].='<input type="submit" name="cancel" value="Cancel">';
			}
		else
			{
				$changes[$changesection].='<tr><td>Title:</td><td><input type="text" name="title"></td></tr>';
				$changes[$changesection].='<tr><td>URL:</td><td><input type="text" name="url"></td></tr>';
				$changes[$changesection].='<tr><td>Description:</td><td><input type="text" name="description"></td></tr>';
				$changes[$changesection].='</table>';
				$changes[$changesection].='<input type="submit" name="insert" value="Add Link">';
				$changes[$changesection].='</form>';
				$changes[$changesection].='<table class="vistable" border="1">';
				$changes[$changesection].='<tr><th>Title</th><th>URL</th><th>Description</th><th colspan="2">Action</th></tr>';
				$links=mysql_query("select * from links order by title",$db);
				while ($link=mysql_fetch_assoc($links))
					{
						$changes[$changesection].='<tr><td>'.$link['title'].'</td><td>'.$link['url'].'</td><td>'.$link['description'].'</td>';
						$changes[$changesection].='<td><a href="index.php?subsite=links.php&amp;edit='.$link['id'].$sessionparm_link.'">Edit</a></td>';
						$changes[$changesection].='<td><a href="index.php?subsite=links.php&amp;delete='.$link['id'].$sessionparm_link.'">Delete</a></td>';
						$changes[$changesection].='</tr>';
					}
				$changes[$changesection].='</table>';
			}
	}
else
	{
		$changes[$changesection].='<table class="vistable" border="1">';
		$changes[$changesection].='<tr><th>Title</th><th>Description</th></tr>';
		$links=mysql_query("select * from links order by title",$db);
		while ($link=mysql_fetch_assoc($links))
			{
				$changes[$changesection].='<tr>';
				$changes[$changesection].='<td><a href="'.$link['url'].'">'.$link['title'].'</a></td>';
				$changes[$changesection].='<td>'.$link['description'].'</td></tr>';
			}
		$changes[$changesection].='</table>';
	}
?>
 
Zuletzt bearbeitet:
Re: Editier funktion

Hi,

für mich sieht es so aus, als ob Du post und get verwechselst.

Wenn Du von der partner_edit.php in die partner_edit_eingabe.php Datei springst ist das get ok. Danach trägst Du die Variable $_GET['id'] aber in ein Formular ein, welches Du per Post abschickst.

<form action="partner_edit_made.php" method=post>
<input type='hidden' name='Array[id]' value="".$_GET['id']."">


In der partner_edit_made.php fragst Du dann aber wieder $_GET['id'] ab

$dbanfrage = "UPDATE `".$tabelle."` SET `banner_url` = '".$_POST['banner_url']."' WHERE `id` = '".$_GET['id']."';";

Änder das mal in

$dbanfrage = "UPDATE `".$tabelle."` SET `banner_url` = '".$_POST['banner_url']."' WHERE `id` = '".$_POST['id']."';";

So auf den ersten Blick könnte es daran liegen.

Marcus.
 
Re: Editier funktion

Das Get ist bei links (<a>...</a>) richtig. Bei deinem Formular verwendest Du aber Post.

$dbanfrage = "UPDATE `".$tabelle."` SET `banner_url` = '".$_POST['banner_url']."' WHERE `id` = '".$_POST['id']."'";
 
Re: Editier funktion

Ok keine Fehlermeldung mehr. Er sagt er habe es erfolgreich editiert - ändern aber tut sich nichts!
 
Zuletzt bearbeitet:
Re: Editier funktion

Kann mir denn keiner helfen egal was ich ausprobiere, gleiches Ergebniss oder es geht gar nicht...
 
Re: Editier funktion

partner_edit_made.php:

PHP:
<?php 
$host = "localhost"; 
$user = "-"; 
$password = "-"; 
$dbname = "usr_web3_2"; 
$tabelle ="f95_partner"; 
$dbverbindung = mysql_connect ($host, $user, $password); 
$dbanfrage = "SELECT * from $tabelle"; 
$result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung); 
while ($ausgabe = mysql_fetch_array ($result)) 
{ 
print (" 
<table width=\"60%\" div align=\"center\"> 
<tr> 
<td width=\"50%\"><font size=\"1\" face=\"Verdana\" color=\"#FFFFFF\"> 
<a href=\"$ausgabe[site_url]\" target=\"_blank\"><img src=\"$ausgabe[banner_url]\" witdh=\"468\" height=\"60\" border=\"0\"></a><br> 
Seiten-URL: $ausgabe[site_url]<br> 
Banner-URL: $ausgabe[banner_url]<br> 
</td> 
<td witdh=\"50%\" div align=\"left\"><font size=\"1\" face=\"Verdana\" color=\"#FFFFFF\"> 
<b>»</b> <a href=\"partner_edit_eingabe.php?id=$ausgabe[id]\">Editieren</a> 
</td> 
</tr> 
</table><br>"); 
} 
mysql_close ($dbverbindung) 
 
?>

partner_edit_eingabe.php:

PHP:
<?
$host = "localhost"; 
$user = "-"; 
$password = "-"; 
$dbname = "usr_web3_2"; 
$tabelle ="f95_partner"; 
$dbverbindung = mysql_connect ($host, $user, $password); 
$dbanfrage = "SELECT * from $tabelle WHERE id='$_GET[id]'"; 
$result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung); 
while ($ausgabe = mysql_fetch_array ($result))
echo "<form action=\"partner_edit.php\" method=\"post\"> 
 
Banner-URL: <input type=text name=\"Array[banner_url]\" size=60 value=\"$ausgabe[banner_url]\"><br> 
Seiten-URL: <input type=text name=\"Array[site_url]\" size=60 value=\"$ausgabe[site_url]\"><br> 
<input type=\"hidden\" name=\"Array[id]\" value=\"$_GET[id]\"> 
<br> 
<br> 
<input type=submit name=\"editieren\" value=\"ok\"> 
</form>";
?>

partner_edit.php:

PHP:
<?php 
$host = "localhost"; 
$user = "-"; 
$password = "-"; 
$dbname = "usr_web3_2"; 
$tabelle ="f95_partner"; 
$dbverbindung = mysql_connect ($host, $user, $password); 
$dbanfrage = "UPDATE $tabelle SET banner_url='$Array[banner_url]' , site_url='$Array[site_url]' WHERE id='$Array[id]'";
if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) { 
print ("Datenbankeintrag erfolgreich."); 
} else { 
print ("Es traten Probleme beim editieren auf."); 
} 
mysql_close ($dbverbindung); 
?>

Dürfte funktionieren... die Variablen werden aus der DB ausgelesen und zur edit in die input Felder gesetzt um zu sehen ob vl. ein Fehler in der URL ist...

Habs nicht getestet...
 
Zuletzt bearbeitet:
Zurück