Einfache Abfrage funzt nicht :(
Mike
- php
Ich habe eine Abfrage, nach der ich entweder Deutsch oder Englisch als Sprache verwenden möchte.
In einer mySQL-Datenbank stehen in der Tabelle "Login" und dort unter "sprache" jeweils "Deutsch" oder "English".
Dann habe ich dieses Script geschrieben, aber er gibt immer "DEUTSCH" aus.
<?
$benutzername = "test";
// Hier drin sind alle Infos für die Verbindung zur Datenbank
include("../../deutsch/include_sqlconnect.php");
// Hier beginnt die Abfrage und der jeweils gewählte Benutzer wird eingelesen
$abfrage = "SELECT * FROM login WHERE benutzername = '$benutzername'";
$ergebnis = mysql_query($abfrage);
while ($row = mysql_fetch_array ($ergebnis))
{
if ($row[sprache] = 'Deutsch' OR 'deutsch') {
echo "DEUTSCH";
} else {
echo "ENGLISH";
}}
?>
Kann jemand weiterhelfen? Er gibt immer DEUTSCH aus, selbst wenn in der Datenbank was anderes steht. Die Verbindung zur Datenbank klappt einwandfrei, denn auch sonst funktioniert alles.
Grüsse
Mike
hallo
{
if ($row[sprache] == 'Deutsch' OR 'deutsch') {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
man benutze 2 == , da Du sonst einen wert zuweist
in Deinem Falle hattest DU also immer deutsch zugewiesen
und da zuweisen meist klappt, hat die if-Abfrage true zurückgegeben
Grüsse
Mike
ciao
romy
Huhu
if ($row[sprache] == 'Deutsch' OR 'deutsch') {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
man benutze 2 == ,
und beachte auch die 2. Bedingung nach dem OR.
Da ein String ungleich '' immer wahr ist liefert obiger Ausdruck
immer true.
Also
if ($row['sprache'] == 'Deutsch' OR $row['sprache'] == 'deutsch')
oder
if ( strtolower( $row['sprache']) == 'deutsch' )
in diesem Fall würde sich evtl. auch ein switch anbieten. (Im Hinblick auf die Spanische und Chinesische Sprachversion ;-)
Auf dieser Seite
http://www.php.net/manual/de/language.types.array.php
unter "Array do's und don'ts"
steht beschrieben warum es mit_mit_Tüttelchen "richtiger" ist als
mit_mit_ohne_Tüttelchen.
Viele Grüße
lulu