Seite 1 von 1
AND abfrage benutzen
Verfasst: 25.06.2010 11:20
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
Re: AND abfrage benutzen
Verfasst: 29.06.2010 20:29
von Nobody-66
mal ein kleines push

Re: AND abfrage benutzen
Verfasst: 30.06.2010 07:37
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
Re: AND abfrage benutzen
Verfasst: 01.07.2010 12:48
von Nobody-66
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?

Re: AND abfrage benutzen
Verfasst: 01.07.2010 13:41
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
Re: AND abfrage benutzen
Verfasst: 13.07.2010 22:03
von Nobody-66
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
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
