"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

PHP/mysql inserts,updates,deletes funzen nicht

grOOvekill@ 16.10.2003 - 10:25 525 11
Posts

grOOvekill@

Legend
Vienna Badass
Avatar
Registered: Nov 2001
Location: @home
Posts: 2301
S'gott,

habe letzte Woche phpMyAdmin installiert. Nach anfänglichen Login Schwierigkeiten, die ich mit Eurer Hilfe lösen konnte, stehe ich nun vor einem weiteren Problem.

Ich habe ein Skript, welches sich den Inhalte einer Tabelle in ein <textarea> holt. Dort hat man nun die Möglichkeit, den Text zu verändern. Mit einem Klick auf Speichern, ersetzt dieser neue Text den ursprünglichen in der Tabelle, es wird also ein update-Statement verwendet.

Hier das Kuriose: Auf meinem eigenen Webserver funktionieren die Skript voll und ganz. Auf dem Webserver, auf dem phpMyAdmin neu installiert wurde, jedoch nicht! Also kann's sicher nicht an den Skripts liegen, die dürften in Ordnung sein. Jetzt weiß ich nicht, ob bei mysql rechtemäßig noch irgendwas eingestellt werden muß. Dummerweise habe ich auch nirgends im Verzeichnis ein Logfile entdeckt, daß mir Aufschluß darüber gibt, warum meine updates verschluckt werden. Nachdem die gesamte Website zukünftig auf mysql aufbauen soll (kleines CMS), wäre es natürlich essentiell, daß das Zeug hinhaut. Habe echt schon eine Menge ausprobiert, aber nun stehe ich an un komme nicht weiter.

Wäre für jede Hilfe dankbar. Wenn ihr spezielle Infos braucht um das Problem näher beleuchten zu können, bitte fragen. Ich wußte nicht, was ich alles anführen soll. Es handelt sich auf jeden Fall um die Version 2.4.0 von phpMyAdmin.

Vielen Dank!
Bearbeitet von grOOvekill@ am 20.11.2003, 12:58

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25422
connecten und selecten der db gibt dir keinen fehler? überprüf bei jedem mysql statement mit .. or die(mysql_error()) und schau mal ob er dir jetzt etwas auswirft.

grOOvekill@

Legend
Vienna Badass
Avatar
Registered: Nov 2001
Location: @home
Posts: 2301
Connect und Select funktionieren. Bekomme auch mit ..or die(mysql_error()) keine Fehlermeldung. Das Lustige ist aber: Nach dem Ändern des Textes, also nach einem Klick auf Speichern, sollte der Text "Der Eintrag wurde gespeichert" an der Stelle vom <textarea> erscheinen. Es bleibt aber alles weiß. Irgendwie wird der echo-Befehl ignoriert und ich komm' nicht drauf, weshalb. Nach 2 Sekunden mach ich dann einen Refresh, damit der neue Inhalt der Tabelle angezeigt werden kann.

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von grOOvekill@
Connect und Select funktionieren. Bekomme auch mit ..or die(mysql_error()) keine Fehlermeldung. Das Lustige ist aber: Nach dem Ändern des Textes, also nach einem Klick auf Speichern, sollte der Text "Der Eintrag wurde gespeichert" an der Stelle vom <textarea> erscheinen. Es bleibt aber alles weiß. Irgendwie wird der echo-Befehl ignoriert und ich komm' nicht drauf, weshalb. Nach 2 Sekunden mach ich dann einen Refresh, damit der neue Inhalt der Tabelle angezeigt werden kann.
schreib das or die auch beim query hin

grOOvekill@

Legend
Vienna Badass
Avatar
Registered: Nov 2001
Location: @home
Posts: 2301
Zitat von watchout
schreib das or die auch beim query hin

ehm... wie? Weiß leider nicht genau, was du meinst. Ich soll ..or die auch bei der Query hinschreiben? Hab ich eigentlich. TUt sich trotzdem nix. :(

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
dann schreib mal ganz am anfang
Code: PHP
error_reporting(E_ALL);

grOOvekill@

Legend
Vienna Badass
Avatar
Registered: Nov 2001
Location: @home
Posts: 2301
Ach du meine Fresse! Ich hab da folgende Meldung:

Notice: Undefined variable: submit in /home/wwwroot/www/_BACKEND/main/submit_main.php on line 11

Aber das kann nicht sein! Ich sag doch, daß diese Skripts auf einem anderen Webserver funktionieren. Außerdem hab ich die submit variable in der Datei, in der ich das form tag definier angegeben. Ich zeig Euch mal den Code. Hier die Datei, wo ich Änderungen vornehmen kann:

Code: PHP
<body>
<?php
include ("../connectdb.php");
error_reporting(E_ALL); 
?>
<form method="post" action="submit_main.php">
<?php
$result = mysql_query("Select * from main",$db);
$zeile = mysql_fetch_array ($result);
echo ("<textarea cols='100' rows='20' name='main'>$zeile[main]</textarea>");
echo ("<br><input type='submit' name='submit' value='text speichern'></center>");
?></form>
</body>

Und hier der Code von submit_php:

Code: PHP
<html>
<head>
<meta http-equiv="refresh" content="2; URL=main.php">
<title>submit</title>
</head>

<?php
include ("../connectdb.php");
error_reporting(E_ALL); 

if ($submit){
  $sql="UPDATE main SET main='$main' where id=1";
  $result=mysql_query($sql);
  echo ("<center><b><font face='arial' size='3'>Der Text wurde eingetragen!</font></b></center>");
  if (!$result){
    die ("Der Text konnte nicht eingetragen werden!");
  }
}
?>

Wieso zur Hölle taugt ihm des submit nicht?? :confused:

noledge

CWNE #540
Avatar
Registered: Apr 2001
Location: ::1
Posts: 6837
such mal nach globale variablen im forum ;)

entweder über die superglobalen abfragen oder register_globals auf on - ich empfehle ersteres.

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25422
Code: PHP
$result=mysql_query($sql);

2. parameter fehlt.. also der link zur db

damit du weisst was ich mein: http://www.dynamicwebpages.de/php/f...mysql-query.php

edit: du solltest bei jedem query auf fehler überprüfen:

Code: PHP
$hQuery = mysql_query($szSQL,$hLink) or die(mysql_error());

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
der zweite parameter von mysql_query ist in den mini-beispielen aber nicht notwendig.

ich tippe eher auf register_globals ... führe mal ein <? phpinfo(); ?> aus und überprüfe die globals-einstellungen.

grOOvekill@

Legend
Vienna Badass
Avatar
Registered: Nov 2001
Location: @home
Posts: 2301
Ihr hattet mal wieder absolut recht! Beim Durchforsten früherer Postings bezüglich globaler Variablen hat sich herausgestellt, daß genau hier das Problem lag. Wie gesagt, auf dem anderen Webserver hat alles ohne Probleme funktioniert, daß es an sowas iegen könnte, ist mir im Traum nicht eingefallen. Wie auch immer, es funktioniert jetzt alles. Im Webserver sind die GLobals-Einstellungen natürlich wie zu erwarten war, auf off.

Vielen Dank nochmal an alle. Verdammt, das muß jetzt mal gesagt werden: Ich kenne kein anderes Forum, wo einem so schnell geholfen wird, ehrlich! Hier dürfte sich so zirka alles rumtreiben, was IT-mäßig auch nur irgendwas auf dem Kasten hat. :) Weiter so!

grOOvekill@

Legend
Vienna Badass
Avatar
Registered: Nov 2001
Location: @home
Posts: 2301
Okay, hier mal ein kleines Update:
Bei Formularen funzt das ganze ja schön. Nur hab ich jetzt das Problem, daß beispielsweise ein ID eines Datensatzes mittels url übergeben wird. Okay, hab ich den Befehl halt auf $variable = $_GET['variable']; umgeändert. Nun bekomme ich aber eigentlich bei jeder if Schleife die ich beginne (if $submit, if $update, id $delete) folgende Notices:


Notice: Undefined index: id in /home/wwwroot/www/_BACKEND/kunden/test/titel.php on line 11
Notice: Undefined index: submit in /home/wwwroot/www/_BACKEND/kunden/test/titel.php on line 12
Notice: Undefined index: delete in /home/wwwroot/www/_BACKEND/kunden/test/titel.php on line 13
Notice: Undefined index: update in /home/wwwroot/www/_BACKEND/kunden/test/titel.php on line 14


Jetzt steh' ich wieder schön blöd da, da die ID von Datensätzen die ich anklicke offensichtlich nicht übergeben wird.

Vorschläge?
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz