fastix®: "Cannot redeclare .. " - Funktion in While-Schleife möglich?

Beitrag lesen

Moin!

Hallo, Danke, das klingt schon einmal vielversprechend.. ich fürchte, ich mache hier aber trotzdem irgendwo einen Fehler; mein Code schaut nun so aus:

Oh ja. Aber das lernst Du noch...

  
<?php  
session_start();  
$username = $_SESSION['username'];  
$link = mysql_connect("localhost","root","") or die ("Keine Verbindung moeglich"); # ich hoffe dies ist nur auf einem localen Host und experimentell.  
mysql_select_db("homepageanwendungen") or die ("Die Datenbank existiert nicht");  
  
$abfrage = "SELECT `Spalte1`, `Spalte2`, `Spalte3` FROM `note` WHERE `username` LIKE '".mysql_real_escape_string($username)."'"; # Besser, sicherer  
# Like macht ohne '%' das selbe wie "=". Gibt es deshalb nur ein Ergebnis? Du scheinst aber zwei zu erwarten?  
  
$ergebnis = mysql_query($abfrage);  
print  mysql_num_rows($ergebnis)." Zeilen zurück gegeben."; # Test  
  
while ($daten = mysql_fetch_array( $ergebnis, MYSQL_ASSOC)) {  
     /* was macht denn extract(daten) so wichtiges?  
     Doch nicht etwa $month,$day,$year in globale Variablen schreiben? Weg damit! */  
     $zahl =  ceil((mktime(0,0,0,$month,$day,$year) - time())/86400); # Das war Deine Funktion  
     if ($zahl == 14) {  
           print $t14; # warum print?  
     } elseif ($zahl == 13) {  
           print $t13;  
     }  
     /* und so weiter. Warum nimmst Du hier nicht [link:http://php.net/manual/de/control-structures.switch.php@title=switch / case]?  
      Der "Fehler" kann auch hier liegen. */  
}  
?>  

In time.inc.php steht jetzt:

nichts mehr.

Ich muss include_once falsch gesetzt haben, denn er gibt immer noch nur die verbleibenden Tage von einer Zeile aus und nicht von beiden :/

Was für zwei Zeilen? Woher weisst Du, dass "SELECT * FROM note WHERE username LIKE '$username'" zwei Zeilen zurück liefert? Warum sollte es das?

Könnt ihr mir bitte sagen, wo ich das hinsetzen muss?

Innerhalb von Schleifen sollte man gewohnheitsmäßig so wenig Aufwand verursachen wie möglich. Also raus mit dem include/require aus der Schleife.

wenn in der zu includierenden Datei eine benötigte Funktion ist, dann nimm require, nicht include. Die Funktion ist unbedingt notwendig, ist die Datei nicht vorhanden oder nicht lesbar, dann ist der Fehler fatal- Abbruch. require oder require_once macht genau das.

Deine Funktion lsst sich zu einem übersichtlichen Einzeiler reduzieren - weg damit und also weg mit dem include/require.

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix