Seite 1 von 2

vergleich zweier strings

Verfasst: 27.11.2006 20:30
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

Verfasst: 27.11.2006 20:55
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.

re

Verfasst: 27.11.2006 20:57
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.

Verfasst: 27.11.2006 21:03
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)

Verfasst: 27.11.2006 21:06
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...

re

Verfasst: 27.11.2006 21:12
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.

Verfasst: 27.11.2006 21:15
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.

Verfasst: 27.11.2006 21:16
von deathcakeman
:cry: :cry: :cry: :cry:
WIE verdammt nochmal mache ich den vergleich.
Bitte schtreibt mir einen Link, oder den Code oder oder oder

Verfasst: 27.11.2006 21:21
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)

Verfasst: 27.11.2006 21:23
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..