Queries daten einfach nicht ab
[AFB]-Mauser-
- datenbank
Hallo
Die queries von meiner PHP seite aus, daten einfach nix am in meiner mysql datenbank.
ich hab jetzt scho alle variablen rausgenommen um auszuschliessen dass es daran liegt:
======================
$sql = "UPDATE kickers SET D3 = 'JA' where PLAYERS = 'ALEXANDER'";
SELECT queries funktionieren fein, also verbinung zur Datenbank besteht, nur schaff ichs irgendwie nicht vom der PHP Seite zur DB zu kommen.
p.s.: da ich bei tripod bin, sind webspace und mysql anbieter die gleichen, also kanns da eigentlich auch keine problem geben.
??? hat irgendwer ne Ahnung wo der Hund vergraben sein könnt ???
Hallo!
======================
$sql = "UPDATE kickers SET D3 = 'JA' where PLAYERS = 'ALEXANDER'";$sql = "INSERT INTO KDATE (DATE_D) VALUES ('03.06.03')";
Was Du hier geschrieben hast, sind lediglich die
SQL-Statements.
Kannst Du mal die dazugehörigen mysql-Funktionen
posten?
Gruß,
Jobst
Hallo»» Hallo!
======================
$sql = "UPDATE kickers SET D3 = 'JA' where PLAYERS = 'ALEXANDER'";$sql = "INSERT INTO KDATE (DATE_D) VALUES ('03.06.03')";
Was Du hier geschrieben hast, sind lediglich die
SQL-Statements.Kannst Du mal die dazugehörigen mysql-Funktionen
posten?Gruß,
Jobst
Hi So schaut das update query (mit eingebauten variablen) aus:
===================================================================
<?php
if ("SUBMIT1" == $submitantwort) {
$sql = "UPDATE kickers SET " .
"$DATE_I= '$ANTWORT'" .
"where PLAYERS = $firstname";
if (mysql_query($sql)) {
echo("<P>Update done</P>");
} else { echo("<P>Sorry da war ein Error beim updaten " .
mysql_error() . "</P>");
}
}
vielen Dank für Hilfe
Halihallo [AFB]-Mauser-
Hi So schaut das update query (mit eingebauten variablen) aus:
<?php
if ("SUBMIT1" == $submitantwort) {
$sql = "UPDATE kickers SET " .
"$DATE_I= '$ANTWORT'" .
"where PLAYERS = $firstname";
if (mysql_query($sql)) {
echo("<P>Update done</P>");
} else { echo("<P>Sorry da war ein Error beim updaten " .
mysql_error() . "</P>");
}
}
Um mit der Datenbank sprechen zu können/dürfen, musst du sie erst begrüssen.
mysql_connect! mysql_select_db! ...
http://www.php.net/manual/de/ref.mysql.php erst lesen!
Viele Grüsse
Philipp
Um mit der Datenbank sprechen zu können/dürfen, musst du sie erst begrüssen.
mysql_connect! mysql_select_db! ...Philipp
$db = @mysql_connect(
"localhost", "****", "*****");
if (!$db) {
echo( "<P>Unable to connect to the " .
"database server at this time.</P>" );
exit();
}
// Select the kickers database
if (! @mysql_select_db("mauser_uk_db", $db) ) {
echo( "<P>Unable to locate the kickers " .
"database at this time.</P>" );
exit();
}
=====================================
meinst, das hab ich eh auf meiner php Seite, nur ganz am Anfang, da ich zuerst ein paar select abfragen hab und dann erst die update insert queries.
Halihallo [AFB]-Mauser-
1. Bekommst du eine Fehlermeldung, wenn ja, welche?
2. Wenn etwas scheinbar nicht funktioniert, du jedoch keinen Fehler bekommst, lass
dir den Query ausgeben und teste ihn manuell mit z.B. phpMyAdmin, oder prüfe, ob
auch wirklich ein Fehler ausgegeben werden würde, wenn einer auftritt
3. Überarbeite deine Namenbebung, Gross-/Kleinschreibung ist relevant, zumindest auf
einigen Platformen.
4. Hast du überprüft, ob die zu ändernden Datensätze überhaupt in der Datenbank sind?
5. Vorschlag: Überprüfe deine Queries von Hand auf phpMyAdmin, mysql-Konsole oder was
auch immer. Überprüfe auch die Existenz der Objekte in der Datenbank (ist der PLAYERS
="..." auch wirklich drinn?)
6. es heisst "updaten", nicht "daten ab".
7. bitte nicht immer alles Quoten, das worauf zu dich beziehen möchtest genügt.
Viele Grüsse
Philipp
- Bekommst du eine Fehlermeldung, wenn ja, welche?
- Wenn etwas scheinbar nicht funktioniert, du jedoch keinen Fehler bekommst, lass
dir den Query ausgeben und teste ihn manuell mit z.B. phpMyAdmin, oder prüfe, ob
auch wirklich ein Fehler ausgegeben werden würde, wenn einer auftritt- Überarbeite deine Namenbebung, Gross-/Kleinschreibung ist relevant, zumindest auf
einigen Platformen.- Hast du überprüft, ob die zu ändernden Datensätze überhaupt in der Datenbank sind?
- Vorschlag: Überprüfe deine Queries von Hand auf phpMyAdmin, mysql-Konsole oder was
auch immer. Überprüfe auch die Existenz der Objekte in der Datenbank (ist der PLAYERS
="..." auch wirklich drinn?)- es heisst "updaten", nicht "daten ab".
- bitte nicht immer alles Quoten, das worauf zu dich beziehen möchtest genügt.
HI Philipp
ad1) nö online bekomm ich keine Fehlermeldung
ad2) geht das einfach mit echo($sql) ?
ad3) ich hab immer alles so geschrieben wie ichs auch in der DB habe
ad4) jo die Datensätze san in der DB. (Players = die Colum mit den Namen der Spieler)
ad5) jo werds per hand nochmal überprüfen
ad6) jo ich vermisch gern deutsch und englisch in ner eigenen art *g*
ad7) ich quote jetzt alles weil ich mich auf alle punkte beziehe =;-)
...sodala jetzt hab ich das query allein in ner php datei geteste und es hat gefunkt, anscheinend hab ich das query irgendwie falsch eingebaut, was ist da falsch:
==========================================================
<FORM ACTION="<?php echo($PHP_SELF); ?>" METHOD=POST>
<P>NEUES DATUM EINFÜGEN<BR>
<TEXTAREA NAME="neudat" ROWS=1 COLS=10 WRAP>
</TEXTAREA><BR>
<BUTTON TYPE=SUBMIT NAME="subneudat" VALUE="SUBMIT2">
DATUM HINZUFÜGEN
</BUTTON>
</FORM>
</td></tr></table>
<?php
if ("SUBMIT2" == $subneudat) {
$sql = "INSERT INTO KDATE " .
"(DATE_D) VALUES ('$neudat')";
if (mysql_query($sql)) {
echo("<P>Update done</P>");
$query2 = ($sgl);
} else { echo("<P>Sorry da war ein Error beim updaten " .
mysql_error() . "</P>");
}
}
wenn ich dann
echo($qery2)
kommt nix raus.
Muss ich vor jedem query die DB neu ansprechen, oder reichts ganz am Anfgan?
Ich weis ned worans liegen könnt.
Vielen Dank für weitere Hilfe.
Hallo Mauser!
1.)
<TEXTAREA NAME="neudat" ROWS=1 COLS=10 WRAP>
</TEXTAREA><BR>
Wozu Textarea für ein 10stelliges Datum - möglicherweise mag die DB keine Zeilenumbrüche oder so.
2.)
$query2 = ($sgl);
echo($qery2)
gibt korrekt nix aus, da $sgl (man beachte das G) noch kein Wert zugewiesen wurde!
mfg
norbert =:-)
Halihallo norbert =:-)
*Argh*, dafür war ich oben schneller :-)
1.)
<TEXTAREA NAME="neudat" ROWS=1 COLS=10 WRAP>
</TEXTAREA><BR>Wozu Textarea für ein 10stelliges Datum - möglicherweise mag die DB keine Zeilenumbrüche oder so.
Hm. Eigentlich ist das kein Problem, man sollte nur darauf achten, dass Quotes und
Escapings in der Textarea richtig kodiert werden.
@...Mauser: Ein 'UPDATE tabelle SET Name='Philipp's world'" führt meistens zu
Datenverlust!
Viele Grüsse
Philipp
Hallo,
@...Mauser: Ein 'UPDATE tabelle SET Name='Philipp's world'" führt meistens zu
Datenverlust!
Bei machen Systemen kann man auch Statements verknüpfen, und dann wird bei einfacher Variablensubstitution aus
"UPDATE TABELLE SET SPALTE ='$wasauchimmer'"
plötzlich beispielsweise
"UPDATE TABELLE SET SPALTE ='XY'; DELETE FROM TABELLE WHERE SPALTE <> ''"
wenn in $wasauchimmer "XY'; DELETE FROM TABELLE WHERE SPALTE <> '" steht.
Ziemlich fatal oder?
Eingaben sollten immer auf gefährlichen Code geprüft werden bzw. Metazeichen wie ' immer dem DBMS entsprechend maskiert werden. Für zweiteres stllen viel DB-Schnittstellen in den Programmiersprachen sog. Quoting-Funktionen zur Verfügung.
Grüße
Klaus
Eingaben sollten immer auf gefährlichen Code geprüft werden bzw. Metazeichen wie ' immer dem DBMS entsprechend maskiert werden. Für zweiteres stllen viel DB-Schnittstellen in den Programmiersprachen sog. Quoting-Funktionen zur Verfügung.
Grüße
Klaus
Vielen Dank mal an alle für die Antworten, doch wie gesagt, ich hab die queries ja schon überprüft, sie funktionieren, nur irgendwie hab ichs falsch in die Seite eingebaut (das ich bei den echos mich vertipt hab, kann ja keine Auswirkungen aufs query haben).
Ich vermute mal dass es daran liegt, dass zuerst die form abeschickt wird und dann halt aufs query vergessen wird, aber i hab keine Ahnung wie ich das ändern könnt?
Gibts vielleicht ne möglichkeit, die queries direkt in die Form einzubauen?
...sodala das problem hab ich endlich gelöst:
ich hatte die Bedinugn, wann das query laufen soll falsch gesetzt
Ich hate ja in meiner Form einen Button:
<BUTTON TYPE=SUBMIT NAME="subneudat" VALUE="SUBMIT2">
DATUM HINZUFÜGEN
</BUTTON>
... ich nahm an das die Variable $SUBMIT2 wäre ... haha falsch gedacht, die Variable war '$DATUM HINZUFÜGEN'
...naja jetzt hab ich nur noch ein Problem offen, dann funktioniert meine HP endlich und die Kicker können sich eintragen, wanns spielen können *G*.
Und zwar das mit den cookies. naja vielleicht krieg ich des auch noch hin.
Moin!
Ich hate ja in meiner Form einen Button:
<BUTTON TYPE=SUBMIT NAME="subneudat" VALUE="SUBMIT2">
DATUM HINZUFÜGEN
</BUTTON>... ich nahm an das die Variable $SUBMIT2 wäre ... haha falsch gedacht, die Variable war '$DATUM HINZUFÜGEN'
Das stimmt aber leider nur im IE. Der ist so dumm und sendet das, was zwischen <button> und </button> steht, als Value, und nicht den Value selbst, so wie es alle anderen Browser tun.
Ergebnis: Verzichte auf <button>, nimm <input type="submit"> oder <input type="image">, bzw. vergleiche die Variable nicht mit einem Inhalt, sonder prüfe nur auf ihre Existenz.
- Sven Rautenberg
Ergebnis: Verzichte auf <button>, nimm <input type="submit"> oder <input type="image">, bzw. vergleiche die Variable nicht mit einem Inhalt, sonder prüfe nur auf ihre Existenz.
...ok, danke .. hab mir deinen Vorschlag zu Herzen genommen, könnt ja sein, dass irgendwer ned I-net explorer verwendet *g*.
mfg [AFB]-Mauser-
p.s.: Ha, endlich is meine Hp fertig =;-)
(zwar kein tolles Aussehen, aber alles funkt so wie es soll und das ist momentan wichtiger ... im Sommer kümmer ich mich dann drum das auch nach was ausschaut *g*)
Hallo,
$query2 = ($sgl);
echo($qery2)
gibt korrekt nix aus, da $sgl (man beachte das G) noch kein Wert zugewiesen wurde!
Abgesehen davon, daß $query2 und $qery2 auch nicht gerade die selbe Variable sind;-)
Grüße
Klaus
Halihallo [AFB]-Mauser-
...sodala jetzt hab ich das query allein in ner php datei geteste und es hat gefunkt, anscheinend hab ich das query irgendwie falsch eingebaut, was ist da falsch:
Also wenn du Perl programmieren würdest, hätte ich dir use strict ans Herzen gelegt,
dann hättest du schon mal einen Fehler gesehen...
if ("SUBMIT2" == $subneudat) {
$subneudat solltest du umgedingt durch $_POST['subneudat'] ersetzen, seit
register_globals standardmässig auf Off gesetzt ist (bei neueren Versionen ab 4.2, wenn
ich mich recht entsinne) gibt es keinen direkten Zugriff mehr auf Formulardaten!
$sql = "INSERT INTO KDATE " .
"(DATE_D) VALUES ('$neudat')";
^^^^^^^^ dito, $_POST['neudat']
if (mysql_query($sql)) {
$query2 = ($sgl);
^^^^^ use strict! => $sgl ist ziemlich undefiniert, da noch
nirgens verwendet.
} else { echo("<P>Sorry da war ein Error beim updaten " .
echo("Nein, du hättest deinen Quelltext aufmerksamer lesen sollen");
else {
}
ja, was "else" denn? ;) kannst du rausnehmen...
wenn ich dann
echo($qery2)
kommt nix raus.
Nachdem du $sgl durch $sql ersetzt hast schon, evtl. mit leeren Feldern, die du noch
über die Kritik $_POST[...] füllen kannst...
Muss ich vor jedem query die DB neu ansprechen, oder reichts ganz am Anfgan?
Das wäre eine KATASTROPHE! :-) Nein, bestimmt nicht.
Viele Grüsse
Philipp
Halihallo [AFB]-Mauser-
$sql = "UPDATE kickers SET D3 = 'JA' where PLAYERS = 'ALEXANDER'";
^ ^
richtig!
$sql = "UPDATE kickers SET " .
"$DATE_I= '$ANTWORT'" .
^^ ^^^^
Probleme möglich => den Query umbedingt über echo ausgeben lassen und nachsehen, ob
da auch wirklich das steht, was da zu stehen von dir gedacht war.
"where PLAYERS = $firstname";
^^^ ^^^^
böse! - Wo sind die Quotes aus dem von dir ganz oben genannten Query???
Nur so als Beispiel, wie sich mögliche Fehler einschleichen können...
Viele Grüsse
Philipp