Mailinglisten-Archive |
> $res1 = mysql_query("select distinct seitenbezug from nav where hauptseite = > 0 order by seitenbezug"); > while($data = mysql_fetch_array($res1)) > { > // Nummer der Hauptseite aus Spalte Seitenbezug > $haupt = substr($data['seitenbezug'],0,strpos($data['seitenbezug'],'.')); > echo 'haupt: '.$haupt.'<br>'; > $res2 = mysql_query("select * from nav where > substring_index(dateiname,'_',1) = '$haupt' "); > while($unter = mysql_fetch_array($res2)) > { > $unternav = substr($unter['dateiname'],0,strpos($unter['dateiname'],'.')); > echo 'unter: '.$unternav.'<br>'; > } > } wenn du noch etwas suchst findest du bestimmt auch eine noch langsamere Lösung ... du solltest die Daten mit einem Query holen, wie Denis schon schrieb, allerdings mit einem LEFT JOIN anstelle eines INNER JOIN, und Formatierung der Ausgabe ist dann wieder Aufgabe von php! z.b. so: SELECT SUBSTRING_INDEX(`hauptseite`.`dateiname`, '.', 1) AS `hauptseite`, `unterseite`.`dateiname` AS `unterseite` FROM `seitenbezug` AS `hauptseite` LEFT JOIN `seitenbezug` AS `unterseite` ON `hauptseite`.`dateiname` = `unterseite`.`seitenbezug` ... $lasthauptseite = ''; while ( $row ... ) { if ( $lasthauptseite !== $row['hauptseite'] ) { $lasthauptseite = $row['hauptseite']; echo 'haupt: ' . $row['hauptseite'] . "\n"; } if ( ! empty($row['unterseite']) ) { echo 'unter: ' . $row['unterseite'] . "\n"; } } ... oder so in der Art... habs jetzt nicht kontrolliert -- Sebastian Mendel *www.warzonez.de* www.sebastianmendel.de | www.tekkno4u.de | www.nofetish.com
php::bar PHP Wiki - Listenarchive