09. januar 2013 - 07:42 
												Der er
									5  kommentarer													og 					1  løsning									 
									
		 
		
			
output sprintf loop igennem str_replace 
			jeg har det her mysqli loop, jeg bruger echo sprintf til at udskrive og det fungere, men det bliver udskrevet i toppen af siden, det er jo ikke css stylet endnu. if ($stmt = $mysqli->prepare("SELECT sider.sideid, sider.sidenavn FROM sider")){     $stmt->execute();         $stmt->bind_result($sideid, $sidenavn);         while ($stmt->fetch()){             $txt = sprintf("<a href='%s'> %s </a> ", $sideid, $sidenavn);                  echo $txt; }         $stmt->close();     }else{         printf("Prepared Statement Err: %s\n", $mysqli->error); } men hvis jeg nu gerne vil placere mysqli loopet et andet sted, og jeg fjerner echo $txt og bruger en placeholder på mit design.htm, som hedder %%txt%% og jeg bruger  $skabelon = file_get_contents('design.htm', true); $skabelon = str_replace("%%txt%%",$txt, $skabelon); echo $skabelon; så kommer $txt = sprintf("<a href='%s'> %s </a> ", $sideid, $sidenavn); ikke frem i mit output ?? kan man ikke bruge sprintf sammen med str_replace, og hvad vil være en bedre tilgang til visning af mysqli loopet, det rigtig sted i designet???
					
		
	 
Annonceindlæg tema 
 
Forsvar & beredskab 
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
 
 
	
		
								
					
				09. januar 2013 - 09:07  
				#1 
						
		 
		
			$txt vil jo kun indeholde den sidste side i de rækker du hiver ud - du overskriver $txt for hver iteration af dit loop
		
		
	 
	
		
								
					
				09. januar 2013 - 11:09  
				#2 
						
		 
		
			Ja det stemmer, den sidste række var en tom række, den har jeg fjernet nu, og nu viser den kun den sidste række fra databasen. Det er jo ikke optimalt. Kan jeg lave mysqli sætningen om til en function, sådan at jeg kan udskrive databasen, det sted jeg har brug for det i mit design ??
		
		
	 
	
		
								
					
				09. januar 2013 - 12:57  
				#3 
						
		 
		
			hvad er det præcis du vil have vist? en liste over de rækker du trækker ud, eller?
		
		
	 
	
		
								
					
				09. januar 2013 - 17:52  
				#4 
			 				 
						
		 
		
			Jeg lavede dette her til et andet spoergsmaal. Og det har en ekstra kroelle med to tabeller og 1:M. Men alligevel kan det maaske give lidt inpisration: <?php class Main {     public $txt;     public $subs;     public function __construct($txt) {         $this->txt = $txt;         $this->subs = array();     } }; class Sub {     public $nam;     public function __construct($nam) {         $this->nam = $nam;     } }; function load() {     $data = array();     $con = new mysqli('localhost', 'root', '', 'Test');     $stmt = $con->prepare('SELECT main.txt,subs.nam FROM main LEFT JOIN subs ON main.id=subs.main_id ORDER BY main.txt;');     $stmt->execute();     $stmt->store_result();     $stmt->bind_result($maintxt, $subnam);     $ix = 0;     $lastmaintxt = '>>>>BOF<<<<';     while($stmt->fetch()) {         if($maintxt != $lastmaintxt) {             $ix++;             $data[$ix] = new Main($maintxt);             $lastmaintxt = $maintxt;         }         if($subnam != null) $data[$ix]->subs[] = new Sub($subnam);     }     $stmt->close();     $con->close();     return $data; }; function display_as_lists($data) {     echo "<ul>\r\n";     foreach($data as $main) {         echo "<li>$main->txt</li>\r\n";         echo "<ul>\r\n";         foreach($main->subs as $sub) {             echo "<li>$sub->nam</li>\r\n";         }         echo "</ul>\r\n";     }     echo "</ul>\r\n"; }; function display_as_table($data) {     echo "<table border='1'>\r\n";     echo "<tr><th>Text</th><th>Name</th></tr>\r\n";     foreach($data as $main) {         echo "<tr>\r\n";         $n = count($main->subs);         echo "<td rowspan='$n'>$main->txt</td>\r\n";         for($ix = 0; $ix < $n; $ix++) {             if($ix > 0) echo "</tr>\r\n<tr>\r\n";             $sub = $main->subs[$ix];             echo "<td>$sub->nam</td>\r\n";         }         echo "</tr>\r\n";     }     echo "</table>\r\n"; } $data = load(); display_as_lists($data); display_as_table($data); ?>
		
		
	 
	
		
								
					
				10. januar 2013 - 16:00  
				#5 
						
		 
		
			Hej Arne tak for scriptet, det fungere rigtig godt, og jeg lære også  en del ved at kik det igennem.  Smider du et svar ?  :-)
		
		
	 
	
	
	
		
								
					
				10. januar 2013 - 18:36  
				#6 
			 				 
						
		 
		
			svar
		
		
	 
	
		
	
		
		
		
			
			Vi tilbyder markedets bedste kurser inden for webudvikling