Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Wert anhand ID finden

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Wert anhand ID finden

    Hallo zusammen,

    als absoluter Newbie in Sachen mysql habe ich folgendes Problem:

    Datenbankabfrage in user1.php:

    PHP-Code:
    $query "SELECT id, name, username, email, usertype, registerDate, lastvisitDate FROM users";
    $database->setQuery($query);
    $rows $database->loadObjectList(); 
    Datenbankabfrage in user2.php:
    PHP-Code:
    $query "SELECT user_FK, garten FROM usermeta";
    $db->setQuery($query);
    $results $db->loadObjectList(); 
    Die 'id' in Tabelle "users" entspricht 'user_FK' in der Tabelle "usermeta", wobei nicht jeder User eine 'user_FK' hat.

    Ich möchte jetzt die Daten aller User aus Tabelle "users" ausgeben (funktioniert auch), zusätzlich aber in einer weiteren Spalte den Wert 'garten', wenn die 'id' gleich 'user_FK' ist.
    PHP-Code:
    foreach($rows as $row)
    {
       echo 
    "Name: " .$row->name"<br />\n";
       echo 
    "EMail: " .$row->email."<br />\n";
       echo 
    "Garten: ........

    Kann mir jemand einen Tipp geben, wie ich dem User den richtigen Wert 'garten' zuordnen kann?

    Vielen Dank
    pexcel

  • #2
    Hallo,

    http://aktuell.de.selfhtml.org/artik...nbanken/joins/
    [URL]http://hallophp.de[/URL]

    Kommentar


    • #3
      Hi Asipak,

      vielen Dank für den Link.
      Habe mir das mal eingehend angesehen, ich denke, dass das Ganze über RIGHT Join bzw. LEFT JOIN realisierbar wäre.

      Ich kriegs trotzdem nicht in den Code implementiert, zumal der im Ganzen so aussieht:
      PHP-Code:
      // Select query
          
      if (!$settings->usertype) {
              
      // faster query
              
      $query "SELECT id, name, username, email, usertype, registerDate, lastvisitDate FROM #__users";
          } else if (
      class_exists('JFactory')) {
              
      // Joomla! 1.5
              
      $query "SELECT u.id AS id, u.name AS name, u.username AS username, u.email AS email, u.registerDate AS registerDate, u.lastvisitDate AS lastvisitDate, g.name AS usertype"
                  
      "\nFROM #__users AS u"
                  
      "\nINNER JOIN #__core_acl_aro AS aro ON aro.value = u.id"    // map user to aro
                  
      "\nINNER JOIN #__core_acl_groups_aro_map AS gm ON gm.aro_id = aro.id"    // map aro to group
                  
      "\nINNER JOIN #__core_acl_aro_groups AS g ON g.id = gm.group_id";
          } else {
              
      $query "SELECT u.id AS id, u.name AS name, u.username AS username, u.email AS email, u.registerDate AS registerDate, u.lastvisitDate AS lastvisitDate, g.name AS usertype"
                  
      "\nFROM #__users AS u"
                  
      "\nINNER JOIN #__core_acl_aro AS aro ON aro.value = u.id"    // map user to aro
                  
      "\nINNER JOIN #__core_acl_groups_aro_map AS gm ON gm.aro_id = aro.aro_id"    // map aro to group
                  
      "\nINNER JOIN #__core_acl_aro_groups AS g ON g.group_id = gm.group_id";
          } 
      Könntest Du mir erklären, wie ich hier die Tabelle "usermeta" mit der Spalte 'user_FK' einbinden kann?

      Viele Grüße
      pexcel

      Kommentar


      • #4
        OK, hat sich erledigt, ich habs wohl geschafft...
        PHP-Code:
        // Select query
            
        if (class_exists('JFactory')) {
                
        // Joomla! 1.5
                
        $query "SELECT u.id AS id, u.name AS name, u.username AS username, u.email AS email, u.registerDate AS registerDate, u.lastvisitDate AS lastvisitDate, g.name AS usertype, m.garten As garten"
                    
        "\nFROM #__users AS u"
                    
        "\nINNER JOIN #__core_acl_aro AS aro ON aro.value = u.id"    // map user to aro
                    
        "\nINNER JOIN #__core_acl_groups_aro_map AS gm ON gm.aro_id = aro.id"    // map aro to group
                    
        "\nINNER JOIN #__core_acl_aro_groups AS g ON g.id = gm.group_id"
              
        "\nLEFT JOIN #__usermeta AS m ON m.user_FK = u.id";
            } else {
                
        $query "SELECT u.id AS id, u.name AS name, u.username AS username, u.email AS email, u.registerDate AS registerDate, u.lastvisitDate AS lastvisitDate, g.name AS usertype, m.garten As garten"
                    
        "\nFROM #__users AS u"
                    
        "\nINNER JOIN #__core_acl_aro AS aro ON aro.value = u.id"    // map user to aro
                    
        "\nINNER JOIN #__core_acl_groups_aro_map AS gm ON gm.aro_id = aro.aro_id"    // map aro to group
                    
        "\nINNER JOIN #__core_acl_aro_groups AS g ON g.group_id = gm.group_id"
              
        "\nLEFT JOIN #__usermeta AS m ON m.user_FK = u.id";
            } 
        Vielen Dank noch mal für den Link - wieder was gelernt

        Kommentar

        Lädt...
        X