vergleich zweier strings

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
deathcakeman
Mitglied
Beiträge: 52
Registriert: 22.06.2006 16:10

vergleich zweier strings

Beitrag von deathcakeman »

Code: Alles auswählen

If($a < $b)...
//$a kleiner als $b
irgendwie geht das bei mir nicht...wie kann ich zwei werte vergleichen?

mfg
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Was willst du denn vergleichen?
die Länge geht mit strlen():

Code: Alles auswählen

if(strlen($a) < strlen($b))
Bei Zahlen sollte das so funktionieren.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
deathcakeman
Mitglied
Beiträge: 52
Registriert: 22.06.2006 16:10

re

Beitrag von deathcakeman »

nein.
$a und $b sind beides time() funktionen.
$b ist fest.
$a verändert sich.
irgendwann ist $a größer als $b.

und das will ich jetzt erfragen.
nicht die string länge, sondern den wert.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Dann passt deine Überschrift nicht zu der Frage.

Aber was soll "time() funktionen" heißen? Die Werte die von time() dort hinein geschrieben werden? Das sollten eigentlich schon Zahlen sein und somit sollte dein Vergleich funktionieren. Es ist immer hilfreich sich an einer Stelle wo ein unverständlicher Fehler auftaucht den Inhalt der Variablen mal ausgeben zu lassen. Vielleicht mal eine Funktion wie intval() oder floatval() probieren? (IMHO dürfte das aber keinen Unterschied machen wenn es sich um die Ausgabe von time() handelt)
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

time() gibt aber keinen String sondern einen Integer zurück, die werden anders verglichen als Strings.

Hast du dir die beiden zu vergleichenden Werte mal mit echo ausgeben lassen? Nicht selten wundert man sich stundenlang, warum ein Algorithmus nicht funktioniert, obwohl man mit völlig falschen Eingabedaten arbeitet...
KB:knigge
deathcakeman
Mitglied
Beiträge: 52
Registriert: 22.06.2006 16:10

re

Beitrag von deathcakeman »

ja hab ich...is beides mit time() erstellt.
wie auch immer, ich will jetzte einfach nur wissen wie man die beiden werte, so wie im bsp beschrieben vergleicht.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Hilfreich können auch is_xxx Befehle sein mit denen man den Variablentyp prüfen kann (is_bool(), is_int() ...). Dann weiß man ob man tatsächlich das richtige vergleicht.
Zuletzt geändert von gn#36 am 27.11.2006 21:20, insgesamt 2-mal geändert.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
deathcakeman
Mitglied
Beiträge: 52
Registriert: 22.06.2006 16:10

Beitrag von deathcakeman »

:cry: :cry: :cry: :cry:
WIE verdammt nochmal mache ich den vergleich.
Bitte schtreibt mir einen Link, oder den Code oder oder oder
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Wie schon gesagt, wenn das mit einem derartigen Befehl erstellt wurde

Code: Alles auswählen

$a = time();
$b = time();
Dann sollte das mit dem Vergleich

Code: Alles auswählen

if($a < $b)
korrekt funktionieren.
Wenn aber eine der Zahlen z.B. so erhalten wurde

Code: Alles auswählen

$str = "Der Wert lautet 12345";
$a = substr($str,17);
dann muss vermutlich noch eine Typumwandlung mit intval() oder floatval() erfolgen:

Code: Alles auswählen

$a = intval($a);
if($a < $b)
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
deathcakeman
Mitglied
Beiträge: 52
Registriert: 22.06.2006 16:10

Beitrag von deathcakeman »

Code: Alles auswählen

$login_check=mysql_query("SELECT * FROM logins_data WHERE user_id = '$userid'");
while ($row = mysql_fetch_object ($login_check)) {
$check=$row->time_temp_sperre;
}
$time_now=time();
$time_check=$check;
if($time_now <$time_check) {
...
geht aber irgendwie nicht..
Antworten

Zurück zu „Coding & Technik“