+ Antworten
Ergebnis 1 bis 7 von 7

Thema: SQL-Abfrage aus Datenbank (Verknüpfung von Tabellen)

  1. #1
    Neu an Board
    Registriert seit
    23.12.2012
    Beiträge
    38
    Bedankte sich
    11
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard SQL-Abfrage aus Datenbank (Verknüpfung von Tabellen)

    Hallo!

    Habe schon länger nichts mehr mit Joomla gemacht und auch kaum etwas bisher darin programmiert.

    Habe mich jetzt ca. 1h mit dieser SQL-Abfrage gespielt, aber krieg es nicht zum laufen..

    In der Tabelle "js_job_userroles" gibt es die beiden Spalten "uid" und "role".

    Die UserID soll nun mit der "uid" (UserID der Tabelle) abgeglichen werden und danach der jeweilige Inhalt des "role"-Feldes ausgegeben werden.

    <?php

    $user =& JFactory::getUser();

    $userid = $user->get('id'); - liefert die UserID

    $db = JFactory::getDBO();

    $query = "SELECT * FROM '#__js_job_userroles' WHERE ".$userid." = ".$db->nameQuote('uid')."";

    $db->setQuery($query);

    $result = $db->loadRow();

    ?>


    Könntet ihr mir vielleicht kurz weiterhelfen? Wäre sehr dankbar.

    Wie kann ich denn dann übrigens mit loadRow() den Inhalt der 2.Spalte ausgeben? Mit $row['2'] ?

    Danke!
    Geändert von jobo2219 (25.09.2014 um 23:53 Uhr)

  2. #2
    Gehört zum Inventar
    Registriert seit
    06.03.2013
    Ort
    /dev/random
    Beiträge
    5.704
    Bedankte sich
    123
    Erhielt 2.137 Danksagungen
    in 2.025 Beiträgen

    Standard

    Code:
    <?php
    
    $user = JFactory::getUser(); // ohne &
    
    $userid = $user->id; // - liefert die UserID
    
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select('*');
    $query->from($db->quoteName('#__js_job_userroles'));
    $query->where($db->quoteName('uid')." = ".$db->quote($userid));
     
    $db->setQuery($query);
    
    $result = $db->loadRow();
    
    if($result)
    {
       echo $result[1];  // für die zweite Spalte
    }
    ?>
    Gerade erst gesehen ist ja 1.5, Code ist für 3.x
    Mach ein Update bevor du gehackt wirst.
    Geändert von FINWICK (25.09.2014 um 23:53 Uhr)
    Gruß FINWICK
    ↶ Danke Button nutzen, wenn es geholfen hat - Kein Support via PN - Tipps & Tricks - JPlugger

  3. Erhielt Danksagungen von:


  4. #3
    Neu an Board
    Registriert seit
    23.12.2012
    Beiträge
    38
    Bedankte sich
    11
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Vielen Dank! Das ging ja wirklich schnell.

    Schönen Abend /Gut nacht!

  5. #4
    Neu an Board
    Registriert seit
    23.12.2012
    Beiträge
    38
    Bedankte sich
    11
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Noch eine weitere Frage;

    Ich habe in einer Tabelle jeweils eine Spalte mit einer User-ID und eine mit einer anderen ID.

    Nun möchte ich von einer bestimmten USER-ID alle IDs nacheinander anzeigen lassen.

    Das mache ich doch mit LoadRowResult, oder?

    Das habe ich bis jetzt:

    $query2 = $db->getQuery(true);
    $query2->select('*');
    $query2->from($db->quoteName('#__js_job_paymenthistory'));
    $query2->where($db->quoteName('uid')." = ".$db->quote($userid));
    $db->setQuery($query2);
    $paketinfo = $db->loadRowList();

    $ergebnis = $paketinfo[3];
    echo $ergebnis;


    Ich möchte vor allem feststellen, ob der jeweilige User einen bestimmten Wert in irgendeiner Zeile stehen hat.

  6. #5
    Gehört zum Inventar
    Registriert seit
    06.03.2013
    Ort
    /dev/random
    Beiträge
    5.704
    Bedankte sich
    123
    Erhielt 2.137 Danksagungen
    in 2.025 Beiträgen

    Standard

    PHP-Code:
    $query2 $db->getQuery(true);
    $query2->select('*');
    $query2->from($db->quoteName('#__js_job_paymenthistory'));
    $query2->where($db->quoteName('uid')." = ".$db->quote($userid));
    $query2->AND($db->quoteName('id')." = ".$db->quote($id));
    $db->setQuery($query2);
    $paketinfo $db->loadRowList();
    $result $db->loadRow(); 
    bzw
    PHP-Code:
    $query2 $db->getQuery(true);
    $query2->select('*');
    $query2->from($db->quoteName('#__js_job_paymenthistory'));
    $query2->where($db->quoteName('uid')." = ".$db->quote($userid));
    $db->setQuery($query2);
    $paketinfo $db->loadRowList();
    forech($paketinfo as $idx)
    {
          echo 
    "<pre>".$idx->uid." ".$idx->id."</pre>";

    Geändert von FINWICK (05.10.2014 um 15:04 Uhr)
    Gruß FINWICK
    ↶ Danke Button nutzen, wenn es geholfen hat - Kein Support via PN - Tipps & Tricks - JPlugger

  7. Erhielt Danksagungen von:


  8. #6
    Neu an Board
    Registriert seit
    23.12.2012
    Beiträge
    38
    Bedankte sich
    11
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Danke für die Antwort,

    klappt aber leider nicht so ganz..

    So sieht die Tabelle aus. Nun sollen von der jeweiligen User ID alle Ergebnisse aller Zeilen angezeigt werden, also die Package IDs des Users sollen hintereinander aufgelistet werden...

    Bildschirmfoto 2014-10-05 um 16.47.40.png

  9. #7
    Gehört zum Inventar
    Registriert seit
    06.03.2013
    Ort
    /dev/random
    Beiträge
    5.704
    Bedankte sich
    123
    Erhielt 2.137 Danksagungen
    in 2.025 Beiträgen

    Standard

    Was ausgegeben wird kannst du doch angeben
    PHP-Code:
         echo "<pre>".$idx->uid." ".$idx->id."</pre>"
    $id->spaltenname
    Gruß FINWICK
    ↶ Danke Button nutzen, wenn es geholfen hat - Kein Support via PN - Tipps & Tricks - JPlugger

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein