If-Abfrage funktioniert nicht

jdgf

Mitglied
Hallo,

in meinem Script hat "frage" unterschiedliche Anzahl von Zeichen. Ich möchte, dass entsprechend der If-Abfrage der ausgegebene Text angepaßt wird. Jetzt wird anscheinend nur die zweite() Bedingung geprüft und der Text auf unter 20 Zeichen gekürzt. Es stimmt aber nicht, wenn man nachzählt!
PHP:
$res=mysql_query($test1);
    while ($dsatz = mysql_fetch_assoc($res))
    {
$zeichen = strlen($dsatz["frage"]);	
if ($zeichen < 20) {
 $zeichen==0;
 }
else
	{if ($zeichen < 65) { 
		$zeichen==20;
		} 
		else
			{if ($zeichen = 65) {
		 	$zeichen==20;
			}
			else 
			if ($zeichen > 65) {
		 	$zeichen==65;
			}
		}
	}

	$neu = strpos($dsatz["frage"], " ", 20);
	echo "<p>" .substr($dsatz["frage"], 0, $neu) . " ...</p>";

Der konkrete Text ist über 65 Zeichen lang:
1. Chlor, Natrium, Blech, Selen, Phosphor. 2. Rubens, Einstein, Rembrandt, Cranach, Holbein. 3. Fichte, Kiefer, Eiche, Pappel, Rampe.
und wird auf
1. Chlor, Natrium, Blech,
gekürzt.

Was habe ich falsch gemacht? Danke für die Hilfe!
Gruß, Dietmar
 
Zuletzt bearbeitet:
Für Wertezuweisungen solltest du nur ein = verwenden. == ist ein Vergleich
PHP:
if ($zeichen > 65) {
             $zeichen==65;
            }
// richtig:
if ($zeichen > 65) {
             $zeichen=65;
            }

Jedoch ist das nicht der Fehler den du hast. Wozu berechnest du eine Zeichenanzahl, wenn du am Schluss 20 als Fixzahl übergibst?
PHP:
    $neu = strpos($dsatz["frage"], " ", 20);
//richtig:
$neu = strpos($dsatz["frage"], " ", $zeichen);
 
Wenn du so weiter verschachtelst siehst du bei deinen Projekten bald selbst nicht mehr durch, schreib es lieber so:

PHP:
$zeichen = strlen($dsatz["frage"]);    

if ($zeichen < 20) {
    $zeichen=0;
} else if ($zeichen <= 65) { 
   $zeichen=20;
} else if ($zeichen > 65) {
   $zeichen=65;
}

Am ende hat yaslaw völlig recht, du möchtest ja die Startposition ermitteln, ab wann ein " " (Leerzeichen) gesucht werden soll!
 
Hallo yaslaw, steusi,
danke für eure Tips. Ich habe übersehen, die Variable statt der bisherigen 20 Zeichen als Vorgabe einzufügen. Aber jetzt läuft es.
Gruß, Dietmar
 
Zurück