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
 

Neue Beiträge

Zurück