Schwierigkeiten mit Ausgabeschleife

Natschi

Grünschnabel
Hi,
Folgendes Problem: Ich hole mir von der Datenbank Person_ID's die ich dafür benutze um eine von ihm beantwortete Frage aus der datenbank zu holen! Ich habe in der Datenbank jetzt 2 mal die selbe Person angelegt. Ergo es müssten 2 Tabellen ausgegeben werden! Doch die Schleife läuft nur einmal und hört dann auf! Ich bin am verzweifeln -.-.

PHP:
$sql="SELECT person.Person_ID,Person.Name,Person.Hochschulabschluss,Person.Anz_Unterstellte_Mitarbeiter,Person.Vertretung,
	  Beraterlevel.Name,Personalverantwortlicher.Name FROM Person
	  INNER JOIN Beraterlevel
	  ON Person.Beraterlevel_ID=Beraterlevel.Beraterlevel_ID
	  INNER JOIN Personalverantwortlicher
	  ON Person.Personalverantwortlicher_ID=Personalverantwortlicher.Personalverantwortlicher_ID
	  WHERE Person.Name like ".'"'."".$Name."".'"'." ";


	

	$erg = mysql_query($sql)or die(mysql_error());
	$anz1 = mysql_num_rows($erg);
	
	
	for($i=0;$i<$anz1;$i++)
	{
	$P_ID=mysql_result($erg,$i, "Person_ID");
	echo $P_ID;
	
	echo "<font color=blue>";
	echo mysql_result($erg,$i, "Name"); echo "<br>";
	echo mysql_result($erg,$i, "Hochschulabschluss"); echo "<br>";
	echo"Anzahl der Unterstellten Mitarbeiter:";echo mysql_result($erg,$i, "Anz_Unterstellte_Mitarbeiter"); echo "<br>";
	echo mysql_result($erg,$i, "Beraterlevel.Name"); echo "<br>";
	echo"Personalverantwortlicher:";echo mysql_result($erg,$i, "Personalverantwortlicher.Name"); echo "<br>";
	echo"Wird vertreten durch:"; echo mysql_result($erg,$i, "Vertretung"); echo "<br>";
	echo"</font>";
	
	echo "<table width=\"400\" border=\"1\" cellspacing=\"1\"
	cellpadding=\"1\">";
	echo "<tr>";
	echo "<td width=\"200\"
	bgcolor=\"#C6E7DE\">Frage</td>";
	echo "<td
	bgcolor=\"#C6E7DE\">Antwort</td>";
	echo "</tr>";
	echo"</table>";
	 
	$sql="SELECT Befugniss.Fragestellung, Antwort.Antwort FROM antwort_befugniss
	  INNER JOIN antwort ON
	  antwort.Antwort_ID=antwort_befugniss.Antwort_ID
	  INNER JOIN befugniss ON
	  befugniss.Befugniss_ID=antwort_befugniss.befugniss_ID
	  WHERE Person_ID=".$P_ID."";

	$erg = mysql_query($sql)or die(mysql_error());
	$anz = mysql_num_rows($erg);
	
	
	for ($i=0; $i<$anz;$i++)
	{ 
		$a=mysql_result($erg, $i, "Fragestellung"); 
		$b=mysql_result($erg, $i, "Antwort"); 
		//Tabelle Anfang
		echo "<table width=\"400\" border=\"1\" cellspacing=\"1\"
		cellpadding=\"1\">";
		echo "<tr>";
		echo "<td width=\"200\"
		bgcolor=\"#94D6CE\">".$a."</td>";
		echo "<td
		bgcolor=\"#94D6CE\">".$b."</td>";
		echo "</tr>";
		echo "</table>";
	} 
	 
	 }
 
Welche der 2 Tabellen wird nur einal und ncith 2 mal ausgegeben? Die von der ersten Schelife oder die von der 2ten Schleife?

Zum herausfinden was die SQLs genau bewirken ahbe ich vor geraumer Zeit ein Tutorial geschrieben. PHP MySQL Debug Queries

Anbei
item: " als String und nicht als Stringbegrenzung
PHP:
$sql = " like ".'"'."".$Name."".'"'." ";
//kann man auch so schreiben
$sql = " like \"$Name\"";
//für den SQL-String kannst du auch ' anstelle von " verwenden
$sql = " like '$Name'";

item: for() -Schleife und mysql_result()
Es ist besser mit einer While.-Schleife jeweils gleich eine ganze Zeile auslesen als jedesfeld einzeln abzugreiffen
PHP:
while($row = mysql_fetch_assoc($erg)){
    echo $row['Name']."<br />";
    echo "{$row['Hochschulabschluss']}<br />";
}
 
Zurück