Groß/Kleinschreibung umgehen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
bekommen
check
code
falsche ansatz
fehlen
funktion
hilfe
kleinschreibung
liste
manual
not
null
set
speichern
stadt
stopp
tabelle
url
vergleichen
wende
-
So ich hab auch mal wieder ein Problem. Ich rufe aus 2 verschiedenen DB-Tabellen einen Namen ab und Prüfe ob beide gleich sind, hierbei unterscheidet MySQL noch in Groß und Kleinschreibung.
Ich möchte die Namen nun gerne ohne Rücksicht auf die Groß und Kleinschreibung Prüfen. Ich habe das jetzt mit
probiert, natürlich wiedermal Erfolglos.strtolower()
//------------------------------------------------------------------- // Prüfen ob IP hinterlegt ist und GangID stimmt /////////////////// //------------------------------------------------------------------- $check = mysql_query("SELECT * FROM $stadt WHERE ip='$ip' AND kw_gangid='$gid'") or die (mysql_error()); // Namen in Varible speichern $werte=mysql_fetch_row(mysql_query("SELECT kw_name FROM $stadt WHERE ip='$ip' AND kw_gangid='$gid' ")); $name_wertetabelle=$werte[0]; $name_smal = strtolower($name_wertetabelle); //------------------------------------------------------------------- // Prüfen ob Rechte vergeben wurden /////////////////// //------------------------------------------------------------------- $name_valitabelle=mysql_fetch_row(mysql_query("SELECT name FROM kw_veri WHERE gangid='$gid' AND name='$name_wertetabelle'")); $name_vali=$name_valitabelle[0]; $name_vali_smal = strtolower($name_vali); if ($name_vali_smal == $name_smal) { } else { sendimagetext ("Stopp mal !!\n\nDir fehlen die Rechte, um diese Liste sehen zu koennen.\nBitte wende dich an Euren Admin um die fehlenden Rechte \nzu bekommen."); }
Ist
nun der falsche Ansatz oder mache ich was falsch?strtolower()
Ich möchte nicht das die Namen beim eintragen in der DB schon in Groß oder Kleinbuchstaben umgewandelt werden, darum der Ansatz bei der Ausgabe.
LG und Danke für die Hilfe :) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
yo mey!
wenn man deinen code so ansieht ... !?
du schreibstPrüfen ob IP hinterlegt ist und GangID stimmt
und anschließend steht dann$check = mysql_query("SELECT * FROM $stadt WHERE ip='$ip' AND kw_gangid='$gid'") or die (mysql_error()); // Namen in Varible speichern $werte=mysql_fetch_row(mysql_query("SELECT kw_name FROM $stadt WHERE ip='$ip' AND kw_gangid='$gid' ")); $name_wertetabelle=$werte[0]; $name_smal = strtolower($name_wertetabelle);
???? [*kopfzerbrechen*]
poste bitte den ganzen code, dazu noch die creates von den tabellen '$stadt' und kw_veri.
weil? das ist hier kein rätzelraten, da versucht man zu helfen (oder auch nicht ;) -
Ich habe wohl unten zuviel weg gelassen um der ersten "Beschreibung" einen Sinn zu geben. Es folgt noch die Prüfung durch
.if(mysql_num_rows($check ) >= 1){
Was ich jetzt nicht ganz verstehe ist der Zusammenhang mit dem tabellen, die Werte werden ja ausgelesen.
Ich möchte nun durch
und$name_smal = strtolower($name_wertetabelle);
erreichen das die Namen alle Kleingeschrieben verglichen werden. Das wird dann in dieser Prüfung benötigt$name_vali_smal = strtolower($name_vali);
$name_vali_smal == $name_smal
//------------------------------------------------------------------- // Prüfen ob IP hinterlegt ist und GangID stimmt /////////////////// //------------------------------------------------------------------- $check = mysql_query("SELECT * FROM $stadt WHERE ip='$ip' AND kw_gangid='$gid'") or die (mysql_error()); // Namen in Varible speichern $werte=mysql_fetch_row(mysql_query("SELECT kw_name FROM $stadt WHERE ip='$ip' AND kw_gangid='$gid' ")); $name_wertetabelle=$werte[0]; $name_smal = strtolower($name_wertetabelle); //------------------------------------------------------------------- // Prüfen ob Rechte vergeben wurden /////////////////// //------------------------------------------------------------------- $name_valitabelle=mysql_fetch_row(mysql_query("SELECT name FROM kw_veri WHERE gangid='$gid' AND name='$name_wertetabelle'")); $name_vali=$name_valitabelle[0]; $name_vali_smal = strtolower($name_vali); if ($name_vali_smal == $name_smal) { } else { sendimagetext ("Stopp mal !!\n\nDir fehlen die Rechte, um diese Liste sehen zu koennen.\nBitte wende dich an Euren Admin um die fehlenden Rechte \nzu bekommen."); } if(mysql_num_rows($check ) >= 1){ //ne ganze menge anderer Code }
Table Create Stadt:
CREATE TABLE `pennereck_de`.`koeln` ( `kw_name` varchar( 20 ) NOT NULL DEFAULT '', `kw_wert` double( 10, 2 ) DEFAULT NULL , `kw_att` int( 20 ) DEFAULT NULL , `kw_def` int( 20 ) DEFAULT NULL , `kw_gangid` varchar( 10 ) DEFAULT NULL , `kw_stadt` varchar( 50 ) DEFAULT NULL , `date` varchar( 80 ) DEFAULT NULL ,
Table Create veri:
CREATE TABLE `pennereck_de`.`kw_veri_koeln_kopie` ( `id` int( 11 ) NOT NULL AUTO_INCREMENT , `Name` varchar( 20 ) CHARACTER SET utf8 NOT NULL , `gangid` int( 7 ) NOT NULL , `stadt` varchar( 10 ) CHARACTER SET utf8 NOT NULL , `datum` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP , `ip` varchar( 20 ) CHARACTER SET utf8 NOT NULL , PRIMARY KEY ( `Name` ) ,
So ich hoffe mal das es so besser ist. -
aff3m1tw4ff3 schrieb:
In PHP gibt es eine Funktion die genau das macht was du suchst, case insensitiv vergleichen: strcasecmp(). Sie funktioniert genau so wie die gleichnamige C-Funktion…
Ist
nun der falsche Ansatz oder mache ich was falsch?strtolower()
-
hackyourlife schrieb:
In PHP gibt es eine Funktion die genau das macht was du suchst, case insensitiv vergleichen: strcasecmp(). Sie funktioniert genau so wie die gleichnamige C-Funktion?
Wie immer tiefster Dank für die Hilfe, läuft damit so wie gewünscht. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage