INSERT Problem

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

  • INSERT Problem

    Hallo,

    ich habe ein Problem mit einem INSERT.
    Für einen Kunden erstelle ich gerade ein Webapplikation mit einigen Formularen etc.

    Die Daten werden von einem Formular zu dieser Seite geschickt, mit $_POST[...] ausgelesen, in Variablen gespeichert und ausgegeben.

    Gleichzeitig, wenn die Formularüberprüfung hinhaut gehts in den else-Zweig und die Daten sollen in die DB geschrieben werden.

    Leider klappt das INSERT nicht!
    Die Daten werden aber auf der Webpage ausgegeben.
    Also ist da schonmal hoffentlich kein Fehler.

    Hier ist ein Teil vom Code der Webpage mit dem INSERT:

    PHP-Code:
    // Überprüfen von einigen übermittelten Variablen auf Inhalt
    if ((!preg_match("/^\d+$/"$kunden_kunden_nr)) && ($kunden_kunden_nr == "") && ($matrix == "")) // Ist die Kundennummer eine Ganzzahl und nicht leer und ist $matrix leer?
    {
        
    $hack true$feld "Sie haben keine Kundennummer angegeben bzw. es ist nicht klar,<br>ob eine Firma, ein Gesch&auml;ftsf&uuml;hrer oder ein ASP gespeichert werden soll!";
    }

    // Wenn alles OK, dann...
    else
    {
        
    // ...Daten in die DB speichern
        
    $query_insert = ("INSERT INTO kunden (
                
    $matrix,
                kunden_nr,
                name_firma,
                vorname,
                name,
                position,
                strasse,
                hausnr,
                postfach,
                plz,
                ort,
                tel,
                fax,
                email,
                sekr_vorname,
                sekr_name,
                sekr_tel,
                sekr_fax,
                sekr_email,    
                branche,
                standorte,
                groesse,
                anzahl_ma,
                beteiligungen,
                infobeduerfnis,
                nachverfolgung_vw,
                hobbys,
                familienstand,
                kinder,
                events_mit_ehefrau,
                geb_dat,
                werbung,
                events,
                konditionen,
                rabatte,
                vertragsform,
                vertragslaufzeit,
                produktbestand,
                letzter_kd_kontakt,
                teilnahme_events,
                bemerkung,
                segment,
                tmwd_segment,
                vertr_tmwd_vorname,
                vertr_tmwd_name,
                vertr_tmwd_tel,
                vertr_tmwd_email,
                am_vorname,    
                am_name,
                am_tel,
                am_email,
                pm_vorname,
                pm_name,
                pm_tel,
                pm_email)
                
                VALUES( 
                '1',
                '
    $kunden_kunden_nr',
                '
    $kunden_name_firma',
                '
    $kunden_vorname',
                '
    $kunden_name',
                '
    $kunden_position',
                '
    $kunden_strasse',
                '
    $kunden_hausnr',
                '
    $kunden_postfach',
                '
    $kunden_plz',
                '
    $kunden_ort',
                '
    $kunden_tel',
                '
    $kunden_fax',
                '
    $kunden_email',
                '
    $kunden_sekr_vorname',
                '
    $kunden_sekr_name',    
                '
    $kunden_sekr_tel',
                '
    $kunden_sekr_fax',
                '
    $kunden_sekr_email',
                '
    $kunden_branche',    
                '
    $kunden_anzahl_standorte',
                '
    $kunden_groesse',
                '
    $kunden_anzahl_ma',
                '
    $kunden_beteiligungen',
                '
    $kunden_infobeduerfnis',
                '
    $kunden_nachverfolgung_vw',
                '
    $kunden_hobbys',
                '
    $kunden_familienstand',
                '
    $kunden_kinder',
                '
    $kunden_events_mit_ehefrau',
                '
    $kunden_geb_dat',
                '
    $kunden_werbung',
                '
    $kunden_events',
                '
    $kunden_konditionen',
                '
    $kunden_rabatte',
                '
    $kunden_vertragsform',
                '
    $kunden_vertragslaufzeit',
                '
    $kunden_produktbestand',
                '
    $kunden_letzter_kd_kontakt',
                '
    $kunden_teilnahme_events',
                '
    $kunden_bemerkung',
                '
    $kunden_segment',
                '
    $kunden_tmwd_segment',
                '
    $kunden_vertr_tmwd_vorname',
                '
    $kunden_vertr_tmwd_name',
                '
    $kunden_vertr_tmwd_tel',
                '
    $kunden_vertr_tmwd_email',
                '
    $kunden_am_vorname',
                '
    $kunden_am_name',
                '
    $kunden_am_tel',
                '
    $kunden_am_email',
                '
    $kunden_pm_vorname',
                '
    $kunden_pm_name',
                '
    $kunden_pm_tel',
                '
    $kunden_pm_email')");
            
    $query_insert mysql_query($query_insert);
            
            
    // Überprüfung der DB-Verbindung und Speicherung
            
    if (mysql_query($query_insert)) // Das "@" verhindert eine Ausgabe der Standart-MySQL-Fehlermeldung
            
    {
                
    $intodb "Daten wurden erfolgreich in die Datenbank gespeichert!";
            }
            else
            {
                
    $intodb "Es gibt einen Fehler bei der Speicherung!";
            }

    Es wär sehr nett von Euch, wenn Ihr da mal drüber gucken könntet!

    Ciao,
    Scott

  • #2
    PHP-Code:
    mysql_query($query_insert) or die(mysql_error()); 
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      änder mal das hier:
      $query_insert = mysql_query($query_insert);
      in
      $query_insert = mysql_query($query_insert) or die(mysql_error());

      evt kommt ein error, der Dir mehr sagt.
      Beantworte nie Threads mit mehr als 15 followups...
      Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

      Kommentar


      • #4
        Der Fehler wäre gelöst

        Ich hatte einen Schreibfehler ("r" vergessen) in einer Spalte!

        DANKE für den Tipp mit ....or die(mysql_error());

        Das hat mir sehr geholfen!

        Ciao

        Kommentar


        • #5
          Re: INSERT Problem

          ist die übergabe des ersten feldnamens als php-variable beabsichtigt?
          PHP-Code:
          $query_insert = ("INSERT INTO kunden ( $matrix, kunden_nr, ...) 
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Hi wahsaga,

            ja ist sie.

            $matrix bezieht sich auf einen Wert:

            firma, gf, aps ... etc.

            Daraus ergibt sich dann, in welche Spalte die "1" eingeschrieben soll.

            Ich habe in der DB eine Art Matrix erstellt, in der ich ermitteln kann, welche Typen zu welcher Kundennummer stehen.

            Man kann doch eine Variable in einem INSERT Befehl benutzen, oder?


            Ich hab noch nicht so viel Ahnung von PHP, deshalb sag mal bitte ob das geht.

            Kommentar


            • #7
              kommt keine fehlermeldung?

              werden die daten eingetragen?

              wenn du beide fragen mit ja beantworten kannst, dann wird es wohl gehen
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                Original geschrieben von Scott
                $matrix bezieht sich auf einen Wert:

                firma, gf, aps ... etc.

                Daraus ergibt sich dann, in welche Spalte die "1" eingeschrieben soll.

                Ich habe in der DB eine Art Matrix erstellt, in der ich ermitteln kann, welche Typen zu welcher Kundennummer stehen.
                ziemlich umständliche logik, wenn du mich fragst.

                du hast also bei jedem datensatz die spalten 'firma', 'gf', 'aps', etc., von denen jeweils in einer eine 1 steht und in den anderen nichts.


                warum machst du das nicht umgekehrt?


                du machst dir eine spalte 'kategorie' (oder wie auch immer du sie nennen willst), und schreibst dann da rein, um was für einen typ eintrag es sich handelt.

                entweder in dem du da direkt firma, gf, aps reinschreibst, oder (besser) in dem du da nur eine id einträgst, 1 für firma, 2 für gf, etc.


                damit hast du keine vielfach ungenutzten spalten mehr.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Da hast Du recht!

                  Wie gesagt, ich bin am php lernen.

                  Das mit der Matrix habe ich mal in einem kopierten Script gesehen.

                  Ich hab hier 2 Bücher:

                  PHP und MySQL von Kevin Yank
                  und
                  PHP Ein praktischer Einstieg von Ulrich Günther - O´REILLY

                  und da les ich mich durch.

                  Vielen Dank für Eure Tips!

                  Ich werd das mit der einen Spalte umsetzen!

                  Kommentar


                  • #10
                    Ich brauch nochmal bitte Eure Hilfe!

                    Ich habe jetzt den INSERT fertig und es funzt.
                    Auf der gleichen Page befindet sich aber noch ein Button "bearbeiten", falls der User einen Fehler gemacht hat.
                    Drückt er darauf, wird die vorherige Seite mit dem Formular geladen und eine DB Abfrage mit den Ergebnissen als value=".." Wert in den Formularfelden (eben Vorausgefüllt).

                    Ein paar Variablen werden dadurch "im Kreis"(hidden Feld) geschickt, um zu erkennen, um welchen Kunden es sich handelt.

                    Wie gesagt: INSERT klappt.

                    Wenn jetzt ein User auf "bearbeiten" klickt, wird die Formularseite vorausgefüllt wieder geladen. Verbessert er dann ein paar Sachen und klcikt wieder auf "speichern" dann kommt immer folgender Fehler:

                    You have an error in your SQL syntax near 'INTO kunden SET kunden_nr = '66666666666666666666666', firma = '1', ' at line 1

                    Das ist mein SQL-Befehl:

                    PHP-Code:
                        // ...Daten in die DB speichern
                        
                    $query_insert "$str_update_insert INTO kunden SET
                                kunden_nr = '
                    $kunden_kunden_nr',
                                
                    $matrix = '1',
                                name_firma = '
                    $kunden_name_firma',
                                vorname = '
                    $kunden_vorname',
                                name = '
                    $kunden_name',
                                position = '
                    $kunden_position',
                                strasse = '
                    $kunden_strasse',
                                hausnr = '
                    $kunden_hausnr',
                                postfach = '
                    $kunden_postfach',
                                plz = '
                    $kunden_plz',
                                ort = '
                    $kunden_ort',
                                tel = '
                    $kunden_tel',
                                fax = '
                    $kunden_fax',
                                email = '
                    $kunden_email',
                                sekr_vorname = '
                    $kunden_sekr_vorname',
                                sekr_name = '
                    $kunden_sekr_name',
                                sekr_tel = '
                    $kunden_sekr_tel',
                                sekr_fax = '
                    $kunden_sekr_fax',
                                sekr_email = '
                    $kunden_sekr_email',    
                                branche = '
                    $kunden_branche',
                                anzahl_standorte = '
                    $kunden_anzahl_standorte',
                                groesse = '
                    $kunden_groesse',
                                anzahl_ma = '
                    $kunden_anzahl_ma',
                                beteiligungen = '
                    $kunden_beteiligungen',
                                infobeduerfnis = '
                    $kunden_infobeduerfnis',
                                nachverfolgung_vw = '
                    $kunden_nachverfolgung_vw',
                                hobbys = '
                    $kunden_hobbys',
                                familienstand = '
                    $kunden_familienstand',
                                kinder = '
                    $kunden_kinder',
                                events_mit_ehefrau = '
                    $kunden_events_mit_ehefrau',
                                geb_dat = '
                    $kunden_geb_dat',
                                werbung = '
                    $kunden_werbung',
                                events = '
                    $kunden_events',
                                konditionen = '
                    $kunden_konditionen',
                                rabatte = '
                    $kunden_rabatte',
                                vertragsform = '
                    $kunden_vertragsform',
                                vertragslaufzeit = '
                    $kunden_vertragslaufzeit',
                                produktbestand = '
                    $kunden_produktbestand',
                                letzter_kd_kontakt = '
                    $kunden_letzter_kd_kontakt',
                                teilnahme_events = '
                    $kunden_teilnahme_events',
                                bemerkung ='
                    $kunden_bemerkung',
                                segment ='
                    $kunden_segment',
                                tmwd_segment = '
                    $kunden_tmwd_segment',
                                vertr_tmwd_vorname = '
                    $kunden_vertr_tmwd_vorname',
                                vertr_tmwd_name = '
                    $kunden_vertr_tmwd_name',
                                vertr_tmwd_tel = '
                    $kunden_vertr_tmwd_tel',
                                vertr_tmwd_email = '
                    $kunden_vertr_tmwd_email',
                                am_vorname = '
                    $kunden_am_vorname',    
                                am_name = '
                    $kunden_am_name',
                                am_tel = '
                    $kunden_am_tel',
                                am_email = '
                    $kunden_am_email',
                                pm_vorname = '
                    $kunden_pm_vorname',
                                pm_name = '
                    $kunden_pm_name',
                                pm_tel = '
                    $kunden_pm_tel',
                                pm_email = '
                    $kunden_pm_email
                                
                    $str_where";
                                
                        
                    $query_insert mysql_query($query_insert) or die(mysql_error()); 
                    und dies ist das IF-Konstrukt, dass die Variablen im SQl-Befehl ermittelt:

                    PHP-Code:
                    if ($kunden_kunden_id == "")
                    {
                        
                    $sql_replace mysql_query("SELECT kunden_id FROM kunden WHERE kunden_nr = $kunden_kunden_nr AND $matrix = 1");
                        
                    $kunden_kunden_id mysql_fetch_array($sql_replace);
                        
                    $kunden_kunden_id $kunden_kunden_id["kunden_id"];

                        if (!
                    $kunden_kunden_id == "")    
                        {
                            
                    $str_update_insert "UPDATE";
                            
                    $str_where "WHERE kunden_id = $kunden_kunden_id";
                        }
                        else
                        {
                            
                    $str_update_insert "INSERT";
                        }
                    }
                    else
                    {
                        
                    $str_update_insert "INSERT";

                    Mit platzt gleich der Kopf

                    Kommentar


                    • #11
                      entweder: INSERT INTO tabelle

                      oder: UPDATE tabelle

                      UPDATE INTO geht nich
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        GEIL!

                        Danke!

                        Ich habe jetzt das INTO auch mit in die Variable gesetzt.

                        Kommentar


                        • #13
                          OffTopic:
                          ich bin so stolz auf dich
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar

                          Lädt...
                          X