php erkennt leeres feld nicht?

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

  • php erkennt leeres feld nicht?

    PHP-Code:
    // Mandant anhand des Firmenschalter suchen
            
    $mandant $db->queryRow('SELECT * FROM kundenlizenzen WHERE Firmenschalter = \''$this->get['f'] .'\'');
            
            if(!
    $mandant) {
                
    $mandant $db->queryRow('SELECT * FROM kundenlizenzen WHERE FB1 = \''$this->get['fb1'] .'\'');
            } else {
                return 
    $mandant['ID']; 
    wenn der firmenschalter leer ist, soll der nach fb1 suchen...
    wenn beide leer sind, wird ein neuer eintrag in der datenbank angelegt.

    das problem liegt nun darin, dass php wohl nicht erkennt, dass eine datenfeld leer ist.

    wenn das datenfeld leer ist, wird wohl ein leerzeichen oder sontiges mitgegeben, sodass falsche einträge entstehen.

    hat jmd. rat?

    dankeschön

  • #2
    Die das was du übergibst per var_dump ausgeben lassen. Und den Query auch.
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      danke erstmal.

      Leider bin ich kein phpler, sondern vbler =/.

      mir wurde das skript überlassen...weil unser phpler abgangen ist.

      es wäre also sehr nett, wenn du den code scheiben koenntest

      Kommentar


      • #4
        Zitat von j4n Beitrag anzeigen
        es wäre also sehr nett, wenn du den code scheiben koenntest
        Wenn du willst, dass dir das jemand schreibt, dann verschiebe ich es zur Projekthilfe. Ansonsten gibt es hier keinen fertigen Code.

        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Ja, gerne. Danke. (=

          Kommentar


          • #6
            und * verschieb *

            Peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Zitat von j4n Beitrag anzeigen
              das problem liegt nun darin, dass php wohl nicht erkennt, dass eine datenfeld leer ist.
              Wieso soll PHP das "erkennen"?

              Erst mal müsstest du uns mitteilen, was die Methode $db->queryRow macht - liefert die direkt einen Feldinhalt zurück?
              Andernfalls wäre es unsinnig, aus ihrem Rückgabewert Schlüsse über Feldinhalte ziehen zu wollen.

              Und dann wäre auch "leer" erst mal zu definieren. Feldtyp, Feldinhalt? Ein Leerstring ist etwas anderes als wirklich leer.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Dann hol ich mal weiter aus:

                ich habe in vb eine lizensierungssoftware geschrieben. mit jedem login eines kunden wird eine url mit relevanten daten ans uns geschickt.
                Diese url geht dann an das php-skript.

                Dieses prüft nun, anhand des firmenschalters, ob der mandant schon vorhanden ist.

                Nun gibt es kunden, die keinen firmenschalter haben. also soll nach der firmenbezeichung1 (fb1) gefragt werden.

                Die eingeloggten clienten werden anhand einer Kunden ID an die ID der Mandanten gebunden:

                in vb habe ich also 2 tabellen: eine mit mandanten, eine mit clienten.

                Nun trat das problem auf, dass unter einem mandanten clienten waren, die garnnicht zu dem mandanten gehoerten.

                Bsp.:

                der erste kunde,der keinen firmenschalter hat, loggt sich ein. die firma wird also in der datenbank angelegt und der kunde wird der firma zugeordnet

                nun loggt sich ein zweiter kunde eine, einer anderen firma versteht sich, auch ohne firmenschalter.
                Anstatt nun eine neue firma anzulegen, und den kunden dort unterzubringen, legt er ihn unter der firma an, die vorher auch ohne firmenschalter angelegt wurde.

                d.h.: so wie es aussieht, wird wenn das feld firmenschalter leer ist, doch irgendein wert mitgegeben....

                PHP-Code:
                // Mandant anhand des Firmenschalter suchen
                        
                $mandant $db->queryRow('SELECT * FROM kundenlizenzen WHERE Firmenschalter = \''$this->get['f'] .'\'');
                        
                        if(!
                $mandant) {
                            
                $mandant $db->queryRow('SELECT * FROM kundenlizenzen WHERE FB1 = \''$this->get['fb1'] .'\'');
                        } else {
                            return 
                $mandant['ID']; 
                ..würde heissen, dass er nie in die if zeile springen würde, was er auch nicht tut, wenn das feld leer ist.

                Kommentar


                • #9
                  d.h.: so wie es aussieht, wird wenn das feld firmenschalter leer ist, doch irgendein wert mitgegeben....
                  Hast du das mal Überprüft???

                  Kommentar


                  • #10
                    Anders kann ich mir das nicht vorstellen, waere es leer, würde er in die if zeile gehen und mir dementsprechendes in die db schreiben, was leider nicht der fall ist...

                    ich habe versucht es mit emppty abzufangen, bzw. ein kollege. aber es klappte leider nicht.

                    Kommentar


                    • #11
                      Nochmal: ist das "Feld" leer, oder nicht?

                      Kommentar


                      • #12
                        Zitat von j4n Beitrag anzeigen
                        Dann hol ich mal weiter aus:
                        Nicht viel schwafeln, sondern die explizit gestellten Rückfragen beantworten bitte, danke.
                        Zuletzt geändert von wahsaga; 08.07.2009, 18:22.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          ja das feld in der datenbank ist leer.

                          zu den andren fragen: feld ist als variant deklariert, soviel ich weiss.
                          zum qurey row, ja sollte direkt nen feldinhalt wiedergeben
                          Zuletzt geändert von j4n; 08.07.2009, 18:24.

                          Kommentar


                          • #14
                            Zitat von j4n Beitrag anzeigen
                            ja das feld in der datenbank ist leer.
                            Vielleicht verwechsel ich jetzt was, aber was hat das Datenbankfeld mit der IF-Abfrage zu tun, die du etwas weiter oben ansprichst?

                            Kommentar


                            • #15
                              sry, bin kein phpler =/.

                              PHP-Code:
                                      $mandant $db->queryRow('SELECT * FROM kundenlizenzen WHERE Firmenschalter = \''$this->get['f'] .'\'');
                                      
                                      if(!
                              $mandant) {
                                          
                              $mandant $db->queryRow('SELECT * FROM kundenlizenzen WHERE FB1 = \''$this->get['fb1'] .'\'');
                                      } else {
                                          return 
                              $mandant['ID']; 
                              aber für mich erklärt sich das so:

                              in der ersten zeile wird die variable $mandant deklariert, soll aber nicht deklariert werden, wenn das feld firmenschalter in der datenbank leer ist.

                              Die zweite Zeile mit if erklärt sich mir so, dass er nur in diese prozedur geht, wenn der variablen in der ersten zeile nichts übergeben wurde. oder versteh ich das falsch?

                              ich bin kein phpler, daher denk ich, dass ich eher nen denkfehler habe .


                              Oder dient die if abfrage dazu, zu checken ob in der datenbank bereits ein feld ist mit dem wert?

                              Kommentar

                              Lädt...
                              X