Frage bei Mysql - Update -> Fehler

Shadow

Mitglied
Hallo !
Ich hoffe Ihr könnt mir bei meinem Problem helfen. Suche den Fehler schon seit einiger Zeit.
Zuerst dachte ich dass die "Meldung" an die falsche Seite geschickt wird, da nichts in der Datenbank geupdated wird.... Aber die Adresse stimmt - funktioniert auch bei einem ähnlichen Script.

Der ganze Script ist eigentlich ein Formular - lädt Daten mit einer bestimmten ID - der Inhalt wird dann in die Formularfelder geladen ( funktioniert problemlos - danach kann man Änderungen machen -> dies funktioniert aber leider nicht - Fehler wird keiner angezeigt !

vielen Dank für jede hilfreiche Antwort

mfg
Shadow


PHP:
<?php
$host= "blub";
$user= "blub";
$passwort= "blub";
$datenbank= "blub";
$tabelle= "blub";


/* Zugriff auf SQL-Server und Abfragen der Tabelle */ 
MYSQL_CONNECT($host, $user, $passwort) or die ( "<H3>Datenbankserver nicht erreichbar</H3>");
MYSQL_SELECT_DB($datenbank) or die ( "<H3>Datenbank nicht vorhanden</H3>");


if ($edit != 1)
{
$result=MYSQL_QUERY( "SELECT date,headline,summary,content,image,link1,link2,link3,link4,link1name,link2name,link3name,link4name,quelle,quellename,download,autor FROM $tabelle WHERE id LIKE $id");	
while($row  =  mysql_fetch_array($result))  
{
?>
Formular das mit Inhalten aus der Datenbank gefüllt wird
[edit by Marcus R.]
<?php

}
}
else
{
	$update = "UPDATE $tabelle SET headline='$headline',summary='$summary',content='$content',image='$gfx',link1='$link1',link2='$link2',link3='$link3',link4='$link4',link1name='$link1name',link2name='$link2name',link3name='$link3name',link4name='$link4name',quelle='$quelle',quellename='$quellename',download='$d1' WHERE id='$id'";
	$updaten = mysql_query($update);

	if (!$updaten)
  		echo "Fehler aufgetreten!";
	else
  	{
		echo "<p align=\"center\" style=\"color:green\">News wurden bearbeitet.</p>";
		echo "<p align=\"center\"><a href=\"http://gameswar.perfect-instinct.com/index.php?page=adminpanel.php\">Zum Admin-Panel</a></p>";
	}
}


MYSQL_CLOSE();
?>
 
Wie wäre es denn, wenn du mal den Codeausschnitt, auf die relevanten Passangen kürzt. Dann sprengt das zu einen das HP Layout in der Breite nicht so und ausserdem kann man dir dann eventuell auch schneller helfen.

Ausserdem überdenke mal bitte den folgenden Satz
Der ganze Script ist eigentlich ein Formular - lädt Daten mit einer bestimmten ID - der Inhalt wird dann in die Formularfelder geladen ( funktioniert problemlos - danach kann man Änderungen machen -> dies funktioniert aber leider nicht - Fehler wird keiner angezeigt !
Pardon da werde ich nicht schlau draus. Spiegelstriche sind zwar offizielle Satzzeichen der deutschen Sprache, der sinnvolle Gebrauch von Kommata ist aber mitunter sinnvoller.
 
Nun denn... dann mal von vorne :-)


Die relevanten Codestücke sind eigentlich :

PHP:
<?php
$host= "blub";
$user= "blub";
$passwort= "blub";
$datenbank= "blub";
$tabelle= "blub";


/* Zugriff auf SQL-Server und Abfragen der Tabelle */ 
MYSQL_CONNECT($host, $user, $passwort) or die ( "<H3>Datenbankserver nicht erreichbar</H3>");
MYSQL_SELECT_DB($datenbank) or die ( "<H3>Datenbank nicht vorhanden</H3>");

if ($edit != 1)
{
$result=MYSQL_QUERY( "SELECT  date,headline,summary,content,image,link1,
link2,link3,link4,link1name,link2name,
link3name,link4name,quelle,quellename,
download,autor FROM $tabelle WHERE id LIKE $id");    
while($row  =  mysql_fetch_array($result))  
{
?>
// Hier ist dann normalerweise das Formular 
// In den einzelnen Formular-Textfeldern wird der Inhalt der 
// jeweils kongruenten SQL - Spalte angezeigt ( damit man diesen
// dann verändern kann ) 


<form action="index.php?page=news/editnews.php&edit=1" method="post" name"eintragung">
// Action die ausgeführt wird

<input type="image" name="edit" src="images/button_weiter.gif">
// Submitknopf am Ende des Formulars


<?php

}
}
else
{
    
// update syntax
$update = "UPDATE $tabelle SET  headline='$headline',
summary='$summary',content='$content', image='$gfx',
link1='$link1',link2='$link2', link3='$link3',
link4='$link4',link1name='$link1name', link2name='$link2name'
,link3name='$link3name',
link4name='$link4name',
quelle='$quelle',
quellename='$quellename',
download='$d1' WHERE id='$id'";


    $updaten = mysql_query($update);

    if (!$updaten)
          echo "Fehler aufgetreten!";
    else
      {
        echo "<p align=\"center\" style=\"color:green\">News wurden bearbeitet.</p>";

        echo "<p align=\"center\"><a href=\"http://xxx\">irgendein Link</a></p>";
    }
}


MYSQL_CLOSE();
?>


wenn ich nun den inhalt der jeweiligen textfelder
ändere und später den submit-knopf betätige,
so wird die Meldung "News wurden bearbeitet" angezeigt,
doch wenn man den Inhalt der Tabelle mittels
phpmyadmin überprüft, so hat sich nichts am
ursprungszustand getan.

naja, nach nochmaligem überlesen des letzten satztes,
kommen mir langsam zweifel über meinen geisteszustand
in den sinn :-)


mfg
 
Das Problem, was ich mit deinem Code habe setzt sich aus zwei Teilen zusammen.
1) Wo übergibts du die ID, die mittels WHERE id = '$id' angesprochen wird ?
2) Wo explizit rufst du das mysql_query denn auf ? Ich bin mir nicht so ganz sicher,
ob das gegenprüfen mit if(!query) automatisch dazu führt, dass das query ausgeführt wird.
Meiner Meinung nach ist die Syntax ein wenig unscharf.
 
Andererseits kann es auch mit der Variablenübergabe zusammenhängen.
Seit PHP 4.x (weis auch nicht mehr genau welche) gibt es die Einstellunge register_globals(). Wenn diese auf "off" steht, dann kann es so nicht funktionieren wie du es geschildert hast.
Du solltest deine Formularvaribalen mittels
PHP:
$_POST['varname'];
oder
$_GET['varname'];
je nachdem wie du die Variablen in deinem Formular weitergibst, ansprechen.

Desweiteren ist mir nicht ersichtlich wo du die Variable "ID" herhast und/oder weitergibst.
 
hmmm

Hallo !

register_globals ist ON

id wird per url aufgerufen :

PHP:
http://beispiel.com/index.php?page=news/news_edit.php&id=4


könnt ihr mir vielleicht helfen ???
 
id wird nicht übergeben

hmm hab einige tests durchgeführt - bin zum schluss gekommen dass die id im formular nie übergeben wird. somit kann auch nichts geändert werden, wo keine id bekannt ist. leider weiss ich nicht warum die id nicht übergeben wird ??
kann mir jemand helfen ?
 
Arbeite mit dem $_REQUEST[] Array, check nochmal ob du das ganze auch richtig einbindest.
Vielleicht nicht irgendwo Id statt id oder ID oder iD geschrieben hast ;)
 
gg

danke aber ich habe den fehler schon gefunden ^^

PHP:
<form action="<?php echo "index.php?page=news/news_edit.php&action=update&editid=$edit" ?>

das <?php war der FEHLER !!
hmm so ein idiotischer fehler !!

vielen dank für eure antworten !
mfg
 
Zurück