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"