Variablen Inhalt kontrollieren

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

  • Variablen Inhalt kontrollieren

    Hi,

    leider bin ich irgendwie noch nicht so fit beim PHPen...
    deswegen auch mein Problem.
    Ich möchte den Inhalt einer Variable überprüfen, d.h. ob die Variable etwas enthält oder nicht, denn später sollen in dieser Variable MySQL Select Ergebnisse stehen.
    Ich poste jetzt mal meinen Code, ist aber bestimmt grotten falsch :-(

    if($abfrage = "")
    {
    print "Kein Ergebnis";
    }

    elseif (!abfrage) //glaub das ist total falsch !!
    {
    while ($zeile = mysql_fetch_array($abfrage,MYSQL_BOTH))
    {
    echo("PASS: ". $zeile[0]);
    echo(" - Firma: ". $zeile[1] . "<br>\n");
    echo(" - Vorname: ". $zeile[2] . "<br>\n");
    echo(" - Name: ". $zeile[3] . "<br>\n");
    }
    }

    Wäre super wenn mir jemand etwas helfen könnte

  • #2
    mach so
    if(isset($variable)){
    blablaba...
    }
    das langt schon
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      = ist ein Zuweisungsoperator, während
      == ein Vergleichsoperator ist!

      dh. mit
      if($abfrage = "") weist Du $abfrage den Wert "" zu,
      und da diese Bedingung immer true ist, wird die Schleife
      immer ausgeführt.

      richtig muß es heißen:
      if($abfrage == ""){...}
      oder für nicht gleich:
      if($abfrage != ""){...}

      Gruß
      Thomas
      Gruß
      Thomas

      Kommentar


      • #4
        Original geschrieben von Thomas
        mit if($abfrage = "") weist Du $abfrage den Wert "" zu,
        und da diese Bedingung immer true ist ...
        Der Leerstring ist immer falsch, und somit auch das Ergebnis der Operation. Aber der Rest ist korrekt!
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar


        • #5
          Danke!
          Erstmal möchte ich mich bei allen bedanken, für Ihre Hilfe.

          Jetzt noch mal ne Frage, wenn du schreibst leer String ist immer falsch, was müssten ich dann einsetzen für "Leer" ?
          Wenn ich die Version von Thomas nutzen wollte ?

          Mein Code sieht jetzt so aus:

          if(isset($abfrage)){
          while ($zeile = mysql_fetch_array($abfrage,MYSQL_BOTH))
          {
          echo("PASS: ". $zeile[0]);
          echo(" - Firma: ". $zeile[1] . "<br>\n");
          echo(" - Vorname: ". $zeile[2] . "<br>\n");
          echo(" - Name: ". $zeile[3] . "<br>\n");
          }
          }
          elseif(!isset($abfrage)){
          echo "Kein Ergebniss";
          }

          Leider funktioniert nur der erste Teil, wenn das nicht true ist bekomme ich keine Ausgabe??
          Bräuchte da nochmal eure Hilfe

          Kommentar


          • #6
            deine Schleife sollte korrekt funktionieren,
            der Fehler sollte woanders liegen:
            liegt dein Code in einer Funktion, und Du hast deshalb
            keinen Zugriff auf $abfrage -> global $abfrage;
            oder dein mysql-Krempel funzt nicht...

            Gruß
            Thomas
            Gruß
            Thomas

            Kommentar


            • #7
              Der MySQL Krempl funktioniert, weil ich ja die Ausgabe erhalte wenn der erste Teil der Schleife True ist.
              Aber wenn die Variable leer ist, also FALSE, dann springt er anscheinend nicht in den elseif Zweig.
              Ich erhalte dann einfach keine Ausgabe sondern nur eine leere Webseite

              Kommentar


              • #8
                hmm...seltsam aber tausche doch
                elseif(!isset($abfrage)){
                durch
                else {

                Gruß
                Thomas
                Gruß
                Thomas

                Kommentar


                • #9
                  Original geschrieben von mastermack
                  [...]Aber wenn die Variable leer ist, also FALSE, dann springt er anscheinend nicht in den elseif Zweig.
                  [...] [/B]
                  isset($variable) fragt ab ob eine variable EXISTIERT - existieren tut sie auch, wenn irgendwo was in der art $variable=""; steht...

                  kanns das vielleicht sein?

                  Kommentar


                  • #10
                    Original geschrieben von WhiteMountain
                    Original geschrieben von mastermack
                    [...]Aber wenn die Variable leer ist, also FALSE, dann springt er anscheinend nicht in den elseif Zweig.
                    [...]
                    isset($variable) fragt ab ob eine variable EXISTIERT - existieren tut sie auch, wenn irgendwo was in der art $variable=""; steht...

                    kanns das vielleicht sein? [/B]
                    Ja, die Variable wird ja durch das SQL Statement gefüllt.
                    Es soll ja geprüft werden was in der Variable steht, ob sie ein Ergebnis enthält oder ob sie leer ist.
                    Die Variable ist auf jeden Fall vorhanden

                    Kommentar


                    • #11
                      Original geschrieben von Thomas
                      hmm...seltsam aber tausche doch
                      elseif(!isset($abfrage)){
                      durch
                      else {

                      Gruß
                      Thomas
                      Meinst du ich soll alles in der Klammer weglassen und nur else benutzen ?

                      Kommentar


                      • #12
                        Also ich habe es eben auch nur mit else versucht, das funktioniert auch nicht.
                        Ich weiß nicht mehr was ich noch machen soll bzw. was ich falsch mache.
                        Bin um jeden Tip dankbar!

                        Kommentar


                        • #13
                          @mastermack: Ja.

                          if (bedingung ist gegeben){
                          // tu dies
                          }
                          else { //bedingung ist nicht gegeben
                          // tu das
                          }

                          Ist vom progen eh sauber, so läuft immer genau
                          eine Schleife durch (tu dies oder tu das).

                          Gruß
                          Thomas
                          Gruß
                          Thomas

                          Kommentar


                          • #14
                            Danke das du mir so hilfst.
                            Ich habe jetzt einfach mal so ne Schleife geschrieben, das funtioniert einwandfrei.
                            Aber egal was ich mache in dem Beispiel will das einfach nicht.
                            Wenn die if Bedingung erfüllt ist, dann bringt er die Ausgabe die angegeben ist.
                            Würde aber die Else Anweisung richtig sein, dann macht er nichts

                            Hier noch mal der Code:

                            $abfrage = mysql_query ("SELECT * FROM adminzone where Level = '$Level'") or die ("Abfrage nicht möglich");
                            print ("Abfrage wird ausgeführt");

                            if(isset($abfrage)){
                            while ($zeile = mysql_fetch_array($abfrage,MYSQL_BOTH))
                            {
                            echo("PASS: ". $zeile[0]);
                            echo(" - Firma: ". $zeile[1] . "<br>\n");
                            echo(" - Vorname: ". $zeile[2] . "<br>\n");
                            echo(" - Name: ". $zeile[3] . "<br>\n");
                            }
                            }
                            else {
                            echo "Kein Ergebniss";
                            }

                            Kommentar


                            • #15
                              Original geschrieben von mastermack

                              $abfrage = mysql_query ("SELECT * FROM adminzone where Level = '$Level'") or die ("Abfrage nicht möglich");
                              ...
                              if(isset($abfrage)){
                              Wenn er in der ersten Zeile stirbt, wenn das mysql_query net geht, warum fragst Du dann nochmal
                              if(isset($abfrage)) $abfrage isset, wenn mysql_query geht.
                              Beantworte nie Threads mit mehr als 15 followups...
                              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                              Kommentar

                              Lädt...
                              X