Schleife in Schleife

Constan

Mitglied
Also in der DB sind die Daten vorhanden und auch Korrekt nur das Script will diese net anzeigen, habe ich irgendwo einen Fehler gemacht? Geht das so wie ich mir das hier denke (Schleife in Schleife)?

Bitte helft mir. Danke schon mal im Vorraus.

PHP:
			$nametmpq = mysql_query("SELECT uname FROM users");
			$nameq = mysql_query($nametmpq);
			while ($resultname = mysql_fetch_assoc($nameq))
			{
			$uidtmpq = mysql_query('SELECT * FROM users WHERE uname = "' . $resultname["uname"] . '"');
			$uidq = mysql_query($uidtmpq);
			while ($resultuid = mysql_fetch_assoc($uidq))
			{
			$sqlimg = 'SELECT * FROM gallery WHERE uid = "' . $resultuid["uid"] . '" ORDER BY uid ASC';
			$qryimg = mysql_query($sqlimg);

			while ($resultimg = mysql_fetch_assoc($qryimg))
			{
				echo '<div id="';
				echo $resultuid["uname"];
				echo '" class="galleryElement">';
				echo '<h2>';
				echo 'Constan';
				echo $resultuid["uname"];
				echo '</h2>';
				echo '<div class="imageElement">';
					echo '<h3>';
					echo $resultimg["pname"];
					echo '</h3>';
					echo '<p>';
					echo $resultimg["pbesch"];
					echo '</p>';
					echo '<a href="#" title="open image" class="open"></a>';
					echo '<img src="';
					echo $resultimg["ppfad"];
					echo '" class="full" />';
					echo '<img src="';
					echo $resultimg["ppfadt"];
					echo '" class="thumbnail" />';
					echo '</div>';
				echo '</div>';
			}
			}
			}
 
Nee also kann ich mir net vorstellen das das Gehen kann.
Da du nur ein Sql query senden kanst bis dieses beendet ist.

Die Lösung für den Problem liegt einfach im Sql statment das mußt du zusammen fassen auf einen Sql befehl.
Soweit ich weiß kann man nicht in ein laufendes Querry ein weiteres über php senden.(Sicherheitsvorkehrung)

Mfg Splasch
 
Kann ich machen. Um deines zu Posten müßte man die Beziehungen der Tabellen und den aufbau der Tabellen kennen aber ich kann dir mal ein Muster Beispiel geben.

PHP:
SELECT * FROM user,gallery WHERE user.uname=gallery.uid

Mfg Splasch
 
Hallo du hast ein komisches Script geschrieben :)
Du hast zwei Querysabgeschickt die man in einem Query schicken kann und das auch noch doppelt !? Warum doppelt ?
Außerdem sollte man das selecten von allen Spalten mittels * vermeiden sofern nicht notwendig. (Aus Performance Sicht)

Vorschlag:
PHP:
$sql = "SELECT `uid`,`uname` FROM `users`;";
$erg = mysql_query($sql) od die("Fehler: ".mysql_error());
while ($row = mysql_fetch_object($erg))
{
  $uid = $row->uid;
  $sql = "SELECT `pfad`,`sonstiges`,`usw` FROM `gallery` WHERE `uid`='$uid';";
  $erg1 = mysql_query($sql) od die("Fehler: ".mysql_error());
  while ($data = mysql_fetch_object($erg1))
  {
    // output z.B. 
    echo '<img src="'.$data->pfad.'" alt="bild" />';
  } 
}

Hoffe das hilft dir etwas weiter. ;-)

Alternativ geht es auch mit nur einem einzigen Query der so in der Art funktioniert:
SQL:
SELECT `a`.`uid`,`a`.`uname`,`b`.`pfad`,`b`.`sonstiges` 
FROM `gallery` AS `b`
LEFT JOIN `users` AS `a` USING(`uid`)
ORDER BY `a`.`uname` ASC
 
Zuletzt bearbeitet von einem Moderator:
habs mal so versucht bekomme aber eine weise seite.
ich versuche mal den 2ten vorschlag.

PHP:
$sql = "SELECT `uid`,`uname` FROM `users`";
$erg = mysql_query($sql) od die("Fehler: ".mysql_error());
while ($row = mysql_fetch_object($erg))
{
  $uid = $row->uid;
  $sql = "SELECT `pname`,`pbesch`,`ppfad`,`ppfadt` FROM `gallery` WHERE `uid`='$uid'";
  $erg1 = mysql_query($sql) od die("Fehler: ".mysql_error());
  while ($data = mysql_fetch_object($erg1))
  { 
		echo	'<div id="'.$row->uname.'" class="galleryElement">';
		echo	'		<h2>'.$row->uname.'</h2>';
		echo	'		<div class="imageElement">';
		echo	'			<h3>'.$data->pname.'</h3>';
		echo	'			<p>'.$data->pbesch.'</p>';
		echo	'			<a href="#" title="open image" class="open"></a>';
		echo	'			<img src="'.$data->ppfad.'" class="full" />';
		echo	'			<img src="'.$data->ppfadt.'" class="thumbnail" />';
		echo	'		</div>';
		echo	'	</div>';
			}
			}
 
Du machst nachwie vor 2 abfragen in einem Querry das geht nicht.In php muß zuerst das querry fertig abgearbeitet sein.Danach kann man das 2 querry starten.

Poste deine Tabellenaufbau dann kann man sehen ob du überhaupt beziehungen zu den Tabellen gesetzt hast denn ohne gehts nicht.
Fremdkey ,Primärkey unsw.

Mfg Splasch
 
Hups da hab ich aber was falsch geschrieben...
Ansonsten müsste es klappen.
PHP:
$erg = mysql_query($sql) or die("Fehler: ".mysql_error());
 
Zurück