Daten auslesen aus relationaler mysql DB

cybermailer84

Grünschnabel
Hallo,

meine Tabelle (relation) Kunde besteht aus ein paar FKs.

Generell habe ich die Frage wie lese ich diese Daten dann richtig aus.

Aus einer Tabelle war es für mich klar. Jetzt komme ich gerade nicht weiter hier mein Code:

Beziehung rechnungsAdresse zu Kunde 1:1

1. Tabelle: tbl_rechnungsAdresse

Spalten:
rechnungsAdresse_ID (PK),
rechnungsAdresse_firmenbezeichnung,
rechnungsAdresse_vorname,
rechnungsAdresse_nachname,
rechnungsAdresse_plz,
rechnungsAdresse_ort,
rechnungsAdresse_telefon,
rechnungsAdresse_email,
rechnungsAdresse_VatNo,
rechnungsAdresse_adresse)

2. Tabelle: tbl_kunde

Spalten:
kunde_ID (PK),
fk_rechnungsAdresse_ID (FK),
kunde_Bemerkung

Ich möchte jetzt praktisch die dazugehörige Bemerkung zur jeweiligen KundenID haben.
bzw. umgekehrt es soll zum jeweiligen Kunden rechnungsAdresse + Bemerkung gefüllt werden.

PHP:
<?php 
					   include '../includes/database.php';
					   $pdo = Database::connect();
					   $sql = 'SELECT * FROM tbl_kunde ORDER BY id DESC';
	 				   foreach ($pdo->query($sql) as $row) {
						   		echo '<tr>';
							   	echo '<td>'. $row['rechnungsAdresse_firmenbezeichnung'] . '</td>';
								echo '<td>'. $row['rechnungsAdresse_vorname'] . '</td>';
								echo '<td>'. $row['rechnungsAdresse_nachname'] . '</td>';
								echo '<td>'. $row['rechnungsAdresse_email'] . '</td>';
								echo '<td>'. $row['rechnungsAdresse_telefon'] . '</td>';
								echo '<td>'. $row['kunde_bemerkung'] . '</td>';
							   	echo '<td width=250>';
							   	echo '<a class="btn" href="customer_read.php?id='.$row['id'].'">Details</a>';
							   	echo '&nbsp;';
							   	echo '<a class="btn btn-success" href="customer_update.php?id='.$row['id'].'">Ändern</a>';
							   	echo '&nbsp;';
							   	echo '<a class="btn btn-danger" href="customer_delete.php?id='.$row['id'].'">Löschen</a>';
							   	echo '</td>';
							   	echo '</tr>';
					   }
					   Database::disconnect();
					  ?>

Bin Euch sehr dankbar!
 
Zuletzt bearbeitet:
Hi,

wie sieht die Struktur der Datebank aus? Wie hängen die Tabellen zusammen? Welche Daten willst du jetzt genau da raus ziehen?

Grüße,
BK
 
Hi -> habe gerade die Angabe korrigiert - hoffe es ist jetzt klarer.

Ich glaub jetzt hab ichs:

-> Kann das stimmen so?
-> Wie würde ein INSERT zu diesem Bsp aussehen ?


PHP:
<?php 
					   include '../includes/database.php';
					   $pdo = Database::connect();
					   $query = 'SELECT k.kunde_bemerkung, rA.rechnungsAdresse_firmenbezeichnung, rA.rechnungsAdresse_vorname, rA.rechnungsAdresse_nachname, rA.rechnungsAdresse_email, rA.rechnungsAdresse_telefon FROM tbl_rechnungsAdresse rA LEFT JOIN tbl_kunde k ON k.kunde_ID = rA.rechnungsAdresse_id ORDER BY k.kunde_id DESC';
	 				   
					   $result = mysql_query ($query) or die (mysql_error());
					   while ($row = mysql_fetch_assoc($result))
						   {
									echo '<tr>';
									echo '<td>'. $row['rechnungsAdresse_firmenbezeichnung'] . '</td>';
									echo '<td>'. $row['rechnungsAdresse_vorname'] . '</td>';
									echo '<td>'. $row['rechnungsAdresse_nachname'] . '</td>';
									echo '<td>'. $row['rechnungsAdresse_email'] . '</td>';
									echo '<td>'. $row['rechnungsAdresse_telefon'] . '</td>';
									echo '<td>'. $row['kunde_bemerkung'] . '</td>';
									echo '<td width=250>';
									echo '<a class="btn" href="customer_read.php?id='.$row['id'].'">Details</a>';
									echo '&nbsp;';
									echo '<a class="btn btn-success" href="customer_update.php?id='.$row['id'].'">Ändern</a>';
									echo '&nbsp;';
									echo '<a class="btn btn-danger" href="customer_delete.php?id='.$row['id'].'">Löschen</a>';
									echo '</td>';
									echo '</tr>';
						   }
					   
					   Database::disconnect();
					  ?>
 
Zuletzt bearbeitet:
>Beziehung rechnungsAdresse zu Kunde 1:1

Du musst natürlich schon auf dem FK joinen...
SQL:
SELECT 
k.kunde_bemerkung, 
rA.rechnungsAdresse_firmenbezeichnung, 
rA.rechnungsAdresse_vorname, 
rA.rechnungsAdresse_nachname, 
rA.rechnungsAdresse_email, 
rA.rechnungsAdresse_telefon 
FROM 
  tbl_kunde k
INNER JOIN
  tbl_rechnungsAdresse rA
ON 
  k.fk_rechnungsAdresse_ID = rA.rechnungsAdresse_ID 
ORDER BY 
  k.kunde_ID DESC;

Und hier noch was über Joins:
http://www.w3schools.com/sql/sql_join.asp

Insert:
Zuerst den Insert in tbl_rechnungsAdresse, dann musst du den soeben erstellen PK kennen (für den FK, bei PDO macht man das damit: http://us3.php.net/manual/en/pdo.lastinsertid.php) und anschliessend Insert in tbl_kunde mit dem soeben erstellten PK als FK. Oder aber du kapselst diese Logik in einer Stored Procedure und rufst nur dieses auf.
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück