Solved: PHP - UPPER() Function ??

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/solved_php_upper_function_83537/page_1 - zur Vollversion wechseln!


grOOvekill@ schrieb am 25.06.2003 um 09:32

Sgott,

also, ich versuche nun schon seit geraumer Zeit folgendes Problem zu lösen, krieg's aber nicht hin.

Ich habe eine Eingabemaske, in der unter anderem ein Name und eine Stundenanzahl eingegeben wird. Diese werden dann mit den anderen Daten bei einem Klick auf Speichern in eine mysql Datenbank gepfeffert. Gut.

Nun muß ich aber eine Gesamtstundenanzahl berechnen und zwar für jeden einzelnen Namen, der eingegeben wurde. Hierbei muß ich aber berücksichtigen, daß die Leute einmal Hans, dann hans oder HaNs schreiben. Dazu kann ich doch den eingegebenen String einfach mittels der Funktion upper() in Grossbuchstaben umwandeln, oder? Nur haut des leider bei mir nicht hin.

Hier mal das, was ich geschrieben habe:
if ($zeile[name] == UPPER("Christoph")){
$stunden_christoph += $zeile[anzstd];
}

Aber des geht leider net. Irgendwelche Ideen?


manalishi schrieb am 25.06.2003 um 10:00

du musst den namen aus dem queryresult mit upper in großbuchstaben umwandeln und dann mit z.b. CHRISTOPH vergleichen

oder du lässt das die datenbank für dich erledigen =)


funka schrieb am 25.06.2003 um 10:22

der trick is das du beides in grossbuchstaben verwandelst fuer den vergleich ;)


grOOvekill@ schrieb am 25.06.2003 um 10:25

Also so sollte das funktionieren?

if (UPPER($zeile[name]) == "HERLIND"){
$stunden_herlind += $zeile[anzstd];
}

Tut es aber nicht. :(

UNd wie könnte ich das die Datenbank für mich erledigen lassen? Auf die Idee bin ihc noch gar nicht gekommen.


manalishi schrieb am 25.06.2003 um 10:28

naja, du kannst z.b. case-unsensitive nach einem namen selecten und dann die summe errechnen lassen

edit: afair ist der LIKE operator caseunsensitive


atrox schrieb am 25.06.2003 um 10:38

mysql string functions: http://www.mysql.com/doc/en/String_functions.html
string comparsion: http://www.mysql.com/doc/en/String_..._functions.html
case sensitivity: http://www.mysql.com/doc/en/Case_Se..._Operators.html

mit aggregat-funktionen kannst du vermutlich das komplette aufsummieren die db erledigen lassen:

select upper(name),sum(anzstunden) from table group by upper(name);

//edit: mysql aggregatfunktionen: http://www.mysql.com/doc/en/GROUP-BY-Functions.html

//edit2: braucht man immer wieder zum nachschlagen -> added to tutorial-thread.


grOOvekill@ schrieb am 25.06.2003 um 11:59

Cool, so hat's funktioniert! Vielen Dank für die Links! :)




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026