SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 10.04.2003, 16:56:03
Jim Panse Jim Panse ist offline
Anfänger
 
Registriert seit: Apr 2003
Beiträge: 10
Datenbanken verknüpfen

Hi Leute!
Also ich habe vor eine Bücherdatenbank zu erstellen habe soweit auch schon alles bis auf folgendes.
Ich habe 4 Tabellen (buecher_tab, autor_tab, genre_tab, verlag_tab), diese möchte ich dann wie folgt verknüpfen:

http://mitglied.lycos.de/pic4board/d.../datenbank.jpg

Er soll also gucken welche zahl in autor_id in der buecher_tab steht und dann den entsprechenden wert ausgeben, der in name in der autor_tab steht.

Das gleiche soll passieren mit der verlag_tab und der genre_tab.

Könnte mir jemand einen Tip geben wie man das realisieren kann??

Mfg Jim
__________________
Für die einen ist es Windows für die anderen die größte Bugsammlung der Welt
Mit Zitat antworten
  #2  
Alt 10.04.2003, 17:02:31
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 55
Beiträge: 4.748
Ungefähr so:
SELECT feld_autorname FROM autor_tab, buecher_tab WHERE autor_tab.id=buecher_tab.autor_id AND buecher_tab.id

Das AND buecher_tab.id kannst Du u.U. weglassen.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #3  
Alt 10.04.2003, 18:02:44
Jim Panse Jim Panse ist offline
Anfänger
 
Registriert seit: Apr 2003
Beiträge: 10
Danke! Hat geklappt!
__________________
Für die einen ist es Windows für die anderen die größte Bugsammlung der Welt
Mit Zitat antworten
  #4  
Alt 11.04.2003, 16:13:36
Jim Panse Jim Panse ist offline
Anfänger
 
Registriert seit: Apr 2003
Beiträge: 10
Habe doch noch mal ne Frage:

Bis jetzt habe ich eine solche abfrage:

PHP-Code:
$autor_auslese "SELECT id FROM autoren_tab WHERE name = '$autor'"
Allerdings habe ich jetzt den vornamen und den nachnamen von dem Autor in 2 Tabellenspalten gepackt. Nun muss ich ja aber auch die Abfrage etwas abändern, damit er guckt, wenn "nachname, vorname" = '$autor' ist, dann die passende ID raussucht, aber ich bekomme das noch net so ganz hin.



Kann mir da vielleich jemand helfen??

Hoffe das mich jemand verstanden hat.

Mfg Jim

edit:
Noch ein kleiner Nachtrag:
In der Variable $autor steht folgendes: nachname, vorname

Also erst der nachname und dann durch ein komma getrennt der vorname.

Außerdem heißen die Spalten in der Tabelle auch vorname bzw. nachname!

__________________
Für die einen ist es Windows für die anderen die größte Bugsammlung der Welt

Geändert von Jim Panse (11.04.2003 um 16:19:15 Uhr)
Mit Zitat antworten
  #5  
Alt 11.04.2003, 19:32:10
Jim Panse Jim Panse ist offline
Anfänger
 
Registriert seit: Apr 2003
Beiträge: 10
Versteht mich keiner??
__________________
Für die einen ist es Windows für die anderen die größte Bugsammlung der Welt
Mit Zitat antworten
  #6  
Alt 11.04.2003, 19:34:50
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 55
Beiträge: 4.748
Also ich verstehe sehr wohl, was Du willst, hab auch schon gesucht, wie man es machen könnte, aber ich habe nix gefunden. Da ich es bevorzuge meine Unwissenheit nicht preizugeben, hab ich halt nichts gesagt. :)

Entweder Du reorganisierst die Datenbanken oder Du musst halt mehrere Abfragen durchführen.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #7  
Alt 11.04.2003, 20:39:13
MiH MiH ist offline
Member
 
Registriert seit: Aug 2002
Beiträge: 775
zum besser durchblick hier mal der inhalt der tabellen.
[code]
mysql> select * from autor_tab;
+----+-------------+
| id | name |
+----+-------------+
| 1 | Mark Twain |
| 2 | Steven King |
| 3 | Hera Lind |
+----+-------------+
3 rows in set (0.00 sec)

mysql> select * from buecher_tab;
+----+--------+----------+-----------+-----------+----------+
| id | titel | genre_id | anmerkung | verlag_id | autor_id |
+----+--------+----------+-----------+-----------+----------+
| 1 | Buch_1 | 1 | NULL | 1 | 1 |
| 2 | Buch_2 | 3 | NULL | 2 | 3 |
| 3 | Buch_3 | 2 | NULL | 3 | 2 |
| 4 | Buch_4 | 1 | NULL | 2 | 1 |
| 5 | Buch_5 | 1 | NULL | 1 | 1 |
| 6 | Buch_6 | 2 | NULL | 2 | 3 |
+----+--------+----------+-----------+-----------+----------+
6 rows in set (0.00 sec)

mysql> select * from genre_tab;
+----+-------+
| id | genre |
+----+-------+
| 1 | Roman |
| 2 | Liebe |
| 3 | SciFi |
+----+-------+
3 rows in set (0.01 sec)

mysql> select * from verlag_tab;
+----+---------+
| id | verlag |
+----+---------+
| 1 | Galileo |
| 2 | M&T |
| 3 | Bastai |
+----+---------+
3 rows in set (0.00 sec)
[code]

nun zu deinen verknüpfungen.
Code:
von wem habe ich bücher und wieviele?
mysql> select count(name) anzahl,autor_tab.name from autor_tab inner join bueche
r_tab on buecher_tab.autor_id = autor_tab.id group by autor_tab.name order by anzahl;
+--------+-------------+
| anzahl | name        |
+--------+-------------+
|      1 | Steven King |
|      2 | Hera Lind   |
|      3 | Mark Twain  |
+--------+-------------+
3 rows in set (0.00 sec)
zu deinem 2. problem.
das musst du den inhalt von name erst splitten.
am besten split() oder explode() nehmen als trennzeichen hast du ja ", ".
so dann kannst du bequem mit dem ergebnis suchen.
du suchst bücher von "mark twain":
Code:
mysql> select buecher_tab.titel,buecher_tab.id from buecher_tab inner join autor
_tab on buecher_tab.autor_id = autor_tab.id where autor_tab.vorname = 'Mark' &&
autor_tab.nachname = 'Twain';
+--------+----+
| titel  | id |
+--------+----+
| Buch_1 |  1 |
| Buch_4 |  4 |
| Buch_5 |  5 |
+--------+----+
3 rows in set (0.00 sec)
ich hoffe es hilft dir.
Mit Zitat antworten
  #8  
Alt 11.04.2003, 20:47:38
MiH MiH ist offline
Member
 
Registriert seit: Aug 2002
Beiträge: 775
noch ein select um dir den kompletten inhalt zu zeigen.
Code:
mysql> select buecher_tab.id,buecher_tab.titel,autor_tab.vorname,autor_tab.nachn
ame,genre_tab.genre,verlag_tab.verlag from buecher_tab
    -> inner join autor_tab on autor_tab.id = buecher_tab.autor_id
    -> inner join verlag_tab on verlag_tab.id = buecher_tab.verlag_id
    -> inner join genre_tab on genre_tab.id = buecher_tab.genre_id
    -> order by autor_tab.id asc;
+----+--------+---------+----------+-------+---------+
| id | titel  | vorname | nachname | genre | verlag  |
+----+--------+---------+----------+-------+---------+
|  1 | Buch_1 | Mark    | Twain    | Roman | Galileo |
|  5 | Buch_5 | Mark    | Twain    | Roman | Galileo |
|  4 | Buch_4 | Mark    | Twain    | Roman | M&T     |
|  3 | Buch_3 | Steven  | King     | Liebe | Bastai  |
|  6 | Buch_6 | Hera    | Lind     | Liebe | M&T     |
|  2 | Buch_2 | Hera    | Lind     | SciFi | M&T     |
+----+--------+---------+----------+-------+---------+
6 rows in set (0.00 sec)
ich hoffe die verwirrung ist nicht zu groß geworden :) aber so macht verknüpfen spass.
Mit Zitat antworten
  #9  
Alt 11.04.2003, 23:07:09
Jim Panse Jim Panse ist offline
Anfänger
 
Registriert seit: Apr 2003
Beiträge: 10
Super geil!
Muss mich mal wieder bei euch bedanken, dank eurer Hilfe klappt alles so wie ich es mir vorgestellt habe!

Mfg Jim
__________________
Für die einen ist es Windows für die anderen die größte Bugsammlung der Welt
Mit Zitat antworten
  #10  
Alt 12.04.2003, 04:50:41
MiH MiH ist offline
Member
 
Registriert seit: Aug 2002
Beiträge: 775
noch ein hinweis.
wenn du nicht immer diese ON ...id = ....id schreiben willst kannst du auch using(id) nehmen das setzt aber voraus, das die spalten in beiden tabellen gleich heissen. bei dem obigen beispiel gehts leider nicht, deshalb kam hier ON zum einsatz.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:03:26 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.


© 2001-2025 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt