Output von mehreren Datensätzen

PHP, Ajax, CSS, HTML, Javascript
Eben für die wirklich Harten, die alles selber machen.
Antworten
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Output von mehreren Datensätzen

Beitrag von Holger »

Hi!

Ich habe ein Skript vorliegen, da soll ein Output generiert werden in Form von
Name
Nachname
Abteilung
Produkt1
Produkt2
Produkt3
...

ABER, leider bekomme ich nur:
Name
Nachname
Abteilung
Produkt1

Es fehlen die weiteren Produkte.
Wo ist da der Denkfehler?

Danke!

Code: Alles auswählen

<?php

	if(!isset ($_POST[Suche])) {
		include ('1_Bsp.html');
		exit;
	}
	
$server = "localhost";
$user = "root";
$pass ="";
$database = "process";
$table_1 = "product";
$table_2 = "personal";
$table_3 = "responsibility";
$Username1 = $_POST[Nachname];
$Username2 = $_POST[Name];
$Abteilung = $_POST[Bereich];
$Genre = $_POST[System];

$verbindung = @mysql_connect($server, $user, $pass) or die ("Konnte Verbindung zur $database nicht hergestellt");

mysql_select_db($database, $verbindung) or die ("SQL-Fehler: " . mysql_error());

//$sql = "SELECT Nachname, Vorname, Telefon FROM $table_2 WHERE Nachname = '$Username1' AND Bereich = '$Abteilung'";
$sql="SELECT $table_2.Nachname, $table_2.Vorname, $table_2.Telefon, $table_1.Name FROM $table_2 INNER JOIN $table_1 INNER JOIN $table_3
ON $table_2.Personal_ID = $table_3.Personal_id AND $table_1.Product_ID = $table_3.Product_ID 
WHERE $table_2.Nachname = '$Username1' AND $table_2.Bereich = '$Abteilung' ORDER BY $table_1.Product_ID DESC";

$sql_2="SELECT COUNT($table_1.Name) FROM $table_2 INNER JOIN $table_1 INNER JOIN $table_3
ON $table_2.Personal_ID = $table_3.Personal_id AND $table_1.Product_ID = $table_3.Product_ID 
WHERE $table_2.Nachname = '$Username1' AND $table_2.Bereich = '$Abteilung' ORDER BY $table_1.Product_ID DESC";

$res =mysql_query($sql);
$res_2 = mysql_query($sql_2);
$nums = mysql_num_rows($res);
$result=mysql_fetch_object($res);
$result_2=mysql_fetch_object($res_2);
//print_r($result);

?>
<table width="90%" border="1" align="left" cellpadding="0" cellspacing="0">
<?
echo "<br>";
   if ($result){
       foreach ($result as $key=>$value){
          echo "<tr>";
		  echo "<th>".$key."</th>";
		  echo "<td>".$value."</td>";
		  echo "</tr>";
     	}
    }
	
?>
</table>
<?

mysql_free_result($res_2);
mysql_free_result($res);
mysql_close($verbindung);

?>
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ich würde nicht eine 1:n-Beziehung in eine Anzeigeschleife packen, da unnötige Daten mit gezogen werden.
Frage doch erst einmal die Person ab und stelle die dar.
Dann frage aus der 2. Tabelle zu der Person die Detaildaten ab und stelle die dar (dann eben in einer Schleife).
Ist dann vollkommen ohne JOINs möglich und läuft ggf. sogar schneller...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Du meinst
Abfrage
Output
Abfrage
Output
und zuletzt die Schleife mit den Produktzuordnungen?
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

und zuletzt die Schleife mit den Produktzuordnungen?
Also Du gibst ja aus: Name, Nachname, Abteilung und Produkte.
Produkte sind eine Tabelle, der Rest eine andere Tabelle.
Warum also nicht die Daten des Personals mit der ersten Abfrage aus der Datenbank holen, anzeigen und dann zunächst die zugeordneten Produkte abfragen und über eine Schleife darstellen.
Dann den nächsten Namen, etc...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Ok! Danke!
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se
Antworten