Simon: Unknown column 'folder_name.visible' in 'field list'

Hallo,

was bedeutet diese Fehlermeldung bei einer Abfrage der Datenbank?
Unknown column 'folder_name.visible' in 'field list'

Gruß ... Simon

  1. Moin,

    was bedeutet diese Fehlermeldung bei einer Abfrage der Datenbank?
    Unknown column 'folder_name.visible' in 'field list'

    Das das Feld visible nicht in der Tabelle folder_name existiert. Schreibfehler?

    Stefan

    1. Hi,

      Das das Feld visible nicht in der Tabelle folder_name existiert. Schreibfehler?

      Ja da war ein Leerzeichen in der DB am Ende der Tabelle! Shit sieht man ja nicht.
      Aber jetzt stimmt die Abfrage!
      Wenn ich sie im phpmyadmin eingebe funzt sie auch aber wenn ich sie aus einer PHP heraus aufrufe steht einfach nichts da nicht mal ein Fehler. Die DB-Verbindung steht aber, da andere Dinge ja richtig abgefragt werden.

      Hier mal der Code:
               <?php

      $var_visible = "1";
               $var_status = "visible";

      $dir = mysql_query("SELECT folder_name.id, folder_name.name, folder_name.visible, folder_name.status FROM folder_name WHERE folder_name.visible = ".$var_visible." AND folder_name.status = ".$var_status."");
                           echo mysql_error();
                          if(!$dir) {
                    die("Die Datenbank konnte nicht abgefragt werden.");
                 }

      while ($row = mysql_fetch_array($dir)) {
                          $result = mysql_query("SELECT folder_name.id, folder_name.name, folder_name.visible, folder_name.status FROM folder_name WHERE folder_name.visible = ".$var_visible." AND folder_name.status = ".$var_status." AND folder_name.id = ".$row[id]."");
                          echo mysql_error();
                          if(!$result) {
                    die("Die Datenbank konnte nicht abgefragt werden.");
                 }
                 $row_2= mysql_fetch_array($result);
                 echo "<li><a href="".$_SERVER["PHP_SELF"]."?page=".$row_2[id]."">".$row_2[name]."</a></li>";
               }
              ?>

      Gruß ... der Simon

      1. Moin,

        »»Die DB-Verbindung steht aber, da andere Dinge ja richtig abgefragt werden.

        Hier mal der Code:
                 <?php

        $var_visible = "1";
                 $var_status = "visible";

        $dir = mysql_query("SELECT folder_name.id, folder_name.name, folder_name.visible, folder_name.status FROM folder_name WHERE folder_name.visible = ".$var_visible." AND folder_name.status = ".$var_status."");

        Mach mal hier ein:

        echo $dir;

        Was gibt das? Sieht der Query richtig aus. Wenn ja, kopiere diesen Query und teste ihn auf der MySql-Konsole bzw. in myadmin. Was ergibt das?

        Stefan

        1. Hi,

          echo $dir;

          Der gibt dann das aus : Resource id #5

          Hä? Noch nie gesehen sowas. Und den kann ich ja auch nicht in den phpmyadmin kopieren.

          Gruß ... das Gemeindekind

          1. Der gibt dann das aus : Resource id #5

            Ist ja logisch. War mein Fehler. Schreibe deinen Query mal so

            $sql = "SELECT .......";
            dann ein
            echo $sql; //Hier siehst Du dann den erzeugten Query und der muss stimmen wenn dem so ist kannst Du weiter machen.

            mit

            $dir = mysql_query($sql);

            was gibt das echo?

            Stefan

            1. Hi,

              was gibt das echo?

              Hier das gibt er aus:
              SELECT folder_name.id FROM folder_name WHERE folder_name.visible = 1 AND folder_name.status = visibleResource id #5

              Gruß ... der Simon

              1. Der Code sieht so aus:

                $var_visible = "1";
                         $var_status = "visible";

                $sql = "SELECT folder_name.id FROM folder_name WHERE folder_name.visible = ".$var_visible." AND folder_name.status = ".$var_status."";
                         echo $sql;
                         $dir = mysql_query($sql);
                         echo $dir;

                Gruß ... der Simon

              2. Das echo $dir kannst du wieder rausnehmen.

                SELECT folder_name.id FROM folder_name WHERE folder_name.visible = 1 AND folder_name.status = visible

                wenn das der mittels PHP erzeugte Query ist, was ist das Resultat wenn Du diese Zeile in myadmin reinkopierst und ausführst?

                Wenn da nichts kommt ist der erzeugte Query falsch. weiterhin nehme ich an, das status ein varchar ist, dann sollte es besser so aussehen.

                SELECT folder_name.id FROM folder_name WHERE folder_name.visible = 1 AND folder_name.status = 'visible'

                überprüffe mal alle Hochkommatas od das mit der Felddefinition übereinstimmt.

                Stefan

                1. Hi,

                  Wenn da nichts kommt ist der erzeugte Query falsch. weiterhin nehme ich an, das status ein varchar ist, dann sollte es besser so aussehen.

                  SELECT folder_name.id FROM folder_name WHERE folder_name.visible = 1 AND folder_name.status = 'visible'

                  Ja so funzt das und Du hattest Recht, ist varchar.
                  Aber ich will das ja als Variable nutzen bei folder_name.status = bla

                  Wie kann ich das lösen?

                  Gruß ... der Simon

                  1. Wie kann ich das lösen?

                    Schreibe Deinen Query sauber:

                    $sql = "SELECT folder_name.id, folder_name.name, folder_name.visible, folder_name.status FROM folder_name WHERE folder_name.visible = ".$var_visible." AND folder_name.status = '".$var_status."'";";

                    $dir = mysql_query($sql);

                    Das sollte gehen.

                    Stefan