Zur Navigation

aus 2 mach 1

1 tobi

Hallo,

ich habe 2 Dateien die ich gerne in 1 zusamenfassen möchte, da mein Joomla nur eine weiße Seite ausgibt, sabald ich beide Beiträge untereinander aktiv habe.
Beide Codes funktionieren unabhängig voneinander aber. Wie stelle ich dies am Dümsten an?
<?php
$nextWeek = time() + (3 * 24 * 60 * 60); // 3 Tage; 24 Stunden; 60 Minuten; 60 Sekunden


//Datenbank verbinden
include ("zugang.php.inc");


//sql Befehl 
$sql = "
SELECT id, wochentag, spielzeit, spielklasse, heimmannschaft, gastmannschaft, heimergebnis, gastergebnis FROM spielergebnisse WHERE spielzeit BETWEEN CURDATE() AND CURDATE() + INTERVAL 3 DAY ORDER BY spielzeit";

$db_erg = mysql_query( $sql );
if ( ! $db_erg )

{
die('Ungültige Abfrage: ' . mysql_error());
}

function date_mysql2german($date) {
$d = explode("-",$date);

return sprintf("%02d.%02d.%04d", $d[2], $d[1], $d[0]);
}

$anzahl = mysql_num_rows($db_erg);

if ($anzahl == 0) {


echo " <p>In den nächsten 3 Tagen finden keine Verbandsspiele mit TTC-Beteiligung statt.</p>
";

}
else {

$anzahl = 1; 

while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{

$expDate = explode(" ",$zeile['spielzeit']);


echo " ". $zeile['wochentag'] ."
". date_mysql2german($expDate[0])." - ".substr($expDate[1],0,5)."Uhr:
". $zeile['heimmannschaft'] ."
-
". $zeile['gastmannschaft'] ."
(". $zeile['spielklasse'] .")
<br /> ";
$anzahl++;
}

mysql_free_result( $db_erg );

}


// Datenbank schließen
mysql_close($link);

?>

<?php
$lastWeek = time() - (7 * 24 * 60 * 60); // 97Tage; 24 Stunden; 60 Minuten; 60 Sekunden

// Melde alle PHP Fehler (siehe Changelog)
error_reporting(E_ALL);

//Datenbank verbinden
include ("zugang.php.inc");

//sql Befehl 
$sql = "
SELECT id, wochentag, spielzeit, spielklasse, heimmannschaft, gastmannschaft, heimergebnis, gastergebnis FROM spielergebnisse WHERE spielzeit BETWEEN (CURDATE() - INTERVAL 7 DAY) AND CURDATE() + INTERVAL 1 DAY ORDER BY spielzeit";

$db_erg = mysql_query( $sql );
if ( ! $db_erg )

{
die('Ungültige Abfrage: ' . mysql_error());
}

function date_mysql2german($date) {
$d = explode("-",$date);

return sprintf("%02d.%02d.%04d", $d[2], $d[1], $d[0]);
}

$anzahl = mysql_num_rows($db_erg);

if ($anzahl == 0) {

echo " 
<p>In den vergangenen Tagen fanden keine Verbandsspiele statt.</p>
";

}
else {

$anzahl = 1; 

while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{

$expDate = explode(" ",$zeile['spielzeit']);

echo " 
". $zeile['wochentag'] ."
den ". date_mysql2german($expDate[0]).":
". $zeile['heimmannschaft'] ."
-
". $zeile['gastmannschaft'] ."
". $zeile['heimergebnis'] .":". $zeile['gastergebnis'] ."
(". $zeile['spielklasse'] .")
<br /> ";
$anzahl++;
}

mysql_free_result( $db_erg );

}


// Datenbank schließen
mysql_close($link);

?>

Gruß Tobi

PS: noch ein gutes neues Jahr.

02.01.2012 15:36

2 Jörg Kruse

da mein Joomla nur eine weiße Seite ausgibt

Ist display_errors ausgeschaltet, dass keine PHP-Fehler ausgegeben werden?

Den Include kannst du natürlich nur beim ersten mal machen - die Datenbank sollte entsprechend nur beim zweiten mal geschlossen werden.

Weitere Stolpersteine beim Zusammenfassen ließen sich durch eine PHP-Fehlerausgabe ausfindig machen.

Edit:
gleichnamige Funktionen können auch nur einmal definiert werden

02.01.2012 16:54 | geändert: 02.01.2012 16:56

3 tobi

Hallo,

möglich dass dies ausgeschalten ist, ich erhalte leider nur eine weiße Seite.
Weißt du wies eingeschalten wird?

Ich hatte auch bereits schon versucht alles in 1 Datei zu machen (was auch bedeuten würde nur eine Datenverbindung) und Funktionen hatte ich auch umbenannt, wobei auch hier nur eine weiße Seite zum Vorschein kam.

Gruß Tobi

02.01.2012 17:36

4 Jörg Kruse

möglich dass dies ausgeschalten ist, ich erhalte leider nur eine weiße Seite.
Weißt du wies eingeschalten wird?

In der php.ini. Falls du keinen schreibenden Zugriff darauf hast, kannst du display_errors möglicherweise in der htaccess einstellen (sofern es die Serverkonfiguration erlaubt)

php_flag display_errors on

Auf einem Produktivsystem ist die Einstellung "off" schon sinnvoll, auf einem Testsystem sollte man die Fehler aber schon sehen können, sonst kann man sie ja schlecht beheben.

02.01.2012 17:52

5 tobi

Hallo Jörg,

leider habe ich keinen Zugriff auf die .php.ini
Auch dies mit der htaccess schlug leider fehl.

Hast du sonst noch eine Idee?

Gruß Tobi

04.01.2012 00:24

6 Jörg Kruse

Hast du denn Zugang zum Error-Log? dort sollten die Fehlermeldungen aufgelistet sein.

Ansonsten empfiehlt es sich sowieso, die Änderungen auf einem lokalen Entwicklungsserverserver (unter Windows z.B. mit XAMPP) vorab zu testen. Dort hast du ja Zugriff auf Konfiguration und Errorlogs

04.01.2012 09:31

7 tobi

Hallo,

so schauts aktuell mal aus, allerdings auch mit weißer Seite, lokal müßte ich alles erst einrichten. vllt. fällt dir ja gleich was gravierendes auf.

<?php
$nextWeek = time() + (3 * 24 * 60 * 60); // 3 Tage; 24 Stunden; 60 Minuten; 60 Sekunden
$lastWeek = time() - (7 * 24 * 60 * 60); // 97Tage; 24 Stunden; 60 Minuten; 60 Sekunden


// Melde alle PHP Fehler (siehe Changelog)
error_reporting(E_ALL);

//Datenbank verbinden
include ("zugang.php.inc");

$sql_vorschau = "
SELECT id, wochentag, spielzeit, spielklasse, heimmannschaft, gastmannschaft, heimergebnis, gastergebnis FROM spielergebnisse WHERE spielzeit BETWEEN CURDATE() AND CURDATE() + INTERVAL 3 DAY ORDER BY spielzeit";
			
//sql Befehl			
$sql_rueckblick = "
SELECT id, wochentag, spielzeit, spielklasse, heimmannschaft, gastmannschaft, heimergebnis, gastergebnis FROM spielergebnisse WHERE spielzeit BETWEEN (CURDATE() - INTERVAL 7 DAY) AND CURDATE() + INTERVAL 1 DAY ORDER BY spielzeit";

echo " <p><b>Vorschau:</b></p>";

$db_erg_vorschau = mysql_query( $sql_vorschau );
if ( ! $db_erg_vorschau )

{
die('Ungültige Abfrage: ' . mysql_error());
}

function date_mysql2german($date) {
$d = explode("-",$date);

return sprintf("%02d.%02d.%04d", $d[2], $d[1], $d[0]);
}

$anzahl = mysql_num_rows($db_erg_vorschau);

if ($anzahl == 0) {


echo " <p>In den nächsten 3 Tagen finden keine Verbandsspiele mit TTC-Beteiligung statt.</p>
";

}
else {

$anzahl = 1; 

while ($zeile = mysql_fetch_array( $db_erg_vorschau, MYSQL_ASSOC))
{

$expDate = explode(" ",$zeile['spielzeit']);


echo " ". $zeile['wochentag'] ."
". date_mysql2german($expDate[0])." - ".substr($expDate[1],0,5)."Uhr:
". $zeile['heimmannschaft'] ."
-
". $zeile['gastmannschaft'] ."
(". $zeile['spielklasse'] .")
<br /> ";
$anzahl++;
}

mysql_free_result( $db_erg_vorschau );

}

				
$db_erg_blick = mysql_query( $sql_rueckblick );
if ( ! $db_erg_rueckblick )

{
die('Ungültige Abfrage: ' . mysql_error());
}

function date_mysql2german($date) {
$d = explode("-",$date);

return sprintf("%02d.%02d.%04d", $d[2], $d[1], $d[0]);
}

$anzahl = mysql_num_rows($db_erg);

if ($anzahl == 0) {

echo " 
<p>In den vergangenen Tagen fanden keine Verbandsspiele statt.</p>
";

}
else {

$anzahl_rueckblick = 1; 

while ($zeile = mysql_fetch_array( $db_erg_rueckblick, MYSQL_ASSOC))
{

$expDate = explode(" ",$zeile['spielzeit']);

echo " 
". $zeile['wochentag'] ."
den ". date_mysql2german($expDate[0]).":
". $zeile['heimmannschaft'] ."
-
". $zeile['gastmannschaft'] ."
". $zeile['heimergebnis'] .":". $zeile['gastergebnis'] ."
(". $zeile['spielklasse'] .")
<br /> ";
$anzahl_rueckblick++;
}

mysql_free_result( $db_erg_rueckblick );

}				

// Datenbank schließen
mysql_close($link);

?>

Gruß Tobi

05.01.2012 17:21

8 Jörg Kruse

In diesem Fall wird folgender Fehler geworfen:

Fatal error: Cannot redeclare date_mysql2german()

... wie ich weiter oben ja auch schon schrieb:

Zitat von Jörg
gleichnamige Funktionen können auch nur einmal definiert werden

Zitat von tobi
lokal müßte ich alles erst einrichten

Das würde ich alleine deswegen schon machen, um nicht auf dem Produktivsystem testen zu müssen. Im Augenblick bist du mangels Fehlerausgabe "blind" - du kannst dich doch nicht darauf verlassen, dass andere dann deinen Code testen, wenn irgendwas nicht funktioniert (zumal dies ohne die zugehörige Datenbank nur beschränkt möglich ist)?. Allerdings sollte man auf dem Produktivsystem zumindest Zugriff auf die Error-Logs haben, wenn "display_errors = off" gesetzt ist. Es können ja auch Fehler auftreten, die serverbedingt sind und sich auf dem Testsystem nicht nachstellen lassen

05.01.2012 18:48

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]