Unerklärliches Problem mit simplen Scipt

Eistee

Erfahrenes Mitglied
Hi,
ich schreibe grad meine Website um und habe nun mit einem meier Script ein Problem.
Wenn ich das Script aufrufe, erscheint lediglich eine weisse Seite - es ist keine Ausgabe zu sehen - auch keine Fehlermeldung.
Ich habe das Script bereits mit meinen anderen Scripten verhlichen, da alle vom prinzip gleich aufgebaut sind.
Hier erstmal der Code:

PHP:
<?php
$res = mysql_connect("localhost", "XXX", "XXX");
if (!$res)
{
	echo "Kann z.Z. keine Verbindung zum Datenbankserver aufbauen.\n";
	exit;
}
mysql_select_db("alkbrueder_de");

$sqlab = "SELECT name, rating, clicks FROM drinks ORDER BY name";
$res = mysql_query($sqlab);

while ($row = mysql_fetch_array($res))
{
	$drinks_query .= '<a href="recipe.php?name='.$row[name].'">'.$row[name].'</a>&nbsp;<b>('.@rating($row[rating], $row[clicks]).')</b><br><br>';
}
mysql_close();	

include("vars.inc.php");

$drinks_output = str_replace("{drinks}", $drinks_query, file_get_contents("templates/drinks.html"));
	
$tpl = str_replace('{content}', $drinks_output, file_get_contents("templates/index.html"));
$tpl = str_replace('{rightbar}', "", $tpl);
$tpl = str_replace('{leftbar}',  "", $tpl);
$tpl = str_replace('{welcome}',  $welcome, $tpl);
$tpl = str_replace('{navi}', $tpl_navi, $tpl);
$tpl = str_replace('{paging}', "", $tpl);

print "$tpl";
?>

Oben wird eine DB-Abfrage getätigt und unten wird das Ergebnis in Templates ausgegeben. An den templates selbst kann es nicht liegen, da es mit allen anderen Scripts ja funktioniert.
Wär super, wenn ihr mir helfen könntet, da ich mir diesen fehler nicht erklären kann...
 
Zeichenketten sollten auch als solche gekennzeichnet werden, denn ich glaube nicht, dass
Code:
name
,
Code:
rating
und
Code:
clicks
Konstanten sind.
 
Also daran liegst sicherlich nicht.
Es handelt sich dabei lediglich um die bezeichnungen der Spalten aus der DB die ich auslesen lasse.
 
Auch dann passiert nichts.
An der MySQL-Abfrage kanns eigentlich auch nicht liegen, da das Script funktionierte, bis ich den unteren Teil mit den Templates umgeschrieben habe.
Mich wunderts nur besonders, da dieser Part bei meinen anderen Scripts eben keinerlei Probleme bereitet und ich an der Funktionsweise nichts geändert habe.
 
Eistee hat gesagt.:
Also daran liegst sicherlich nicht.
Es handelt sich dabei lediglich um die bezeichnungen der Spalten aus der DB die ich auslesen lasse.
Ich würde dir dennoch empfehlen mit ' (Hochkommas) zu arbeiten.
Es kann nämlich sehr wohl daran liegen. :rolleyes:


byez
 
Es hat aber doch mal genau so funktioniert... :confused:
Ich hab den Code jetzt nochmal auf das nötigste zusammen getrichen und die Hochkommas gesetzt:
PHP:
$res = mysql_connect("localhost", "XXX", "XXX");
if (!$res)
{
	echo "Kann z.Z. keine Verbindung zum Datenbankserver aufbauen.\n";
	exit;
}
mysql_select_db("alkbrueder_de");

$sqlab = "SELECT 'name', 'rating', 'clicks' FROM drinks ORDER BY 'name'";
$res = mysql_query($sqlab) or die(mysql_error());

while ($row = mysql_fetch_array($res))
{
	$drinks_query .= '<a href="recipe.php?name='.$row[name].'">'.$row[name].'</a>&nbsp;<b>('.@rating($row[rating], $row[clicks]).')</b><br><br>';
}
mysql_close();

echo $drinks_query;	
/*
include("vars.inc.php");

$drinks_output = str_replace("{drinks}", $drinks_query, file_get_contents("templates/drinks.html"));
	
$tpl = str_replace('{content}', $drinks_output, file_get_contents("templates/index.html"));
$tpl = str_replace('{rightbar}', "", $tpl);
$tpl = str_replace('{leftbar}',  "", $tpl);
$tpl = str_replace('{welcome}',  $welcome, $tpl);
$tpl = str_replace('{navi}', $tpl_navi, $tpl);
$tpl = str_replace('{paging}', "", $tpl);

print "$tpl";*/

Es ist allerdings noch imer keine Ausgabe zu sehen :(
 
Ich hab den fehler gefunden :)
In der zeile, in der in $drinks_query eingelesen wird, rufe ich eine Funktion "rating()" auf, die in diesem Script nicht existiert - hab bei umschreiben vergessen, die einzubauen :rolleyes:

PHP:
<?php
function rating($i, $z)
{
	return $rating = round($i/$z, 1);
}

$res = mysql_connect("localhost", "XXX", "XXX");
if (!$res)
{
	echo "Kann z.Z. keine Verbindung zum Datenbankserver aufbauen.\n";
	exit;
}
mysql_select_db("alkbrueder_de");

$sqlab = "SELECT name, rating, clicks FROM drinks ORDER BY name";
$res = mysql_query($sqlab) or die(mysql_error());

while ($row = mysql_fetch_array($res))
{
	$drinks_query .= '<a href="recipe.php?name='.$row[name].'">'.$row[name].'</a>&nbsp;<b>('.@rating($row[rating], $row[clicks]).')</b><br><br>';
}
mysql_close();

include("vars.inc.php");

$drinks_output = str_replace("{drinks}", $drinks_query, file_get_contents("templates/drinks.html"));
	
$tpl = str_replace('{content}', $drinks_output, file_get_contents("templates/index.html"));
$tpl = str_replace('{rightbar}', "", $tpl);
$tpl = str_replace('{leftbar}',  "", $tpl);
$tpl = str_replace('{welcome}',  $welcome, $tpl);
$tpl = str_replace('{navi}', $tpl_navi, $tpl);
$tpl = str_replace('{paging}', "", $tpl);

print "$tpl";
?>

Jetzt funktioniert alles bestens - und an den Hochkommas lag es doch nicht! ;)
Trotzdem danke für eure Hilfe!
 
Die richtige Anwendung wären auch Backticks " ` " und keine Hochkomma " ' ". Ich vermute mal, daß deine Abfrage ein leeres Ergebnis zurückliefert, daher bekommst du logischerweise keine Ausgabe bei deinem Code.
 
Zurück