mit Datenbankeinträgen (PHP&MySQL)

Status
Für weitere Antworten geschlossen.

jojoD

Registered +
Registriert
Aug. 2004
Beiträge
224
Das Script soll die Daten aus einer Tabelle auslesen, in Input-Felder zur Bearbeitung stecken und dann nach Buttonklick wieder reinschreiben. Allerdings macht er das nicht, sondern löscht die Einträge in name und logo und aktualisiert die restlichen Einträge nicht. Wo liegt mein Fehler? Hier der teil des scripts der für die o.g. Aufgaben zuständig ist:

------------------------------------------------------------

$result=mysql_query("SELECT * FROM tabelle WHERE id='$id'");
$i=mysql_fetch_object($result);
$name=$i -> name;
$logo=$i -> logo;
$saisons=$i -> saisons;
$sh=$i -> sh;
$sg=$i -> sg;
$uh=$i -> uh;
$ug=$i -> ug;
$nh=$i -> nh;
$ng=$i -> ng;
$toreh=$i -> toreh;
$toreg=$i -> toreg;
$gtoreh=$i -> gtoreg;
$gtoreg=$i -> gtoreg;
$punkteh=$i -> punkteh;
$punkteg=$i -> punkteg;
$abzug=$i -> abzug;
?>

Name:
Logo:
Saisons:
Heimsiege:
Auwärtssiege:
Heimunentschieden:
Auswärtsunentschieden:
Heimniederlagen:
Auswärtsniederlagen:
Heimtore:
Auswärtstore:
Heimgegentore:
Heimgegentore:
Punktabzug (positiv angeben):
zur Auswahl


$name=$_POST['name'];
$logo=$_POST['logo'];
$saisons=$_POST['saisons'];
$sh=$_POST['sh'];
$sg=$_POST['sg'];
$uh=$_POST['uh'];
$ug=$_POST['ug'];
$nh=$_POST['nh'];
$ng=$_POST['ng'];
$toreh=$_POST['toreh'];
$toreg=$_POST['toreg'];
$gtoreh=$_POST['gtoreg'];
$gtoreg=$_POST['gtoreg'];
$punkteh=$_POST['punkteh'];
$punkteg=$_POST['punkteg'];
$abzug=$_POST['abzug'];
$query="UPDATE tabelle SET"
."name='$name',"
."logo='$logo',"
."saisons='$saisons',"
."sh='$sh',"
."sg='$sg',"
."uh='$uh',"
."ug='$ug',"
."nh='$nh',"
."ng='$ng',"
."toreh='$toreh',"
."toreg='$toreg',"
."gtoreh='gtoreh',"
."gtoreg='$gtoreg',"
."abzug='$abzug'"
."WHERE id=$id";
$result=mysql_query($query);

------------------------------------------------------------

Vielen Dank im Voraus für eure Hilfe!
 
also erstens schreibfehler:
Code:
$gtoreh=$i -> gtoreg;
Code:
$gtoreh=$_POST['gtoreg'];
Code:
."WHERE id=$id";
ob die direkt was mit deinem momentanen Fehler zu zun haben glaube ich allerdings nicht.

eine etwas andere lösung:
PHP:
$result=mysql_query("SELECT * FROM tabelle WHERE id='$id'");
$i = mysql_fetch_array($result,MYSQL_ASSOC);
?>

[TABLE]

[TR]
[td]Name:[/td][td]">[/td]
[/TR]

[TR]
[td]Logo:[/td][td]">[/td]
[/TR]

[TR]
[td]Saisons:[/td][td]">[/td]
[/TR]

[TR]
[td]Heimsiege:[/td][td]">[/td]
[/TR]

[TR]
[td]Auwärtssiege:[/td][td]">[/td]
[/TR]

[TR]
[td]Heimunentschieden:[/td][td]">[/td]
[/TR]

[TR]
[td]Auswärtsunentschieden:[/td][td]">[/td]
[/TR]

[TR]
[td]Heimniederlagen:[/td][td]">[/td]
[/TR]

[TR]
[td]Auswärtsniederlagen:[/td][td]">[/td]
[/TR]

[TR]
[td]Heimtore:[/td][td]">[/td]
[/TR]

[TR]
[td]Auswärtstore:[/td][td]">[/td]
[/TR]

[TR]
[td]Heimgegentore:[/td][td]">[/td]
[/TR]

[TR]
[td]Heimgegentore:[/td][td]">[/td]
[/TR]

[TR]
[td]Punktabzug (positiv angeben):[/td][td]">[/td]
[/TR]

[TR]
[td][URL='https://finale.freesoft-board.to/bearbeiten.php']zur Auswahl[/URL][/td]
[/TR]

[/TABLE]


$upd="UPDATE tabelle SET "
."name='$name',"
."logo='$logo',"
."saisons='$saisons',"
."sh='$sh',"
."sg='$sg',"
."uh='$uh',"
."ug='$ug',"
."nh='$nh',"
."ng='$ng',"
."toreh='$toreh',"
."toreg='$toreg',"
."gtoreh='gtoreh',"
."gtoreg='$gtoreg',"
."abzug='$abzug'"
."WHERE id='$id'";
mysql_query($upd) or die(mysql_error());
?>

natürlich nicht getestet...
 
Danke erstmal. Geht aber auch nicht. Saison und Logo werden geleert und der Rest 0 gesetzt :(

Kann es evtl. auch daran liegen, dass ich es mit XAMPP teste?
 
XAMPP ... das ist gut möglich.
vieleicht musst du in der php.ini noch was ändern.
(register globals?) bin mir da aber nicht sicher. Ich teste nie Lokal.

versuch mal ne andere schreibweise.. beim Update.
sieht für mich zwar nach demselben aus, aber man weiss ja nie...

PHP:
$upd="UPDATE tabelle SET name='$name', logo='$logo', saisons='$saisons', sh='$sh', sg='$sg', uh='$uh', ug='$ug', nh='$nh', ng='$ng', toreh='$toreh', gtoreh='gtoreh', gtoreg='$gtoreg', abzug='$abzug' WHERE id='$id'";
mysql_query($upd)or die(mysql_error());
?>

ausserden prüfe einmal ob die Variablen auch wirklich verfügbar sind.
gib vor dem update den namen oder das Logo aus.

PHP:
echo "$name";
wenn der Name nicht angezeigt wird, sind die Variablen nicht verfügbar.
dann sind alle werte = '' und wenn du in der Datenbank INTEGER Felder hast, sind diese = '0'
was ja bei dir der fall ist...
 
woodooman schrieb:
XAMPP ... das ist gut möglich.
vieleicht musst du in der php.ini noch was ändern.
(register globals?) bin mir da aber nicht sicher. Ich teste nie Lokal.

...

Eher umgekehrt kanns dir gehen lokal mit Xampp läufts aber auf dem eigentlcih Server nicht, da xammp so eingestellt ist das es sehr offen ist, ist ja als Entwicklungs-und Testumgebung gedacht....

Ich nutze xampp sogar für meinen offi. Web-Server mithilfe des security befehls läßt sich das Ding gut für die Öffentlichkeit gebrauchen...
 
Um die Werte von Variablen in einen String hinzuzufügen muss man das machen:
PHP:
$string = "Wert 1=".$wert1.", Wert 2=".$wert2;


dann muss der update befehle so lauten:

PHP:
$upd="UPDATE tabelle SET name='".$name."',
logo='".$logo."',
saisons='".$saisons."',
sh='".$sh."',
sg='".$sg."',
uh='".$uh."',
ug='".$ug."',
nh='".$nh."',
ng='".$ng."',
toreh='".$toreh."',
gtoreh='".gtoreh."',
gtoreg='".$gtoreg."',
abzug='".$abzug."'
WHERE id='".$id."'";
mysql_query($upd) or die("
Update fehlgeschlagen");
?>

und verwende bessere Variablennamen....bei denen man sofort erkennt was die "beinhalten"

MfG
bald_patr
 
Geht immer noch nicht. Die Variablen sind aber verfügbar und ausgefüllt. Theorethisch müsste es also an der Updateanweisung liegen
 
Weiterhin ist das Problem wenn du auf den OK Button klickst, wo ist die Anweisung dafür das er dann was machen soll ?


^^ das fett geschriebene ergänzen

PHP:
if (isset($_POST['okbutton'])) 
{
$upd="UPDATE tabelle SET name='".$_POST['name']."',
logo='".$_POST['logo']."',
saisons='".$_POST['saisons']."',
sh='".$_POST['sh']."',
sg='".$_POST['sg']."',
uh='".$_POST['uh']."',
ug='".$_POST['ug']."',
nh='".$_POST['nh']."',
ng='".$_POST['ng']."',
toreh='".$_POST['toreh']."',
gtoreh='".$_POST['toreh']."',
gtoreg='".$_POST['gtoreg']."',
abzug='".$_POST['abzug']."'
WHERE id='".$_POST['id']."'";
mysql_query($upd) or die("
Update fehlgeschlagen");
echo "";
}

Damit sollte es dann klappen. Der Refresh (evtl. URL anpassen wg. ID Übergabe per $_GET) bewirkt das du gleich die aktualisierten Inhalte in den Edit Feldern hast.

Mfg kc
 
kannst noch den sql dump hochschieben von der tabelle "tabelle". Dann bastel ich das mal zurecht.

mfg kc
 
Was meinst du mit sql dump?*unwissend sei*

trotzdem schonmal danke ;)
 
müsste das da:

PHP:
if(!(isset($id))) /* falls keine ID vorhanden Auswahl anzeigen*/

nicht so sein?
PHP:
if(!isset($id)) /* falls keine ID vorhanden Auswahl anzeigen*/

sonst finde ich keinen fehler...
 
keine reaktion des themenstarters!?

~ C L O S E D ~

ceeyaa.mex
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten