jenslm: xml und include

Komme mal wieder nicht weiter.
Mein Code:

  
$xml = simplexml_load_file("".$_SERVER['DOCUMENT_ROOT']."/subordner/templ/template.xml");  
$count = count($xml); //2  
$id = 0;  
		  
do  
{  
	$pos = $xml->positions->position[$id]->name;  
			  
	echo "<div class=\"".$pos."\">";  
					  
	$sql = "SELECT module FROM pos_assoc WHERE pos = '$pos'";  
	$result = mysql_query($sql, $database) or die(mysql_error());  
					  
	do  
	{  
		echo $row['module']; //funktionert einwandfrei  
		include("".$_SERVER['DOCUMENT_ROOT']."/subordner/modules/".$row['module'].".php"); //siehe unten  
	}  
	while($row = mysql_fetch_assoc($result));  
			  
	$id++;  
}  
while($id <= $count);  

die xml dazu:

  
<?xml version="1.0" encoding="utf-8" ?>  
<template>  
	<generals>  
		<inf1>inf1</inf1>  
		<inf2>inf2</inf2>  
	</generals>  
	  
	<positions>  
		<position><name>top</name></position>  
		<position><name>middle</name></position>  
	</positions>  
</template>  

Soweit so gut. Die Ausgabe der gewünschten Variable ($row['module']) funktioniert genauso wie ich mir es vorgestellt habe.

Ausgabe:
nav
content

Setze ich die Variable allerdings in einen Include-Befehl ein erhalte ich Folgendes:

Warning: include(Laufwerk:/xampp/htdocs/subordner/modules/.php) [function.include]: failed to open stream: No such file or directory in Laufwerk:\xampp\htdocs\subordner\templ\html\template.php on line 22

Warning: include() [function.include]: Failed opening 'Laufwerk:/xampp/htdocs/subordner/modules/.php' for inclusion (include_path='.;\xampp\php\pear') in Laufwerk:\xampp\htdocs\subordner\templ\html\template.php on line 22
navText aus nav.php

Warning: include(Laufwerk:/xampp/htdocs/subordner/modules/.php) [function.include]: failed to open stream: No such file or directory in Laufwerk:\xampp\htdocs\subordner\templ\html\template.php on line 22

Warning: include() [function.include]: Failed opening 'Laufwerk:/xampp/htdocs/subordner/modules/.php' for inclusion (include_path='.;\xampp\php\pear') in Laufwerk:\xampp\htdocs\subordner\templ\html\template.php on line 22
contentText aus content.php

Warning: include(Laufwerk:/xampp/htdocs/subordner/modules/.php) [function.include]: failed to open stream: No such file or directory in Laufwerk:\xampp\htdocs\subordner\templ\html\template.php on line 22

Warning: include() [function.include]: Failed opening 'Laufwerk:/xampp/htdocs/subordner/modules/.php' for inclusion (include_path='.;\xampp\php\pear') in Laufwerk:\xampp\htdocs\subordner\templ\html\template.php on line 22

In den letzten Zeilen der 2. und 4. Fehlermeldung wird allerdings alles ausgegeben. Auch der Echo-Befehl der Include-Datei?!
Was mache ich falsch?
Lg, Jens

  1. Hi!

      include("".$\_SERVER['DOCUMENT\_ROOT']."/subordner/modules/".$row['module'].".php"); //siehe unten  
    

    Leerstrings zu verknüpfen ist unsinnig.

    Das SimpleXMLElement arbeitet mit PHP-Magie, konkret: __toString(). Nicht immer gelingt es PHP, einwandfrei festzustellen, dass die String-Darstellung gewünscht ist, also __toString() aufzurufen ist. Da muss man mit einem Typecast nachhelfen: (string)$row['module']
    Da du hier in einem Ausdruck bist (Stringkonkatenation), musst du den Typecast insgesamt auch nochmal klammern.

    Lo!

    1. war das jetzt so gemeint...

      include("".$_SERVER['DOCUMENT_ROOT']."/subordner/modules/".(string)$row['module'].".php");

      oder hab ich da jetzt was falsch verstanden?
      lg, jens

      1. war das jetzt so gemeint...

        ausprobieren! ich glaube aber, er hat es genau so gemeint. wozu ist eig. das "" am anfang des includestrings?

        Nick

        1. ausprobieren! ich glaube aber, er hat es genau so gemeint.

          funktioniert nicht...selbe fehlermeldungen!

          wozu ist eig. das "" am anfang des includestrings?

          ne verdammt gute frage :)

          lg, jens

          1. ich raffs einfach nicht. wie kann denn das sein?
            auch sowas funktioniert nicht:
            include($_SERVER['DOCUMENT_ROOT']."/bp_cms/modules/".(string)$row['module'].".php");

            das hier aber schon
            echo (string)$row['module'];

            lg, jens

            1. und der kleine Fehler befand sich hier:
              while($id <= $count);

              und jetzt funktionierts so:
              while($id < $count);

              lg