Daten von mehreren Tabellen holen
Daten von mehreren Tabellen holen
am 05.04.2006 22:28:51 von news
Hallo,
Wie kann ich in einer Datei Daten von verschiedenen Tabellen holen,
ohne Konflikte.
Beispiel:
Die Datenbankdaten sind in einer Include-Datei und mit der Variablen
$dz werden diese Daten an die Datei übergeben.
Nun hole ich die Daten z.B.:
$query = "SELECT * FROM bestell WHERE id = $id" ;
$sql = mysql_query($query);
$ds = mysql_fetch_object($sql);
$id = $ds->id;
$bestell_nr = $ds->bestell_nr;
$query = "SELECT * FROM kunde WHERE id = $id" ;
$sql = mysql_query($query);
$ds = mysql_fetch_object($sql);
$id = $ds->id;
$password = $ds->password;
$kunden_nr = $ds->kunden_nr;
und so weiter. Das gibt natürlich Konflikte.
Wie kann ich das vereinfachen?
Gruß Hoffi
Klaus J. Hofmann
Radeberg
Re: Daten von mehreren Tabellen holen
am 05.04.2006 23:05:39 von Niels Braczek
Klaus J. Hofmann schrieb:
> Wie kann ich in einer Datei Daten von verschiedenen Tabellen holen,
> ohne Konflikte.
Man kann Variablen (fast) beliebig benennen.
> Die Datenbankdaten sind in einer Include-Datei und mit der Variablen
> $dz werden diese Daten an die Datei übergeben.
> Nun hole ich die Daten z.B.:
>
> $query = "SELECT * FROM bestell WHERE id = $id" ;
> $sql = mysql_query($query);
> $ds = mysql_fetch_object($sql);
> $id = $ds->id;
> $bestell_nr = $ds->bestell_nr;
>
> $query = "SELECT * FROM kunde WHERE id = $id" ;
> $sql = mysql_query($query);
> $ds = mysql_fetch_object($sql);
> $id = $ds->id;
> $password = $ds->password;
> $kunden_nr = $ds->kunden_nr;
>
> und so weiter. Das gibt natürlich Konflikte.
> Wie kann ich das vereinfachen?
$sql = "SELECT * FROM bestell WHERE id={$id}";
$result = mysql_query($sql) or die($sql.'
'.mysql_error());
$Order = mysql_fetch_object($result);
$sql = "SELECT * FROM kunde WHERE id={$id}";
$result = mysql_query($sql) or die($sql.'
'.mysql_error());
$Customer = mysql_fetch_object($result);
Fertig damit. Ich sehe keinen Grund, die Eigenschaften der Objekte in
den globalen Namensraum zu importieren.
Allgemein solltest du deine Variablennamen etwas sorgfältiger wählen:
mysql_query() liefert kein SQL, sondern ein Abfrageergebnis. Zudem fehlt
jegliche Fehlerbehandlung.
MfG
Niels
--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · E-Commerce · Mambo Content Management |
------------------------------------------------------------ ----
Re: Daten von mehreren Tabellen holen
am 06.04.2006 10:54:20 von Frank Schenk
Klaus J. Hofmann wrote:
> Hallo,
> Wie kann ich in einer Datei Daten von verschiedenen Tabellen holen,
> ohne Konflikte.
....
> und so weiter. Das gibt natürlich Konflikte.
> Wie kann ich das vereinfachen?
Neben der von Niels vorgeschlagenen Lösung:
Wie wärs mit JOIN?
Siehe DBMS-Handbuch.
gruß, Frank
Re: Daten von mehreren Tabellen holen
am 06.04.2006 15:26:23 von news
On Wed, 05 Apr 2006 22:28:51 +0200, Klaus J. Hofmann
wrote:
Die Fehlerbehandlung ist vorhanden, hier nur weggelassen.
Mit JOIN muss ich mich erst mal befassen, ich bin, was PHP betrifft,
noch Neuling.
Übrigens war es kein Variablenkonflikt, wie ich dachte, der Fehler war
woanders.
Gruß Hoffi
Klaus J. Hofmann
Radeberg
Re: Daten von mehreren Tabellen holen
am 07.04.2006 09:16:45 von news
On Wed, 05 Apr 2006 23:05:39 +0200, Niels Braczek
wrote:
Hallo Niels,
Diese Art der Fehlerbehandlung ist effektiver, wie die Art, mit der
ich es versucht habe.
Auch die Wahl der Variablen.
>$sql = "SELECT * FROM bestell WHERE id={$id}";
>$result = mysql_query($sql) or die($sql.'
'.mysql_error());
>$Order = mysql_fetch_object($result);
Kannst Du mir auch eine Lösung für INSERT und UPDATE nennen? Damit
habe ich auch immer mal Probleme. PHP ist halt für mich Neuland.
Gruß, Hoffi
Klaus J. Hofmann
Radeberg
Re: Daten von mehreren Tabellen holen
am 07.04.2006 14:47:23 von Niels Braczek
Klaus J. Hofmann schrieb:
> On Wed, 05 Apr 2006 23:05:39 +0200, Niels Braczek
> wrote:
^^^^
Kürze das bitte auf 1 Zeile.
>>$sql = "SELECT * FROM bestell WHERE id={$id}";
>>$result = mysql_query($sql) or die($sql.'
'.mysql_error());
>>$Order = mysql_fetch_object($result);
>
> Kannst Du mir auch eine Lösung für INSERT und UPDATE nennen? Damit
> habe ich auch immer mal Probleme. PHP ist halt für mich Neuland.
Da gibt es zu viele Abhängigkeiten, um eine Standardlösung nennen zu
können. Das Prinzip ist einfach: Baue die Query in $sql zusammen,, dann noch
mysql_query($sql) or die($sql.'
'.mysql_error());
und fertig.
MfG
Niels
--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · E-Commerce · Mambo Content Management |
------------------------------------------------------------ ----
Re: Daten von mehreren Tabellen holen
am 16.04.2006 01:20:00 von Thomas Rachel
Klaus J. Hofmann wrote:
> Kannst Du mir auch eine Lösung für INSERT und UPDATE nennen? Damit
> habe ich auch immer mal Probleme. PHP ist halt für mich Neuland.
Das wesentliche wurde Dir ja schin gesagt, nur soviel hierzu: INSERT und
UPDATE hat - ebenso wie JOIN - mit PHP nichts zu tun, das ist ein
MySQL-Befehl. Dies sollte man auseinanderhalten. Man kann in PHP auch
ohne MySQL programmieren, und man kann auf MySQL auch ohne PHP
zugreifen. Richtig wäre hier also gewesen: "MySQL ist halt für mich
Neuland."
Thomas
--
Blödsinnige Liedtexte, Teil 1:
"Ich will Dich zu Armbanduhr mich"
"V jnag lbh gb jngpu zr"