php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.02.2009, 13:16  
Neuer Benutzer
 
Registriert seit: 13.02.2009
Beiträge: 28
Gachet01 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Problem mit Abfrage - join, inner join, distinct?

Hallo,

habe ein phpbb Forum. Ich möchte im Userprofil die Beiträge eines users anzeigen lassen. Dazu habe ich eine Inner join Abfrage geschrieben welche funktioniert:

PHP-Code:
$sql "SELECT 
phpbb_topics.topic_poster, 
phpbb_topics.topic_time, 
phpbb_topics.topic_id, 
phpbb_topics.topic_title, 
phpbb_users.username, 
phpbb_users.user_id

FROM phpbb_topics
INNER JOIN phpbb_users ON ( phpbb_topics.topic_poster = phpbb_users.user_id ) 
WHERE phpbb_topics.topic_poster = $user_ID
ORDER BY phpbb_topics.topic_id DESC 
LIMIT 0 , 10
    "


Soweit so gut, nun muss ich aber eine weitere Abfrage einbauen, welche überprüft ob der User welcher sich das Profil ansieht, Die Kategorien wo sich die Themen befindet sehen darf. Er soll also nur die Topics sehen, für welche Kategorie er das Recht besitzt.

Deswegen habe ich über der Abfrage folgenden Code:

PHP-Code:
$sql_auth "SELECT * FROM "FORUMS_TABLE;
if( !
$result_auth $db->sql_query($sql_auth) )
{
    
message_die(GENERAL_ERROR'could not query forums information.'''__LINE____FILE__$sql_auth);
}
$forums = array();
while( 
$row_auth $db->sql_fetchrow($result_auth) )
{
    
$forums[] = $row_auth;
}
$db->sql_freeresult($result_auth);

$is_auth_ary = array();
$is_auth_ary auth(AUTH_ALLAUTH_LIST_ALL$userdata);

$except_forums '\'start\'';
for( 
$f 0$f count($forums); $f++ )
{
    if( (!
$is_auth_ary[$forums[$f]['forum_id']]['auth_read']) || (!$is_auth_ary[$forums[$f]['forum_id']]['auth_view']) )
    {
        if( 
$except_forums == '\'start\'' )
        {
            
$except_forums $forums[$f]['forum_id'];
        }
        else
        {
            
$except_forums .= ','$forums[$f]['forum_id'];
        }
    }
}

$where_forums = ( $special_forums == '0' ) ? 'phpbb_forums.forum_id NOT IN ('$except_forums .')' 'phpbb_forums.forum_id NOT IN ('$except_forums .') AND phpbb_forums.forum_id IN ('$forum_ids .')'

die neue Abfrage mit der variable $where_forums sieht dann so aus:

PHP-Code:
$sql "SELECT 
phpbb_topics.topic_poster, 
phpbb_topics.topic_time, 
phpbb_topics.topic_id, 
phpbb_topics.topic_title, 
phpbb_users.username, 
phpbb_users.user_id

FROM phpbb_topics
INNER JOIN phpbb_users ON ( phpbb_topics.topic_poster = phpbb_users.user_id ) 
WHERE $where_forums AND phpbb_topics.topic_poster = $user_ID
ORDER BY phpbb_topics.topic_id DESC 
LIMIT 0 , 10
    "

Dies funktioniert aber nicht. Die $auth Abfrage ist korrekt, dass weiss ich. Nur die SQL Abfrage ist falsch.

Error

PHP-Code:
could not obtain main information.

DEBUG MODE

SQL Error 
1109 Unknown table 'phpbb_forums' in where clause

SELECT phpbb_topics
.topic_posterphpbb_topics.topic_timephpbb_topics.topic_idphpbb_topics.topic_titlephpbb_users.usernamephpbb_users.user_id FROM phpbb_topics INNER JOIN phpbb_users ON phpbb_topics.topic_poster phpbb_users.user_id WHERE phpbb_forums.forum_id NOT IN ('start') AND phpbb_topics.topic_poster 2 ORDER BY phpbb_topics.topic_id DESC LIMIT 0 10 

Ich mache glaube ich auch einen Denkfehler. Ich muss die phpbb_forums wohl noch wo einbinden?

Würd mich freuen wenn mir jemand hilft!

Grüße
Peter
Gachet01 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.12.2010, 08:50  
Erfahrener Benutzer
 
Benutzerbild von estebu
 
Registriert seit: 11.02.2009
Beiträge: 187
PHP-Kenntnisse:
Anfänger
estebu befindet sich auf einem aufstrebenden Ast
estebu eine Nachricht über Skype™ schicken
Standard

Hast du bereits versucht, phpbb_forums gleich am Anfang der Abfrage mit einzubinden? ->
PHP-Code:
$sql "SELECT  
phpbb_topics.topic_poster,  
phpbb_topics.topic_time,  
phpbb_topics.topic_id,  
phpbb_topics.topic_title,  
phpbb_users.username,  
phpbb_users.user_id
phpbb_forums.forum_id

FROM phpbb_topics, phpbb_forums
INNER JOIN phpbb_users ON ( phpbb_topics.topic_poster = phpbb_users.user_id )  
WHERE phpbb_topics.topic_poster = $user_ID 
ORDER BY phpbb_topics.topic_id DESC  
LIMIT 0 , 10 
    "

estebu ist offline   Mit Zitat antworten
Alt 27.01.2011, 06:49  
Neuer Benutzer
 
Registriert seit: 27.01.2011
Beiträge: 20
PHP-Kenntnisse:
Fortgeschritten
crime4549 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Moin

weis ja nicht obs hilft, aber dein Join sah mir merkwürdig aus...

PHP-Code:
$sql="SELECT a.topic_poster, a.topic_time, a.topic_id, a.topic_title, b.username, b.user_id , c.*
FROM phpbb_topics as a 
INNER JOIN phpbb_users as b ON  a.topic_poster = b.user_id 
inner join phpbb_forums as c
WHERE c.forum_id NOT IN ('start') 
AND a.topic_poster = 2 
ORDER BY a.topic_id DESC LIMIT 0 , 10  "

geht zumindestesn in unserem Forum Fehlerfrei, ob das ergebniss das ist was du suchts, habe ich jetzt nicht geprüft

Grüße
crime4549 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] MySql Frage: Problem mit einer etwas lomplexeren Abfrage tomtaz Datenbanken 5 24.06.2008 22:36
INNER JOIN, GROUP BY und ... schwer zu erklären abyss Datenbanken 2 15.06.2008 00:55
performance problem mit join leo Datenbanken 4 14.01.2008 22:31
exkludierender INNER JOIN pepe24 Datenbanken 5 17.12.2007 14:30
Komplexes Join Problem pPanther Datenbanken 7 03.08.2007 23:16
mysql Abfrage Problem mit dem Join test022 Datenbanken 5 28.04.2007 08:07
join problem kid01 Datenbanken 4 28.11.2006 11:54
INNER JOIN + Suchkriterien + Abfrage duerov PHP Tipps 2006 4 04.04.2006 12:47
[Erledigt] Abfrageproblem mit Inner Join Datenbanken 15 29.11.2005 18:17
sql-Abfrage inner join - unerklärliches Problem havok Datenbanken 6 17.10.2005 14:32
[Erledigt] MySQL Abfrage fieses Problem Datenbanken 5 21.07.2005 14:19
[Erledigt] INNER JOIN abfrage zusammen stricken Datenbanken 3 04.07.2005 02:21
join abfrage bei der etwas nicht ausgegeben werden soll nautiluS Datenbanken 7 03.05.2005 09:54
Problem bei db Abfrage... nautiluS Datenbanken 7 01.09.2004 19:03
SQL Abfrage mit LEFT JOIN -> OK, aber ich komm net weiter PHP-Fortgeschrittene 3 04.06.2004 00:37

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
inner join distinct, sql join distinct, sql distinct join, distinct inner join, mysql inner join distinct, distinct join, join inner join, php distinct, innerjoin distinct, http://www.php.de/datenbanken/51791-problem-mit-abfrage-join-inner-join-distinct.html, inner join unique, inner join, sql inner join distinct, distinct bei inner join, select distinct inner join, join distinct sql, php select inner join, select distinct join, sql error 1109, sql abfragen join

Alle Zeitangaben in WEZ +1. Es ist jetzt 16:31 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum