Seite 1 von 1

Probleme mit einer Abfrage.

Verfasst: Fr 25. Jan 2013, 12:51
von Enrico
Hi in einem Beitrag hier im Forum habe ich von "Spider IT" gelesen, dass folgendes in Contenido funktioniert:

$db->query($sql) - Die übergebene SQL-Anweisung ausführen, ein Ergebnis wird gespeichert
$db->num_rows() - Anzahl der Datensätze im Ergebnis zurückgeben
$db->next_record() - Wechsel auf den nächsten (oder ersten beim ersten Aufruf) Datensatz im Ergebnis
$db->f($FieldName) - Den Inhat des angegebenen Feldes im aktuellen Datensatz zurückgeben
Also habe ich meine Abfrage so aufgebaut:

Code: Alles auswählen

        $sql = "SELECT * FROM `con_frontendusers_employees` WHERE id = '".$authID."'";
        $db->query($sql);
        $db->next_record();
        if($db->num_rows() > 0)
        {
            var_dump($db->f('id'));
            $innerTpl = new Template();
            $innerTpl->set('s', 'FIRSTNAME', $db->f('firstname'));
            $innerTpl->set('s', 'LASTNAME', $db->f('lastname'));
            $innerTpl->set('s', 'EMAIL', $db->f('email'));
        }
Trozdem bekomm ich immer den zweiten :( Kann mir einer helfen? - Danke

Re: Probleme mit einer Abfrage.

Verfasst: Fr 25. Jan 2013, 13:26
von Oldperl
Hallo,
Enrico hat geschrieben:

Code: Alles auswählen

        $sql = "SELECT * FROM `con_frontendusers_employees` WHERE id = '".$authID."'";
        $db->query($sql);
        $db->next_record();
        if($db->num_rows() > 0)
        {
            var_dump($db->f('id'));
            $innerTpl = new Template();
            $innerTpl->set('s', 'FIRSTNAME', $db->f('firstname'));
            $innerTpl->set('s', 'LASTNAME', $db->f('lastname'));
            $innerTpl->set('s', 'EMAIL', $db->f('email'));
        }
versuch es mal so

Code: Alles auswählen

        $sql = "SELECT * FROM `con_frontendusers_employees` WHERE id = '".$authID."'";
        $db->query($sql);       
        while( $db->next_record()) {
            var_dump($db->f('id'));
            $innerTpl = new Template();
            $innerTpl->set('s', 'FIRSTNAME', $db->f('firstname'));
            $innerTpl->set('s', 'LASTNAME', $db->f('lastname'));
            $innerTpl->set('s', 'EMAIL', $db->f('email'));
        }
 
ungetest :)

Gruß aus Franken

Ortwin

Re: Probleme mit einer Abfrage.

Verfasst: Fr 25. Jan 2013, 13:30
von Enrico
Habs getestet, gibt mir auch direkt den zweiten eintrag :/

habs jetzt so gelöst, aber schön ist das nicht gerade :)

Code: Alles auswählen

        $sql = "SELECT * FROM `con_frontendusers_employees`";
        $db->query($sql);
        if($db->num_rows() > 0)
        {
            while($db->next_record())
            {
                if($db->f('id') == $authID)
                {
                    $innerTpl = new Template();
                    $innerTpl->set('s', 'FIRSTNAME', $db->f('firstname'));
                    $innerTpl->set('s', 'LASTNAME', $db->f('lastname'));
                    $innerTpl->set('s', 'EMAIL', $db->f('email'));
                    $innerTpl->set('s', 'ID', $authID);
                }
            }
        }

Re: Probleme mit einer Abfrage.

Verfasst: Fr 25. Jan 2013, 13:36
von Oldperl
Enrico hat geschrieben:

Code: Alles auswählen

                if($db->f('id') == $authID)
                {
                    $innerTpl = new Template();
                    $innerTpl->set('s', 'FIRSTNAME', $db->f('firstname'));
                    $innerTpl->set('s', 'LASTNAME', $db->f('lastname'));
                    $innerTpl->set('s', 'EMAIL', $db->f('email'));
                    $innerTpl->set('s', 'ID', $authID);
                }
Warum die If-Schleife, nach der AuthId kannst du doch gleich im Query suchen lassen, so bekommst du eh nur entweder 1 oder kein Ergebnis.

Gruß aus Franken

Ortwin

Re: Probleme mit einer Abfrage.

Verfasst: Fr 25. Jan 2013, 14:38
von Enrico
Danke, hat sich erledigt ... bin heute nicht so ganz auf der höhe