WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » for-Schleife » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Die letzten 5 Postings in diesem Thema » Alle anzeigen
von Paraplex
Das kann so auch nicht funktionieren, da du wenn du innerhalb von else mehrere Anweisungen abarbeiten lassen willst, diese in geschweiften Klammern einschließen mußt. Nur für den Fall, dass du innerhalb von else nur genau eine Anweisung abarbeiten läßt, kannst du auf die Klammern verzichten. Gleiches gilt übrigens auch für if.

Also:
else genau eine Anweisung;

aber

else{
eine Anweisung;
noch eine Anweisung;
....
}

Außerdem ist die if-Anweisung so auch nicht korrekt. Statt if ({...}==0) muss es if (... ==0)
heißen oder, wenn du Klammern benötigst, auch if((...)==0).

von MarkusStruebel
Hier ein Auszug aus meinem Script:

Wo liegt der Fehler?? P.S.: Ohne die if/else -Abfrage funktioniert alles wie gewünscht... Bei null wird nichts angezeigt, andernfalls die <tr...>

Markus

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21:
for ($i=0; $i<count($items); $i++) {

	if ({count($items)} == 0)
    	echo "Zur Zeit keine Auktionen.<br>n";
  	else

	$cols = &$items[$i];
	$preis_gesamt += (float)str_replace(",", ".", $cols[3]);

	// echo ("<td>". ($i + 1) . ".</td>n"); //

        printf("<tr bgcolor='%s'><td><a href=http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&item={$cols[0]}>{$cols[4]}<br></td></tr>n", bgcolor(1));


	// echo ("endet am {$cols[2]}<br>n"); // Auktionsende

	//echo ("Derzeitiges Gebot: {$cols[3]}</p>n"); // Preis

	// echo("</tr>n");

	}
von Paraplex
Mit for() wirst du da unmittelbar nichts anfangen können. Da brauchst du noch zusätzlich eine if-Anweisung. So wie dein kleines Programm geschrieben ist wäre diese Abfrage allerdings unsinnig, da in deinem Fall $x eh nie 0 ist (zumindest innerhalb der Schleife). Sinnvoller wäre z.B. folgendes:
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11:
<?php
for($x=0;$x<15;$x++)
{
  if ($x==0)
    echo"Wert der Variablen x ist $x<br>";
  else
    echo "Der Wert der Variablen x ist groesser als 0 und betraegt $x<br>";
}
?>

Eine andere Möglichkeit wäre, wenn du z.B. ein etwas längeres Programm geschrieben hast, in dem du $x vielleicht schon vor der for-Schleife einen Zahlenwert zugewiesen hast, dies vor dem Eintritt in die Schleife zu überprüfen, und nur die Schleife zu betreten, wenn $x bereits definiert und ungleich 0 ist.
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12:
<?php
//... hier steht noch weiterer Code, in dem du $x eventuell einen Wert zuweist
if ($x==0)
  echo "Keine Daten!<br>";
else
for($x=1;$x<15;$x++)
{
   echo "Dieses ist der $x. Durchlauf <br>";
}
?>

Hoffe, das war soweit verständlich und in etwa das, was du wissen wolltest.

Gruß

Bin wohl heute noch nicht so fit und irgendwie darf man wohl keinen Backslash verwenden (wird mir jedenfalls jedesmal gelöscht, wenn ich versuche ihn vor $x zu schreiben), deshalb:

von MarkusStruebel
Hallo,

im PHP-Handbuch steht:

1: 
2: 
3: 
4: 
5: 
6: 
7:
<?PHP
for($x=1;$x<15;$x++)
{
  echo "Dieses ist der" . $x . ". Durchlauf <br>";
}
?>


Meine Frage nun: Gibt es eine Möglichkeit, wenn $x = 0 ist, einen echo-Befehl auszugeben, also z. B. echo "Keine Daten".

Oder kann ich da die for-Schleife gar nicht verwenden?

Markus


Nach oben