[AFB]-Mauser-: Queries daten einfach nicht ab

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'";

$sql = "INSERT INTO KDATE (DATE_D) VALUES ('03.06.03')";

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 ???

--
mfg [AFB]-Mauser-
mysql und php noob der mehr wissen möchte
  1. 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

    1. 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

      --
      mfg [AFB]-Mauser-
      mysql und php noob der mehr wissen möchte
      1. 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

        1. Um mit der Datenbank sprechen zu können/dürfen, musst du sie erst begrüssen.
          mysql_connect! mysql_select_db! ...

          Philipp

          wenn du:

          $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.

          --
          mfg [AFB]-Mauser-
          mysql und php noob der mehr wissen möchte
          1. 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

              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.

              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 =;-)

              --
              mfg [AFB]-Mauser-
              mysql und php noob der mehr wissen möchte
              1. ...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>");
                  }
                 }

                }
                else {
                }

                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.

                --
                mfg [AFB]-Mauser-
                mysql und php noob der mehr wissen möchte
                1. 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 =:-)

                  1. 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

                    1. 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

                      1. 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?

                        --
                        mfg [AFB]-Mauser-
                        mysql und php noob der mehr wissen möchte
                        1. ...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.

                          --
                          mfg [AFB]-Mauser-
                          mysql und php noob der mehr wissen möchte
                          1. 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

                            --
                            Signatur oder nicht Signatur - das ist hier die Frage!
                            1. 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*)

                  2. 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

                2. 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

      2. 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