Ankündigung

Einklappen
Keine Ankündigung bisher.

Wo ist der Fehler?

Einklappen

Neue Werbung 2019

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

  • #16
    Mh, dann würde es aber das eine if vorher auch schon nen Fehler anzeigen müssen. Macht es aber nicht. Und mit ""; geht es auch nicht.

    Kommentar


    • #17
      Sorry, das war doch der Fehler.

      Hab den einfach ne Zeile vorher auch gelöscht. Juhu ...

      DANKE!!

      Kommentar


      • #18
        du kannst/solltest es ja bei allen $data`s machen

        in etwa so:
        PHP-Code:
        if ($data[1]!='') {
            echo 
        "name='inv[]' value='".$data[1]."'>".$data[1];
        }
        elseif (
        $data[2]!='') {
            echo 
        "name='inva[]' value='".$data[2]."'>".$data[2];
        }
        elseif (
        $data[3]!='') {
            echo 
        "name='sa[]' value='".$data[3]."'>".$data[3];
        }
        else {
            echo 
        "name='lnr[]' value='".$data[0]."'>".$data[0];

        Wie man Fragen richtig stellt

        Kommentar


        • #19
          Warum sendet isset() true, obwohl die Variable leer ist?

          .. und wieder ein Problem. Ich habe eine Seite gebastelt, bei der eine der Kennziffern eingegeben werden soll.

          PHP-Code:
          echo " [b]Geben Sie EINE der folgenden Nummern ein, um das gewünschte Objektes zu löschen:[/b]
                              <form action='deletedata.php' method='post'>
                                  <table style=' border:0; cellpadding:10px; margin: 30px 0 20px 40px;'>
                                      <tr><td class='spalte_eins'>laufende Nummer:</td>
                                          <td class='spalte_zwei'><input type='text', size='25', maxlength='15', name='lnr'></td>
                                      </tr>    
                                      <tr><td class='spalte_eins'>Inventarnummer:</td>
                                          <td class='spalte_zwei'><input type='text', size='25', maxlength='15', name='inv'></td>
                                      </tr>
                                      <tr><td class='spalte_eins'>Inventarnummer, alt:</td>
                                          <td class='spalte_zwei'><input type='text', size='25', maxlength='15', name='inva'></td>
                                      </tr>
                                      <tr><td class='spalte_eins'>Sachsennummer:</td>
                                          <td class='spalte_zwei'><input type='text', size='25', maxlength='15', name='sa'></td>
                                      </tr>
                                      <tr><td class='reihe_unten' align='center'><input type='submit' name='submit' value=' Objekt löschen '></td>
                                          <td class='reihe_unten' align='center'><input type='reset' value=' Abbrechen'></td>
                                      </tr>
                                  </table>
                                  </form>"

          Und wenn ich nun testen will, ob eine der Variabelen gesetzt ist

          PHP-Code:
          if ( isset($_POST['lnr'])OR isset($_POST['inv']) OR isset($_POST['inva']) OR isset($_POST['sa'])) 
          Gibt mir isset() immer 1 zurück, auch wenn die Variable nicht gesetzt ist. Wieso?!?

          Kommentar


          • #20
            weil die Variable (auch wen nix drin steht) gesezt wird (so viel ich weis :P) versuchs doch einfach mal mit empty() bzw: !empty()

            und was soll das mit den Komas:
            <input type='text', size='25', maxlength='15', name='lnr'> ??
            Wie man Fragen richtig stellt

            Kommentar


            • #21
              isset prüft, ob die Variable definiert wurde (Sprich z.B. $variable = '' ist schon einedefinition).

              Beim absenden des Formulars, sprich wenn du auf den Knopf drückst, definiert er alle Variablen, welche im Formular angegeben sind. D.h. jedes Input feld etc, welches einen namen besitzt, wird definiert.

              Beispiel:
              Wenn folgendes Textfeld leer bleibt, wird trotzdem die Variable definiert -->
              <input type='text' size='25' maxlength='15' name='sa'>

              Somit hat $sa einen Wert, ist also gesetzt (isset), aber halt mit einem leeren Inhalt. ist das selbe wie $sa = '';

              Prüfe anstatt mit isset mit !emtpy oder $var != '' (also ungleich leer)

              Am besten ist es auf isset($_POST['lnr']) und auf leer zu prüfen (!emtpy oder $var != '')

              Ich hoffe ich konnte helfen.

              MFG

              edit: war wieder zu langsam ^^

              Kommentar


              • #22
                Zitat von HK
                isset prüft, ob die Variable definiert wurde (Sprich z.B. $variable = '' ist schon einedefinition).

                Beim absenden des Formulars, sprich wenn du auf den Knopf drückst, definiert er alle Variablen, welche im Formular angegeben sind. D.h. jedes Input feld etc, welches einen namen besitzt, wird definiert.

                Beispiel:
                Wenn folgendes Textfeld leer bleibt, wird trotzdem die Variable definiert -->
                <input type='text', size='25', maxlength='15', name='sa'>

                Somit hat $sa einen Wert, ist also gesetzt (isset), aber halt mit einem leeren Inhalt. ist das selbe wie $sa = '';

                Prüfe anstatt mit isset mit emtpy oder $var != '' (also ungleich leer)

                Am besten ist es auf isset($_POST['lnr']) und auf leer zu prüfen (emtpy oder $var != '')

                Ich hoffe ich konnte helfen.

                MFG
                sag ich ja :P
                Wie man Fragen richtig stellt

                Kommentar


                • #23
                  Ach ich danke euch .. jetzt ist auch klar, warum ein paar Zeilen weiter das nicht geht.

                  Danke für den Tipp.

                  Kommentar


                  • #24
                    Zitat von dsmcg
                    sag ich ja :P
                    Hab zu lang zum erklären gebraucht ^^

                    Kommentar


                    • #25
                      Wo ist der Fehler?

                      OK, dann frag ich euch nochmal um Hilfe.

                      PHP-Code:
                      <?php
                      $qu
                      "SELECT all FROM `archiv` WHERE ";
                                     if (!empty(
                      $_POST['lnr'])) {
                                        
                      $qu.="`lfd Nmmer`=".$_POST['lnr']."";
                                     } elseif(!empty(
                      $_POST['inv'])) {
                                         
                      $qu.="`Inventarnummer`='".$_POST['inv']."'";
                                     } elseif(!empty(
                      $_POST['inva'])) {
                                         
                      $qu.="`Inventarnummer, alt`='".$_POST['inva']."'";
                                     } elseif(isset(
                      $_POST['sa'])) {
                                         
                      $qu.="`Sachsennummer`='".$_POST['sa']."'";
                                     }
                                     echo 
                      $qu;
                                     
                      $rs=mysql_query($qu);
                                     
                      $n=mysql_num_rows($rs);
                      ?>
                      Hier kommt ständig
                      Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in

                      Aber ich weiss nicht wieso. Wenn ich $qu ausgebe, dann stimmt die Abfrage genau mit der SQL Abfrage aus XAMPP überein.

                      Kommentar


                      • #26
                        ich seh jetzt auch kein wirklichen Fehler. Ich würde jedoch das WHERE in die einzelnen Dann-zweige setzen oder einen ansonsten (else) Teil anfügen falls nichts zutrifft.

                        -->

                        PHP-Code:
                        <?php
                        $qu
                        "SELECT all FROM `archiv`";
                                       if (!empty(
                        $_POST['lnr'])) {
                                          
                        $qu.=" WHERE `fd Nmmer`=".$_POST['lnr']."";
                                       } elseif(!empty(
                        $_POST['inv'])) {
                                           
                        $qu.=" WHERE `Inventarnummer`='".$_POST['inv']."'";
                                       } elseif(!empty(
                        $_POST['inva'])) {
                                           
                        $qu.=" WHERE `Inventarnummer, alt`='".$_POST['inva']."'";
                                       } elseif(isset(
                        $_POST['sa'])) {
                                           
                        $qu.=" WHERE `Sachsennummer`='".$_POST['sa']."'";
                                       }
                                       echo 
                        $qu;
                                       
                        $rs=mysql_query($qu) OR die(mysql_error()); // hier nach Error abfragen
                                       
                        $n=mysql_num_rows($rs);
                        ?>
                        und mach mal die(mysql_error()) noch hin (siehe kommentar im Code). Kommt ein Fehler?

                        "lfd Nmmer" sieht auch ein wenig falsch aus.

                        MFG

                        Kommentar


                        • #27
                          Error report habe ich eingeschaltet. Und der sagt nix.

                          Auch wenn ich einfach mal eine Select Anweisung so eingebe (also ohne die If Schleife), gibt es nen Fehler. Es muss an mysql_num_rows liegen. Is das für ein SELECT * geeignet?!

                          Ach ja und wegen der if-schleife, ich habe ja vorher geprüft, ob eines der Variablen gesetzt ist. Deswegen ist ein else nicht nötig.

                          Kommentar


                          • #28
                            Ich bin überfragt. Habe auch mysql_num_rows in einigen Scripts.

                            Beispiel:
                            PHP-Code:
                            <?php
                                $s_ip 
                            "SELECT ip 
                                         FROM vm_ip 
                                         WHERE vmid = "
                            $_SESSION['vm'] .
                                           AND ip = '"
                            $ip ."' 
                                           AND vtime > '" 
                            $sperre ."' 
                                         LIMIT 1;"
                            ;
                                
                            $q_ip mysql_query($s_ip) OR die(mysql_error());
                                
                            $nummeros mysql_num_rows($q_ip);
                            ?>
                            Und es funktioniert ... aber das hilft dir sicherlich auch nicht weiter

                            Kommentar


                            • #29
                              Ich danke dir. Hat jemand anders einen Rat?!!

                              Kommentar


                              • #30
                                Was sagt mysql_error() denn nun? Irgendein Fehler?

                                Gibt es im Code weitere Aufrufe von mysql_num_rows?
                                Was ist mit
                                PHP-Code:
                                $rs=mysql_query($qu) OR die(mysql_error()); // hier nach Error abfragen
                                var_dump($rs);
                                $n=mysql_num_rows($rs);
                                var_dump($n); 

                                Kommentar

                                Lädt...
                                X