AND abfrage benutzen

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Nobody-66
Mitglied
Beiträge: 45
Registriert: 21.10.2009 17:52

AND abfrage benutzen

Beitrag von Nobody-66 »

ich will folgenden code in einer neuen datei nutzen, welche ich mit dem grundgerüst von phpbb erstellt habe

Code: Alles auswählen

$anzahla = mysql_num_rows(mysql_query("SELECT * FROM banner WHERE aktiv='1' && username!= '$udaten[username]' && gebucht>verbraucht && zielgruppe IN('$udaten[land]','alle')"));
$anzahlb = mysql_num_rows(mysql_query("SELECT * FROM banner_reloadsperre WHERE username = '$udaten[username]' or IP = '$ip'"));
$anzahlc = $anzahla-$anzahlb; 
($anzahla und $anzahlb ist jeweils eine zahl, wie viele banner die bedingungen erfüllen.)

nun geht das natürlich nicht, weil ja eine andere select-methode im phpbb verwendet wird.
eine "normale" select-abfrage mit WHERE habe ich hinbekommen. aber das AND bekomme ich nicht eingebaut.
kann mir bitte jemand sagen, wie man das macht?
vielen dank schon einmal im vorraus
Nobody-66
Mitglied
Beiträge: 45
Registriert: 21.10.2009 17:52

Re: AND abfrage benutzen

Beitrag von Nobody-66 »

mal ein kleines push :)
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: AND abfrage benutzen

Beitrag von Dr.Death »

Hallo,

versuche anstelle der
&&
doch mal ein echtes
AND
im SQL Statement.

http://dev.mysql.com/doc/refman/5.1/de/ ... ators.html
Nobody-66
Mitglied
Beiträge: 45
Registriert: 21.10.2009 17:52

Re: AND abfrage benutzen

Beitrag von Nobody-66 »

Dr.Death hat geschrieben:Hallo,

versuche anstelle der
&&
doch mal ein echtes
AND
im SQL Statement.

http://dev.mysql.com/doc/refman/5.1/de/ ... ators.html
ich habe es z.b so versucht, aber leider vergeblich: ( $test = "abc"; )

Code: Alles auswählen

    $sql = 'SELECT *               // LINE 18
            FROM ' . USER_DATEN . '
            WHERE ' . ( "id = " . $user_id) . '
            AND '. ("test = " . $test);
        $result = $db->sql_query($sql);         // LINE 22
        $udaten = $db->sql_fetchrow($result);
        $db->sql_freeresult($result); 
bekomme dann diese meldung:

Allgemeiner Fehler
SQL ERROR [ mysqli ]

Unknown column 'abc' in 'where clause' [1054]

SQL

SELECT * FROM user_daten WHERE id = 93 AND test = abc

BACKTRACE


FILE: includes/db/mysqli.php
LINE: 163
CALL: dbal->sql_error()

FILE: test.php
LINE: 22
CALL: dbal_mysqli->sql_query()


2. frage:
kann man denn

Code: Alles auswählen

$anzahla = mysql_num_rows(mysql_query("SELECT * FROM banner WHERE aktiv='1' && username!= '$udaten[username]' && gebucht>verbraucht && zielgruppe IN('$udaten[land]','alle')")); 
auch direkt im PHPBB nutzen oder muss man es immer im format schreiben, wie ich es oben gemacht habe?

was ich auch nicht ganz verstehe ist, das erst abgefragt wird und dann die verbindung zur datenbank ausgeführt wird ( mit $db ). oder habe ich das falsch verstanden? :oops:
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: AND abfrage benutzen

Beitrag von Dr.Death »

Hi,

probiere doch mal die korrekte Syntax:

Code: Alles auswählen

    $sql_array = array(
            'id'    =>    '$user_id',
            'test'    =>    '$test',
    );
    
    $sql = 'SELECT *  
        FROM ' . USER_DATEN . ' 
        WHERE ' . $db->sql_build_array('SELECT', $sql_array); 
Oder deine Abfrage:

Code: Alles auswählen

    $sql_arr = array(  
        'SELECT'    => '*',  
        'FROM'      => 'banner',
        'WHERE'     => 'aktiv = 1 AND username <> ' . $udaten[username] . ' AND gebucht > verbraucht AND zielgruppe IN( ' .  $udaten[land] . ', "alle")',  
    );  
    
    $sql = $db->sql_build_query('SELECT', $sql_arr); 
Die Syntax Anleitung für phpBB3 findest Du hier: http://wiki.phpbb.com/display/DEV/Queries+in+phpBB3
Nobody-66
Mitglied
Beiträge: 45
Registriert: 21.10.2009 17:52

Re: AND abfrage benutzen

Beitrag von Nobody-66 »

Dr.Death hat geschrieben:
Die Syntax Anleitung für phpBB3 findest Du hier: http://wiki.phpbb.com/display/DEV/Queries+in+phpBB3
hallo,
danke ( wenn auch leider etwas verspätet ) für deine hilfe.
habe mir nun auch noch aus einem anderen script teile genommen und nun passen alle abfragen :D
gibt es die anleitung auch irgendwan mal auf deutsch? denn manchmal stoße ich mit meinem englisch-kenntnissen an grenzen und die onlineübersetzung einer großen suchmaschine hat auch ihre probleme :lol:
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“