Author Topic: WBB User Post´s in 4images User Profile  (Read 19251 times)

0 Members and 1 Guest are viewing this topic.

Offline Sunny C.

  • Addicted member
  • ******
  • Posts: 1.805
  • I ♥ 4I
    • View Profile
WBB User Post´s in 4images User Profile
« on: April 25, 2011, 07:56:19 PM »
Hi,
I would like to spend the written contributions from the Forum in the 4images user profile.
The users in the Forum and 4images always the same ID

--
Hallo,
ich würde gerne die geschrieben Beiträge aus dem Forum in dem 4images-User-Profil ausgeben.
Die User haben in 4images als auch im Forum immer die gleiche ID

member.php
//-----------------------------------------------------
//--- Show Profile ------------------------------------
//-----------------------------------------------------

// WBB Datenbank auslesen
  
$sql "SELECT a.userID, a.posts
          FROM "
.USERS_TABLE." u ON (".get_user_table_field("u.""user_id")." = c.user_id)
          LEFT JOIN wbb1_1_user a ON (a.userID = "
.get_user_table_field("u.""user_id").")
          WHERE c.user_id = 
$user_id
          ORDER BY c.user_name ASC"
;
  
$result $site_db->query($sql);


and
      "lang_icq" => $lang['icq'],
	
  
"wbb_post" => $result['posts'],


in member_profile.html
{wbb_post}

But that does not work. Did I miss something?
Aber das funktioniert nicht. Habe ich etwas übersehen?

Code: [Select]
DB Error: Bad SQL Query: SELECT a.userID, a.posts FROM 4images_users u ON (u.user_id = c.user_id) LEFT JOIN wbb1_1_user a ON (a.userID = u.user_id) WHERE c.user_id = ORDER BY c.user_name ASC
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ON (u.user_id = c.user_id) LEFT JOIN wbb1_1_user a ON (a.userID = u.us' at line 2

This Works:
  $sql "SELECT posts
          FROM (wbb1_1_user w, "
.USERS_TABLE." u)
          WHERE w.userID = u.user_id"
;
  
$wbb_row $site_db->query_firstrow($sql);

But is this Correct?

Edit 2:
All dont work, and this dont work too
  $sql "SELECT w.posts, u.user_id
          FROM "
.USERS_TABLE." u
	
	
  LEFT JOIN wbb1_1_user w ON (w.userID = "
.get_user_table_field("u.""user_id").")
          WHERE u.user_id = 
$user_id";
  
$wbb_row $site_db->query_firstrow($sql);

With this code, I spent every user the same ...
  $sql "SELECT posts
          FROM (wbb1_1_user w, "
.USERS_TABLE." u)
          WHERE w.userID = u.user_id"
;
  
$wbb_row $site_db->query_firstrow($sql);

As I said, that is USER ID in the Forum and 4images the same.

Dont work:
$sql "SELECT posts
        FROM wbb1_1_user
	
	
WHERE userID = '"
.get_user_info($user_id)."'";
$wbb_row $site_db->query_firstrow($sql);


Dont work
$sql "SELECT posts
        FROM wbb1_1_user
	
	
WHERE userID = '
$user_id'";
$wbb_row $site_db->query_firstrow($sql);


Dont work
  $sql "SELECT posts
          FROM (wbb1_1_user w, "
.USERS_TABLE." u)
          WHERE "
.$user_table_fields['user_id']." = w.userID";
  
$wbb_row $site_db->query_firstrow($sql);


  $sql "SELECT posts
          FROM (wbb1_1_user w, "
.USERS_TABLE." u)
          WHERE w.userID = "
.$user_table_fields['user_id']."";
  
$wbb_row $site_db->query_firstrow($sql);


  $sql "SELECT posts
          FROM (wbb1_1_user w, "
.USERS_TABLE." u)
          WHERE w.userID = "
.$user_row['user_id']."";
  
$wbb_row $site_db->query_firstrow($sql);


  $sql = "SELECT posts
          FROM (wbb1_1_user w, ".USERS_TABLE." u)
          WHERE w.userID = '$user_id'";
  $wbb_row = $site_db->query_firstrow($sql);

.... i dont no ...
« Last Edit: April 26, 2011, 07:20:33 PM by Sumale.nin »

Offline V@no

  • If you don't tell me what to do, I won't tell you where you should go :)
  • Global Moderator
  • 4images Guru
  • *****
  • Posts: 17.849
  • mmm PHP...
    • View Profile
    • 4images MODs Demo
Re: WBB User Post´s in 4images User Profile
« Reply #1 on: April 27, 2011, 05:24:20 AM »
A little lesson about MySQL query.

when you are dealing with multiple tables in the same query, you must either use full table name or you can create short aliases.
In your first code:
//-----------------------------------------------------
//--- Show Profile ------------------------------------
//-----------------------------------------------------

// WBB Datenbank auslesen
  
$sql "SELECT a.userID, a.posts
          FROM "
.USERS_TABLE." u ON (".get_user_table_field("u.""user_id")." = c.user_id)
          LEFT JOIN wbb1_1_user a ON (a.userID = "
.get_user_table_field("u.""user_id").")
          WHERE c.user_id = 
$user_id
          ORDER BY c.user_name ASC"
;
  
$result $site_db->query($sql);

you are using two tables: USERS_TABLE and wbb1_1_user
For USERS_TABLE you chosen an alias "u" and for wbb1_1_user an alias "a", it's all good, but then all of sudden there is an unknown alias "c" comes into play:  c.user_id and c.user_name
But that is not actual error that mysql is complaining but the structure of the whole line is incorrect:
FROM ".USERS_TABLE." u ON (".get_user_table_field("u.", "user_id")." = c.user_id)

Try something like this:
  $sql "SELECT a.userID, a.posts
          FROM "
.USERS_TABLE." u
          LEFT JOIN wbb1_1_user a ON (a.userID = "
.get_user_table_field("u.""user_id").")
          WHERE u.user_id = 
$user_id
          ORDER BY u.user_name ASC"
;
  
$result $site_db->query($sql);
Your first three "must do" before you ask a question:
Please do not PM me asking for help unless you've been specifically asked to do so. Such PMs will be deleted without answer. (forum rule #6)
Extension for Firefox/Thunderbird: Master Password+    Back/Forward History Tweaks (restartless)    Cookies Manager+    Fit Images (restartless for Thunderbird)

Offline Sunny C.

  • Addicted member
  • ******
  • Posts: 1.805
  • I ♥ 4I
    • View Profile
Re: WBB User Post´s in 4images User Profile
« Reply #2 on: April 27, 2011, 07:01:29 PM »
Hi Vano,

Thank you for your information. I have tried the following:

search in member.php
//-----------------------------------------------------
//--- Show Profile ------------------------------------
//-----------------------------------------------------
if ($action == "showprofile") {

Below I have inserted the
  $sql "SELECT a.userID, a.posts
          FROM "
.USERS_TABLE." u
          LEFT JOIN wbb1_1_user a ON (a.userID = "
.get_user_table_field("u.""user_id").")
          WHERE u.user_id = 
$user_id";
  
$wbb_row $site_db->query($sql);

"lang_icq" => $lang['icq']
with
"lang_icq" => $lang['icq'],
"wbb_post" => $wbb_row['posts']

result: live
Code: [Select]
DB Error: Bad SQL Query: SELECT a.userID, a.posts FROM 4images_users u LEFT JOIN wbb1_1_user a ON (a.userID = u.user_id) WHERE u.user_id =
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4

So 4images and WoltLab Burning board are installed in the same database.
It should output from the WBB, the number of written forum posts. Similar to this:    Extern Avatar from WBB in 4images Comment

Rembrandt

  • Guest
Re: WBB User Post´s in 4images User Profile
« Reply #3 on: April 27, 2011, 07:16:28 PM »
Code: [Select]
DB Error: "....right syntax to use near '' at line 4"line 4 in your code:
 WHERE u.user_id =

"$user_id" is empty..

Offline Sunny C.

  • Addicted member
  • ******
  • Posts: 1.805
  • I ♥ 4I
    • View Profile
Re: WBB User Post´s in 4images User Profile
« Reply #4 on: April 27, 2011, 07:24:18 PM »
Jetzt habe ich das auf das geändert
  $sql "SELECT a.userID, a.posts
          FROM "
.USERS_TABLE." u
          LEFT JOIN wbb1_1_user a ON (a.userID = "
.get_user_table_field("u.""user_id").")
          WHERE userID = 
$user_id";
  
$wbb_row $site_db->query($sql);


und auch das geht nicht, im anhang ist ein screen wo man sehen kann was ausgelesen werden soll.

Wie gesagt. 4images und das wbb sind in einer Datenbank. Man muss ja dann nur auf die Tabelle zugreifen und anhand der ID das Feld "posts" auslesen oder nicht!?

Rembrandt

  • Guest
Re: WBB User Post´s in 4images User Profile
« Reply #5 on: April 27, 2011, 07:26:34 PM »
na ist jetzt die "$user_id" auf einmal nicht mehr leer?

Offline Sunny C.

  • Addicted member
  • ******
  • Posts: 1.805
  • I ♥ 4I
    • View Profile
Re: WBB User Post´s in 4images User Profile
« Reply #6 on: April 27, 2011, 07:31:22 PM »
Wie meinst du das jetzt?
In 4images als auch im wbb gibt es die ID "1"
Leer kann das nicht sein

Rembrandt

  • Guest
Re: WBB User Post´s in 4images User Profile
« Reply #7 on: April 27, 2011, 07:33:20 PM »
na bitte die fehlermeldung hast du doch gepostet:
http://www.4homepages.de/forum/index.php?topic=29527.msg157116#msg157116
und meine antwort darauf hast du dann ja nicht gelesen, oder?

Offline Sunny C.

  • Addicted member
  • ******
  • Posts: 1.805
  • I ♥ 4I
    • View Profile
Re: WBB User Post´s in 4images User Profile
« Reply #8 on: April 27, 2011, 07:40:28 PM »
Ja und du sagtest mir:
Code: [Select]
DB Error: "....right syntax to use near '' at line 4"line 4 in your code:
 WHERE u.user_id =

"$user_id" is empty..
Und $user_id ist doch von 4images selber. Ich weis nur nicht was genau damit gemeint ist, dass etwas leer ist.
Der Code funktioniert nicht
  $sql "SELECT a.userID, a.posts
          FROM "
.USERS_TABLE." u
          LEFT JOIN wbb1_1_user a ON (a.userID = "
.get_user_table_field("u.""user_id").")
          WHERE u.user_id = 
$user_id";
  
$wbb_row $site_db->query($sql);

Da habe ich gedacht, dass aus dem u.user_id das a.userID werden muss
  $sql "SELECT a.userID, a.posts
          FROM "
.USERS_TABLE." u
          LEFT JOIN wbb1_1_user a ON (a.userID = "
.get_user_table_field("u.""user_id").")
          WHERE a.userID = 
$user_id";
  
$wbb_row $site_db->query($sql);

Aber das kommt das gleiche
Code: [Select]
DB Error: Bad SQL Query: SELECT a.userID, a.posts FROM 4images_users u LEFT JOIN wbb1_1_user a ON (a.userID = u.user_id) WHERE a.userID =
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4
Jetzt weis ich ja nicht woran das liegt.
Aus der Tabelle wbb1_1_user soll das Feld posts ausgelesen werden. Damit auch bei jedem User die richtige Zahl steht, ist es ja wichtig, dass die ID gleich ist.
bei den ersten Versuchen habe ich das versucht
  $sql "SELECT posts
          FROM (wbb1_1_user w, "
.USERS_TABLE." u)
          WHERE w.userID = u.user_id"
;
  
$wbb_row $site_db->query_firstrow($sql);

Er gibt mir zwar auch die Beiträge aus, aber nur von einem User. Also in jedem Profil wird die gleiche Anzahl angezeigt wie für den User mit der ID "1"

Rembrandt

  • Guest
Re: WBB User Post´s in 4images User Profile
« Reply #9 on: April 27, 2011, 08:13:08 PM »
tja da kann ich dir nicht weiterhelfen, deine fehlermeldung sagt es doch eindeutig:
Code: [Select]
DB Error: "....right syntax to use near '' at line 4"in deiner SQL zeile 4 steht:
WHERE u.user_id $user_id";


und wenn du deinen code, nach:
//--- Show Profile ------------------------------------
//-----------------------------------------------------

einfügst, ist deine variabe "$user_id" leer, du verwendest für deine SQL WHERE abfrage ein leere variable und dadurch bekommst du die fehlermeldung.
verwende doch "$userinfo['user_id']".

Offline Sunny C.

  • Addicted member
  • ******
  • Posts: 1.805
  • I ♥ 4I
    • View Profile
Re: WBB User Post´s in 4images User Profile
« Reply #10 on: April 27, 2011, 08:33:22 PM »
Wie? Dann geht das nicht?
Oder besser gefragt, wenn Du beispielsweise diese Tabellen auslesen willst, wo würdest du denn dann diesen Code hinpacken? Und wie würde deine Abfrage dazu aussehen?

So geht das auch nicht
  $sql "SELECT a.userID, a.posts
          FROM "
.USERS_TABLE." u
          LEFT JOIN wbb1_1_user a ON (a.userID = "
.get_user_table_field("u.""user_id").")
          WHERE a.userID = "
.$userinfo['user_id']."";
  
$wbb_row $site_db->query($sql);


Damit das im Profil ausgegeben wird, muss das doch in diesem Bereich oder nicht?
//-----------------------------------------------------
//--- Show Profile ------------------------------------
//-----------------------------------------------------


Wenn ich das hier
  $sql "SELECT a.userID, a.posts
          FROM "
.USERS_TABLE." u
          LEFT JOIN wbb1_1_user a ON (a.userID = "
.get_user_table_field("u.""user_id").")
          WHERE u.user_id = 
$user_id";
  
$wbb_row $site_db->query($sql);


über das hier einfüge
    $site_template->register_vars(array(
      
"user_id" => $user_row['user_id'],
      
"user_name" => (isset($user_row['user_name'])) ? format_text($user_row['user_name'], 2) : REPLACE_EMPTY,
      
"user_email" => $user_email,
      
"user_email_save" => $user_email_save,
      
"user_mailform_link" => $user_mailform_link,
      
"user_email_button" => $user_email_button,


Dann bekomme ich keine Fehlermeldung, aber mir wird auch nichts angezeigt
« Last Edit: April 27, 2011, 08:55:25 PM by Sumale.nin »

Rembrandt

  • Guest
Re: WBB User Post´s in 4images User Profile
« Reply #11 on: April 27, 2011, 09:54:17 PM »
wenn du das dort einbaust dann hat die var " $user_id" die ID des profilbesitzers, ich denke das möchtest du ja.
und mit der folgenden SQL abfrage sollte das dann auch funktionieren.

   $sql 
"SELECT userID, posts
          FROM wbb1_1_user
          WHERE userID = 
$user_id
          "
;
$wbb_row $site_db->query($sql);


Offline Sunny C.

  • Addicted member
  • ******
  • Posts: 1.805
  • I ♥ 4I
    • View Profile
Re: WBB User Post´s in 4images User Profile
« Reply #12 on: April 28, 2011, 04:53:19 PM »
Bin ich doof oder was?
Es wird nichts ausgegeben.......
Auszug
    else {
      
$user_email REPLACE_EMPTY;
      
$user_email_save REPLACE_EMPTY;
      
$user_mailform_link REPLACE_EMPTY;
      
$user_email_button REPLACE_EMPTY;
    }
	

   
$sql "SELECT userID, posts
          FROM wbb1_1_user
          WHERE userID = 
$user_id";
   
$wbb_row $site_db->query($sql);
	

    
$site_template->register_vars(array(
      
"user_id" => $user_row['user_id'],
      
"user_name" => (isset($user_row['user_name'])) ? format_text($user_row['user_name'], 2) : REPLACE_EMPTY,
      
"user_email" => $user_email,
      
"user_email_save" => $user_email_save,
      
"user_mailform_link" => $user_mailform_link,
      
"user_email_button" => $user_email_button,
      
"user_join_date" => (isset($user_row['user_joindate'])) ? format_date($config['date_format'], $user_row['user_joindate']) : REPLACE_EMPTY,
      
"user_last_action" => (isset($user_row['user_lastaction'])) ? format_date($config['date_format']." ".$config['time_format'], $user_row['user_lastaction']) : REPLACE_EMPTY,
      
"user_homepage" => $user_homepage,
      
"user_homepage_button" => $user_homepage_button,
      
"user_icq" => $user_icq,
      
"user_icq_button" => $user_icq_button,
      
"user_icq_status" => (isset($user_row['user_icq'])) ? get_icq_status($user_row['user_icq']) : REPLACE_EMPTY,
      
"user_comments" => (isset($user_row['user_comments'])) ? $user_row['user_comments'] : REPLACE_EMPTY,
      
"lang_profile_of" => $lang['profile_of'],
      
"lang_show_user_images" => preg_replace("/".$site_template->start."user_name".$site_template->end."/siU"format_text($user_row['user_name'], 2), $lang['show_user_images']),
      
"url_show_user_images" => $site_sess->url(ROOT_PATH."search.php?search_user=".urlencode($user_row['user_name'])),
      
"lang_join_date" => $lang['join_date'],
      
"lang_last_action" => $lang['last_action'],
      
"lang_comments" => $lang['comments'],
      
"lang_email" => $lang['email'],
      
"lang_homepage" => $lang['homepage'],
      
"lang_icq" => $lang['icq'],
	
  
"wbb_post" => $wbb_row['posts']
    ));


Was mache ich denn da falsch? Eine Fehlermeldung bekomme ich auch nicht

In der member_profile.html
Code: [Select]
        <tr>
          <td class="row2"><b>Forenbeiträge</b></td>
          <td class="row2">{wbb_post}</td>
        </tr>

Rembrandt

  • Guest
Re: WBB User Post´s in 4images User Profile
« Reply #13 on: April 28, 2011, 07:42:39 PM »
du mußt statt:
Code: [Select]
$wbb_row = $site_db->query($sql);
es so schreiben:
Code: [Select]
$wbb_row = $site_db->firstrow($sql);

Offline Sunny C.

  • Addicted member
  • ******
  • Posts: 1.805
  • I ♥ 4I
    • View Profile
Re: WBB User Post´s in 4images User Profile
« Reply #14 on: April 28, 2011, 10:00:35 PM »
Danke, ich werde es testen.
Was genau ist denn der Unterschied?