Query was empty

Hallo Big-Tux,

danke für deine Nachricht.
Habe jetzt alles noch einmal bearbeitet werde einfach nicht Schlau draus. Mit dein query in das admin gepackt er findet
>> bm_datenbank.minr <<
nicht obwohl diese Tabelle und auch die Spalte existiert.
Nehme ich mein query das funktioniert im Admin, schmeißt aber den Fehler aus
Unknown column 'Berlin' in 'where clause'
Der Name Berlin ist richtig in der Spalte geschrieben.
Gruß
 
Probier bitte mal bei der Abfrage anstatt mysql_fetch_assoc => mysql_fetch_array zu benutzen, k.A. Warum aber ich versuch immer zu vermeiden assoc zu nutzen...

Mit der WHERE-Klausel, kann es sein das in der DB vor oder hinter dem Berlin ein Leerzeichen ist?

Oder mal was ganz anderes, greifst du eigentlich auf die richtige Datenbank zu? Hast du evtl. ne zweite wo die Daten ähnlich aber nicht gleich sind? Könnte ja sein.
 
Weil fetch_array doppelt soviel platz im Speicher verbraucht. Oder zumindest auf jeden Fall mehr, auch wenn die doppeldeutigkeit der Variablen durch eine Referenz realisiert wurde.
 
Halo an alle,

danke für die Hilfe.

Aber das Problem ist leider noch nicht gelöst.
Da ich mich nicht so gut in php auskenne habe ich einige Test query´s geschrieben und festgestellt das er das Wort was übergeben wird nicht erkennt.
Habe das query etwas verkürzt. Will erst wissen warum übergibt er nicht im Query den Inhalt vom $_SESSION["land"]. Hier bin ich schon am verzweifel. Im Echo zeigt er den Inhalt vom $_SESSION["land"] an. Wenn das einer weis bitt um Nachricht.

PHP:
echo $_SESSION["minr"];
echo "<br>";
echo $_SESSION["land"];
echo "<br>";

$suchen = mysql_query("
                    SELECT
                        bm_kategorien.kat_id,
                        bm_kategorien.kat_bez
                    FROM
                        bm_kategorien
                    WHERE
                        bm_kategorien.kat_bez = ".$_SESSION["land"]."

                    ")or die(mysql_error());

               $suchen1 = mysql_fetch_assoc($suchen);

                         $zugehoer = $suchen1["kat_bez"];
                         $land = $suchen1["kat_id"];

Die Ausgabe sieht so aus:

442
Berlin
Unknown column 'Berlin' in 'where clause'
Gruß an alle
grübel-grübel
 
Weil fetch_array doppelt soviel platz im Speicher verbraucht. Oder zumindest auf jeden Fall mehr, auch wenn die doppeldeutigkeit der Variablen durch eine Referenz realisiert wurde.
Deshalb auch meine Frage an Big-Tux:
btw. Wieso mysql_fetch_array anstatt mysql_fetch_assoc?

Geht es denn so?
PHP:
echo $_SESSION['minr'];
echo "<br>";
echo $_SESSION['land'];
echo "<br>";

$suchen = mysql_query("
                    SELECT
                        `bm_kategorien`.`kat_id`,
                        `bm_kategorien`.`kat_bez`
                    FROM
                        `bm_kategorien`
                    WHERE
                        `bm_kategorien`.`kat_bez` = '" . $_SESSION['land'] . "'")or die(mysql_error());

               $suchen1 = mysql_fetch_assoc($suchen);

                         $zugehoer = $suchen1['kat_bez'];
                         $land = $suchen1['kat_id'];

Ansonsten mal den Artikel "Fehlerbehebung in PHP" und schauen ob er dir weiterhilft.
 
Zuletzt bearbeitet:
Das liegt evtl. daran dass du
PHP:
$suchen = mysql_query("
                    SELECT
                        bm_kategorien.kat_id,
                        bm_kategorien.kat_bez
                    FROM
                        bm_kategorien
                    WHERE
                        bm_kategorien.kat_bez = ".$_SESSION["land"]."

                    ")or die(mysql_error());
im $_SESSION Array den Index mit doppelten Anführungszeichen versehst anstatt mit einfachen.

Oder hast du nicht meine Lösung genommen?
 
Warum mysql_fetch_array() und nicht mysql_fetch_assoc() oder mysql_fetch_row()?
Weil man bei *array() die Funktionen *assoc() und *row() mit drin hat und beim Programmieren so beiweitem weniger Aufwand hat? Wenn man sich die Funktion genau ansieht kann man wählen ob man ein Nummerisches, ein Assoziatives oder beide Array's haben will, was förmlich nach einer Alias-Funktion schreit.

Und zu Thema Ressourcenverbrauch... nein ist unwesendlich. Zitat:

PHP.Net hat gesagt.:
Zu betonen ist, dass der Gebrauch von mysql_fetch_array() nicht signifikant langsamer ist als mysql_fetch_row(), obwohl die Funktion einen sichtlichen Mehrwert bietet.

PHP:
function sql_array($query, $type = 0) {
	switch($type) {
		case 0:mysql_fetch_array($query, MYSQL_ASSOC);break; // Assoziatives
		case 1:mysql_fetch_array($query, MYSQL_NUM);break; // Nummerisches
		case 2:mysql_fetch_array($query, MYSQL_BOTH);break; // Assoziatives & Numerisches
		default:mysql_fetch_array($query, MYSQL_BOTH);break; // Default
	}
}
 
Zurück