tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
202
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    JOINFRAGENSEPP Tutorials.de Gastzugang
    Hallo zusammen,

    ich habe folgendes Problem.

    Ich habe eine SQL-Abfrage über mehrere(5) Tabellen.

    Wenn ich jetzt z.b. so eine Tabellenstruktur habe:

    Ich weiß die struktur im beispiel ist nicht gut aber mir is kein besseres Beispiel eingefallen und bei meinem Problem fehlt euch der sinn

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    
    Tabelle_1 (User)
     
    id | name | partner
    1 | Gilbert | 1
     
    Tabelle_2 (Konten)
     
    id | konto | user | ...
    1 | Bank_X | 1 | ...
    2 | Bank_Y | 1 | ...
     
    Tabelle_3 (Partner)
     
    id | name | ..
    1 | FitzGerald | ...
     
    Tabelle_4 (Freunde vom partner)
     
    id | name | partner_id(der partner der aus tabelle 1 genommen wird) | wo_kennengelernt | ...
    1 | Hubert| 1 | ...
    2 | Hugo | 1
    3 | Gordon| 1
     
    Tabelle_5 (inventar)
     
    id | gegenstand | ...
    1 | Kühlschrank
    2 | Schinken
    3 | Katoffel

    Ich habe bereits eine Abfrage die mir anhand der Userid (tabelle1) alle Infos holt

    Nun gibt mir aber phpmyadmin das ganze etwa so aus: (nehme in dem beispiel nur 3 Tabellen weils sonst zu viel wird)

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
     
    id | name | konto | gegenstand | ...
    1 | Gilbert | Bank_X | Kühlschrank
    1 | Gilbert | Bank_X | Schinken
    1 | Gilbert | Bank_X | Katoffel
    1 | Gilbert | Bank_Y | Kühlschrank
    1 | Gilbert | Bank_Y | Schinken
    1 | Gilbert | Bank_Y | Katoffel

    Wenn ich aber jetz ein Objekt habe das die Daten verwalten soll will ich jetz alles in getrennte objekte speicher:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    $row = fetch_object($db_result);
     
    // Code das ich dieses Ergebnis erhalte:
     
    $user_object
     
    // 1 User object wo die infos drinstehen
     
    $gegenstaende
     
    // array mit so vielen gegenstandobjekten wie gegenstände, problem:
    // Gegenstände kommen ja 2mal vor wegen den beiden konten
     
    $konten
     
    // selbes problem wie bei den gegenständen nur das sie halt 3 mal vorkommen

    Versteht ihr mein Problem! also ich will die infos auftrennen und in objekte unterteilen ohne das ich daten öfter eintrage
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Entweder du machst pro Stufe eine Abfrage oder du musst bei jedem Durchgang prüfen ob du das entsprechende Objekt bereits hast

    PHP-Code:
    <?php

    $array 
    = array(
        array(
    'id' => 1'name' => 'Gilbert''konto' => 'Bank_X''gegenstand' => 'Kühlschrank'),
        array(
    'id' => 1'name' => 'Gilbert''konto' => 'Bank_X''gegenstand' => 'Schinken'),
        array(
    'id' => 1'name' => 'Gilbert''konto' => 'Bank_X''gegenstand' => 'Katoffel'),
        array(
    'id' => 1'name' => 'Gilbert''konto' => 'Bank_Y''gegenstand' => 'Kühlschrank'),
        array(
    'id' => 1'name' => 'Gilbert''konto' => 'Bank_Y''gegenstand' => 'Schinken'),
        array(
    'id' => 1'name' => 'Gilbert''konto' => 'Bank_Y''gegenstand' => 'Katoffel'));

    foreach(
    $array as $row){
        
    $gegenstand $row['gegenstand'];  
        if(
    $lastRow['konto'] != $row['konto']){
            
    $konto = (object) array('konto' => $row['konto']);
        }
        
    $konto->gegenstand[] = $gegenstand;    
        if(
    $lastRow['id'] != $row['id']){
            
    $user = (object) array('id' => $row['id'], 'name' => $row['name']);
        }
        if(
    $lastRow['konto'] != $row['konto']){
            
    $user->konto[] = $konto;
        }
        if(
    $lastRow['id'] != $row['id']){
            
    $users[] = $user;
        }
        
    $lastRow $row;
    }

    print_r($users);
    ?>
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

Ähnliche Themen

  1. [MySQL] Problem mit mehreren JOINS und Aggregat-Funktionen
    Von Eroli im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 09.11.10, 15:25
  2. Problem mit mehreren JOINs?
    Von unrealzero_php im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 13.08.09, 13:40
  3. Daten aus mehreren Tabellen über Joins anzeigen
    Von thinkpad im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 10.04.08, 13:08
  4. Joins mit mehreren Tabellen
    Von jarkand im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 19.01.07, 18:31
  5. [Access] Syntaxfehler bei mehreren Joins
    Von Daxi im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 11.08.05, 13:18