Problem beim abspeichern von übergebenen Daten in mysql

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem beim abspeichern von übergebenen Daten in mysql

    Schönen guten Abend
    Heute ist mein erster Tag in diesem Forum, Grund dafür: Ich hab heute mit php und mysql angefangen.
    Warum? Wir haben einen super Kickertisch mit digitaler Anzeige gebaut und wollen jetzt möglichst immer alle unsere Spiele in einer Datenbank speichern.
    Dazu habe ich eine Datenbank mit den nötigen tabellen erstellt sowie eine Formular zum eintragen sowie eine einfach abfrage zusammengebastelt.

    In diesem formular werden unter anderem name_blau1, name_blau2, name_gelb1 und name_gelb2 abgefragt.
    Wenn nur 2 personen gespielt haben, sollen die felder name_*2 jeweils leer bleiben.

    Und jetzt bleibe ich stecken. Ich möchte eine kleine Minifunktion (irgendwo) zwischen das abschicken des Formulas (post) und dem abspeichern in der datenbank einfügen, die errechnet wieviele Spieler vorhanden sind.
    Irgendwie muss das mit der abfrage ob das "feld" nicht leer ist, und wenn ja, dann soll eine variable i hochzählen klappen, aber ich bekomme das nicht hin.

    hier ein auszug aus meiner edit.php

    PHP-Code:
        if(!mysql_query("INSERT INTO kickertabelle
            (modus, name_blau1, name_blau2, name_gelb1, name_gelb2, punkte_blau, punkte_gelb, datum, autor, kommentar)
         VALUES
            ('
    $_POST[modus]',
             '
    $_POST[name_blau1]',
             '
    $_POST[name_blau2]',
             '
    $_POST[name_gelb1]',
             '
    $_POST[name_gelb2]',
             '
    $_POST[punkte_blau]',
             '
    $_POST[punkte_gelb]',
              NOW(),
              '
    $_POST[autor]',
              '
    $_POST[kommentar]');
        "
    )) 
    das hier ist mein versuch, aber der klappt natürlich nicht ^^

    PHP-Code:
    $i=0;
    if 
    $_POST[name_blau1] =![""then $i++; // testweise mal mit $_post probiert
     
    if $name_blau2 =!"" then $i++;
     if 
    $name_gelb1 =!"" then $i++;
     if 
    $name_gelb2 =!"" then $i++; 
    ich hoffe euch reichen die informationen

    vielen Dank schon einmal im vorraus

    PS: wie kann man nur so ein Problem im Topic kurz beschreiben?
    Angehängte Dateien

  • #2
    Also ganz Übel ist sowas:

    Code:
    $_POST[modus]
    Richtig wäre:
    Code:
    $_POST["modus"]
    oder

    Code:
    $_POST['modus']
    Es wäre sinnvoll, wenn du uns (d)eine Fehlermeldung mitteilen würdest.

    Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
    sondern mit den Augen das Manual zu lesen.

    Kommentar


    • #3
      PHP-Code:
      if $name_blau2 =!"" then $i++; 
      PHP-Code:
      if ($name_blau2 =!""$i++; 
      peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        @Kropff: Leider funktioniert das aus nicht, ich bekomme immernoch diese Fehlermeldung

        PHP-Code:
        Parse errorsyntax errorunexpected T_VARIABLE in /var/www/vhosts/nrg3.de/httpdocs/kickertabelle/edit.php on line 32 
        @xManUx: Also das übertragen in die Datenbank klappt eigentlich, oder ist das nur besser "Stil" was du mir da vorgeschlagen hast (auch wegen Thema sicherheit)?

        PS: muss es nicht eigentlich auch
        PHP-Code:
        != 
        heissen?


        EDIT: OKOK, Ich sollte lernen genau zu lesen was dort steht. Ich hatte das "then" noch drinne gelassen. Jetzt kommt schon mal nicht mehr der Fehler "unexpected T_VARIABLE"

        Jetzt habe ich also stehen
        PHP-Code:
         $i=0;
           if (
        $name_blau1 !=""$i++;
           if (
        $name_blau2 !=""$i++;
           if (
        $name_gelb1 !=""$i++; 
           if (
        $name_gelb2 !=""$i++;
           echo 
        "hallo, I ist jetzt: ".$i
        allerdings bekomme ich jetzt für alle 4 den Fehler
        "Notice: Undefined variable: name_* in ..."

        Woran kann das liegen?
        Zuletzt geändert von Rafterman; 05.12.2006, 16:15.

        Kommentar


        • #5
          @topicstarter
          1. SQL Statements sollten nicht mit einem ; im String abgeschlossen werden.
          2. Poste uns doch mal Zeile 32 +- 5 Zeilen deines Codes.
          3. Jop sollte != heissen

          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            Zu 1. also das ";" beseitigen oder gehen etwas anderes ersetzen?
            2. die Zeile 32 ist der untere php-teil, welches ich im ersten post geschrieben habe (if ($name_blau1 !="") $i++

            Dieses Problem hat sich ja jetzt gelöst, aber es hat sich natürlich ein neues aufgetan (siehe EDIT im letzten Posting)

            Kommentar


            • #7
              allerdings bekomme ich jetzt für alle 4 den Fehler
              "Notice: Undefined variable: name_* in ..."

              Woran kann das liegen?
              Woher kommen diese Vars ? Die Meldung besagt einfach, dass du auf Vars zugreifen willst, die noch nicht vorhanden (initialisiert) sind.

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                die Variablen sollten eigentlich von dem Eingabeformular (siehe Anhang im ersten Posting) an diese datei hier (edit.php) übergeben werden.
                Anscheinend werden sie es ja auch, jedenfalls werden sie in der Datenbankeinspeisung korrekt behandelt.
                Sie werden ohne (sichtbare) Probleme in die datenbank übertragen.
                (Code dazu, siehe 1. Posting)

                Kommentar


                • #9
                  Also wenn die von einem Form kommen wäre es sicher sauberer folgendes zu schreiben
                  PHP-Code:
                  if (isset($_POST['name_blau1']) && $_POST['name_blau1'] !=""){
                       
                  $i++;

                  Ein isset() führt dazu dass keine Notice geworfen wird, wenn die Var nicht existiert und wenn du mit $_POST['nameDesHtmlFeldes'] auf die Var zugreifst, dann funzt es auch wenn die register_globals() auf off sind.

                  Gruss

                  tobi
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar


                  • #10
                    Vielen Dank, damit hat es geklappt!

                    Ich werde wahrscheinlich im Laufe des Projektes wieder auf euch zurückkommen, so schnelle und kompetente Hilfe sieht man gerne
                    *schleimschleim*

                    Gruß Chris

                    Kommentar

                    Lädt...
                    X