Anzeige - [Interessiert an einer Anzeige?]
(?) Tags raten (?) (edit)
 
Reply to this topicStart new topicStart Poll
> MySQL Abfrage von zwei Tabellen, Wer kann mir helfen?
webdoktor
G-Design Websolutions
Geschrieben am: Do 31.07.2008, 12:03
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 495
Mitglied seit: 16.12.2005


Hallo zusammen

Ich habe eine kleine Frage und zwar habe ich auf unserer Seite
Fotoalben welche man erstellen kann. Diese Alben kann man erstellen
mit den Berechtigungen "Alle ansehen" und "nur Freunde".

Ich habe also zwei Tabellen:

fotoalbum:
id - id_selbst - name - berechtigung

freunde:
id - id_selbst - id_user

Nun möchte ich, eine einzige Abfrage machen, welche so aussieht, dass wenn
eine Fotoalbum den Status 2 hat (also nur Freunde) dass es dann in der Tabelle
freunde schaut, ob man befreundet ist mit der Person d.h. id_selbst muss id_selbst
von dem fotoalbum sein und id_user muss $_SESSION[id] sein.

Wie kann ich das machen? Ich hoffe, ich habe alle Angaben gemacht damit ihr
mir helfen könnt.

Gruss Marco
Top
PMEmail PosterUsers Website
Top
 
 
TSc
#2 Geschrieben am: Do 31.07.2008, 12:10 (+00:07)
Report PostQuote Post

AyomRank 6
************

Gruppe: Member (aktiv)
Beiträge: 677
Mitglied seit: 8.11.2004


CODE
select
  a.*
from
  fotoalbum a
left join
  freunde b
on
  a.id_selbst = b.id_selbst
where
  (
    a.berechtigung <> 2
  or
    b.id_user='"$_SESSION[id] "'
  )


Einfach ein left join zwischen beiden Tabellen. Ein left muss es sein, damit auch die Einträge ohne Einträge auf der Freundestabelle angezeigt werden.
Dann wird zum einen angezeigt was in Fotoalbum eh nicht auf dem Status 2 steht.
Zum anderen wird geschaut ob ein Eintrag in der Freundestabelle besteht und wenn ja ob dieser mit einer UserID gleich der SessionID ausgestattet ist.

Viel Spass!
Top
PMEmail Poster
Top
 
webdoktor
G-Design Websolutions
#3 Geschrieben am: Do 31.07.2008, 12:19 (+00:09)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 495
Mitglied seit: 16.12.2005


Hey TSc

Wow, dass muss ich gleich ausprobieren.
Vielen herzlichen Dank für die super prompte Antwort.

Muss es dann noch ein ganz wenig anpassen da

id_selbst auch $_SESSION[id] sein kann und
id_user auch id_selbst

Mal schauen ob ich das hinkriege :-)

Teste es jetzt zuerst mal mit deinem geposteten Code.

Gruss Marco
Top
PMEmail PosterUsers Website
Top
 
webdoktor
G-Design Websolutions
#4 Geschrieben am: Do 31.07.2008, 13:02 (+00:43)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 495
Mitglied seit: 16.12.2005


Hallo TSc

Irgendwie erhalte ich nun alle Alben 10x angezeigt. Komisch!
Der aktuelle Code sieht nun so aus:

CODE
//Abfragen der Datenbank
$abfrage_fotoalbum = "select
 a.*
from
 friends_fotoalbum a
left join
 friends_freunde b
on
 a.id_selbst = b.id_selbst
where
 (
   a.berechtigung <> 2
 or
   b.id_user='$_SESSION[id]'  
 )";
 
$ergebnis_fotoalbum = mysql_query($abfrage_fotoalbum);
$anzahl_fotoalbum = mysql_num_rows($ergebnis_fotoalbum);



Gruss Marco
Top
PMEmail PosterUsers Website
Top
 
Logge
#5 Geschrieben am: Do 31.07.2008, 14:04 (+01:01)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 162
Mitglied seit: 11.09.2006


Naja, ich kenne zwar MySQL nicht wirklich, aber andere DBMS arbeiten in diesem Zusammenhang mit DISTINCT. Man sollte in diesem Zusammenhang aber auf die Performance achten. Das eliminieren von Dubletten kann mitunter einiges an Zeit kosten.
Top
PMEmail Poster
Top
 
webdoktor
G-Design Websolutions
#6 Geschrieben am: Do 31.07.2008, 14:13 (+00:09)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 495
Mitglied seit: 16.12.2005


Ufff ich schaffs nicht ganz :-)

Der aktuelle status ist so:

QUOTE
//Abfragen der Datenbank
$abfrage_fotoalbum = "select
  a.*
from
  friends_fotoalbum a
left join
  friends_freunde b
on
  a.id_selbst = b.id_selbst 
and
  b.id_user = '$_SESSION[id]'

where
  (
    a.berechtigung <> 2
  or
    b.id_user = '$_SESSION[id]'

  )

 
  ";
 
$ergebnis_fotoalbum = mysql_query($abfrage_fotoalbum);
$anzahl_fotoalbum = mysql_num_rows($ergebnis_fotoalbum);


Fast geht es nur sollte man auch befreundet sein wenn:

a.id_selbst = $_SESSION[id]

und

a.id_user = b.id_selbst

ich schaffe es einfach nicht das es klappt...
grrr :-)

Freue mich auf Eure Hilfe...

Top
PMEmail PosterUsers Website
Top
 
connectR
#7 Geschrieben am: Do 31.07.2008, 15:26 (+01:12)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 87
Mitglied seit: 29.01.2008


Die Abfrage ob "wir" Freunde sind oder nicht, wird durchgeführt, wenn mir die Fotoalben eines anderen Users angezeigt werden. Richtig?
Dann halte ich einen JOIN an dieser Stelle für vollkommen unangebracht. Verschwendete Zeit, Energie und Ressourcen ;-)

$res = @mysql_query("SELECT user_id from freunde where ich_selbst = '".$_SESSION['id']."' and user_id = '".$profil['user-id']."'
if(@mysql_num_rows($res) == 1) {
$status = 2;
} else {
$status = 1;
}

$result = @mysql_query("SELECT * from fotoalbum where id_selbst = '".$profil['user_id']."' and berechtigung <= '".$status."')


--------------------
Ich bin freiberuflicher Programmierer - Und du?
Have a look at BodyVoten.de - Bilder voten
Top
PMUsers Website
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/25565

Topic Options Reply to this topicStart new topicStart Poll

 


> Ähnliche Themen
[B] Zwei Texte zum Kauf Schwede 42 0 Mo 13.10.2008, 15:09
Suche Freelancer: Ajax, XML, PHP, MySQL omc 168 2 Mo 6.10.2008, 20:14
Lösung für: Content Slider-Java Script-PHP-MySql Antoine Johannes 150 2 Fr 26.09.2008, 12:54
[B] Zwei Domains zu Gartenthemen mr3dblond 240 4 Mo 22.09.2008, 07:30
PHP + MySQL 2 Fragen an euch Coach 155 1 Do 18.09.2008, 10:52
PHP und MySQL Probleme Swisstiger 504 4 So 14.09.2008, 22:23
PHP/MySQL Entwickler für Projekt gesucht BigRed 135 0 Fr 5.09.2008, 12:05
[MYSQL] ø bei Suche nach o finden MarkusH 123 1 Mi 20.08.2008, 09:10
Suche PHP/MYSQL Programmierer Paidunion 181 0 So 17.08.2008, 12:56
Suche kleinere Jobs (HTML, PHP, MySQL...) Oliver Pester 275 2 Do 14.08.2008, 14:08




Anzeige - [Interessiert an einer Anzeige?]



Anzeigen


[Interessiert an einer Anzeige?]