jenslm: 3. arraywert kann nicht gelesen werden

guten abend nochmal,
folgendes problem jetzt

ich habe eine variable:
$cat_array = array('about', 'more', 'press');

die gibt an welche Werte aus der URL geholt werden und welche nicht
genauer:

  
$cat_array = array('about', 'more', 'press');  
if (isset($_GET['cat']) && in_array($_GET['cat'], $cat_array))  
{  
	$url_cat = $_GET ['cat'];  
	$sql = "SELECT COUNT(*) FROM docs WHERE cat = '$url_cat'";  
}  
  
else  
{  
	$sql = "SELECT COUNT(*) FROM docs";  
}  

Problem: Aus irgendeinem mir voellig unversichtlichen Grund kann nur die Variable about und press benutzt werden. weder more noch irgendeine andere variable die ich hinzufuege kann benutzt werden, da dann die fehlermeldung
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
erscheint.
meine line1 sieht uebrigens so aus:
include "../config.php";
demnach die line1 der config.php lautet:
$host = "host";
an der config.php kann es aber eigentlich nicht liegen

was ache ich da falsch
lg, jens
frohe weihnachten

  1. Hi!

    Problem: Aus irgendeinem mir voellig unversichtlichen Grund kann nur die Variable about und press benutzt werden. weder more noch irgendeine andere variable die ich hinzufuege kann benutzt werden, da dann die fehlermeldung
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
    erscheint.

    Fehlermeldungen erscheinen nicht, insbesondere MySQL-Fehlermeldungen nicht, denn die müssen explizit ausgegeben werden, wenn man sie sehen möchte. Davon war in deinem Code allerdings nichts zu sehen. Du hast also irgendwo eine Ausgabe der MySQL-Fehlermeldung. Solch eine Meldung bezieht sich auf ein SQL-Statement, also beziehen sich Angaben in der Meldung auf dieses Statement und nicht auf PHP-Code, denn der ist für den MySQL-Server nicht von Belang. Wie lautet dein SQL-Statement, das du dem MySQL-Server sendest?

    Lo!

    1. $sql = "SELECT COUNT(*) FROM docs WHERE cat = '$url_cat'";

      liegt also daran, dass ich $url_cat in '' gesetzt habe
      nachdem ich das geaendert habe erscheint aber die Meldung:

      SELECT COUNT(*) FROM docs WHERE cat = more
      Unknown column 'more' in 'where clause'

      1. Wieso column...das ist doch ein Wert?
      2. Warum wirds als "column" erkannt?

      lg u. guten rutsch,
      jens

      1. liegt also daran, dass ich $url_cat in '' gesetzt habe
        nachdem ich das geaendert habe erscheint aber die Meldung:

        nein...des war nix strings müssen ja in hochkommas!!!

        lag übrigens daran, dass gar kein Datensatz fuer die Kategorie vorhanden war!

        lg.