hallo...
wenn ich im mysql-front die abfrage einfüge, die ich aus dem folgenden script erhalte, dann geht alles ohne probleme. wenn ich jedoch das script ausführe, bekomm ich ne fehlermeldung, das die abfrage fehlerhaft ist und ich somit nix aus der datenbank auslesen kann.
woran kann das liegen? die abfrage ist ja eigentlich korrekt und funzt nur im script nicht
wenn ich im mysql-front die abfrage einfüge, die ich aus dem folgenden script erhalte, dann geht alles ohne probleme. wenn ich jedoch das script ausführe, bekomm ich ne fehlermeldung, das die abfrage fehlerhaft ist und ich somit nix aus der datenbank auslesen kann.
woran kann das liegen? die abfrage ist ja eigentlich korrekt und funzt nur im script nicht
PHP-Code:
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?
include("classes/class_mysql.php");
$db = new db;
$db -> select_db();
$sql = "SELECT a.node_id , a.lft , a.rgt , a.payload
FROM node AS a
INNER JOIN node AS b ON (a.lft <= b.lft AND a.rgt >= b.rgt)
WHERE b.node_id = 12
ORDER BY a.lft";
$res = $db -> sql($sql);
$level = 2;
$having = "level <= $level";
while($row = mysql_fetch_array($res)){
if($level > 2){
$having .= " OR (L > ".$row['lft']." AND R < ".$row['rgt']." AND level = ".$level.")<br>";
}
$level++;
}
$sql = "SELECT pages1.lft AS L, pages1.rgt AS R,
CONCAT(LPAD(pages1.node_id, 2 ,' ') ,
REPEAT(' .', COUNT(*) ),
pages1.payload) AS Baum ,
COUNT(*) AS level
FROM node AS pages1, node AS pages2
WHERE pages1.lft BETWEEN pages2.lft AND pages2.rgt
GROUP BY pages1.lft
HAVING $having";
$res = $db -> sql($sql);
/* while($row = mysql_fetch_array($res)){
echo $row['payload']."<br>";
} */
?>
</body>
</html>
EDIT:
problem ist gelöst. ich hatte noch br-tags im abfrageergebnis drin weil ich mir die query mal ausgeben lassen hab
Kommentar