Avatar billede zidane5 Nybegynder
04. december 2012 - 15:53 Der er 20 kommentarer og
1 løsning

Få postcount til kun at tælle 1

Jeg har hentet en infusion til min side, hvor jeg kan markere en forum tråd som løst, hvis denne er blevet løst. I brugerprofilen, kan man så se hvor mange forum tråde brugeren har oprettet, og hvor mange af disse, som er løste. Men, når man markere en tråd som løst, så tæller den antallet ud fra, hvor mange post, der er i den pågældende tråd.

Så hvis, jeg har en forum tråd med 5 posts indeni, og jeg markere denne som løst, så vil der stå 5 i brugerprofilen, men jeg vil kun have den skal tælle som 1.

Det er nedenstående kode, som gør sig gældende i brugerprofilen omkring antal løste for brugeren.

".number_format(dbcount("(post_solved)", DB_POSTS, "post_author='".$user_data['user_id']."' AND post_solved='1' AND forum_id IN (26)"))."
05. december 2012 - 06:31 #1
Det vil være nemmere, hvis du giver os hele queryen, såsom

$result = dbquery("SELECT ...... FROM ..... JOIN ..... WHERE .... AND post_solved = '1' AND forum_id IN (26)...
Avatar billede zidane5 Nybegynder
05. december 2012 - 15:40 #2
Hej.

Jeg tror det er nedenstående, der er hele queryen..

<?php
$result = dbquery("ALTER TABLE ".DB_POSTS." ADD post_solved TINYINT(1) UNSIGNED DEFAULT '0' NOT NULL AFTER post_edittime");
?>
05. december 2012 - 16:33 #3
Vi miskommunikerer.  Du vil, forstår jeg, lave et database udtræk der giver, blandt andet, antal tråde der er løst.  Det gør du uden tvivl med en query der begynder med SELECT.  Eller måske med $result = dbquery("SELECT .....

Men den query du bruger giver dig noget andet end du ville, nemlig antal poster i de tråde der er blevet løst.  Derfor skal vi have fundet koden for queryen og rette den til.  Det kodeafsnit du henviser til er uden tvivl en del af denne query, men du viser for lidt til at jeg kan gennemskue det.  (Hvis der er andre medlemmer der kan, så kom ind.)  Jeg taler om kodeafsnittet

".number_format(dbcount("(post_solved)", DB_POSTS, "post_author='".$user_data['user_id']."' AND post_solved='1' AND forum_id IN (26)"))."

Find dette kodeafsnit og gå tilbage i koden indtil du kommer til $result = dbquery("SELECT .....    Vis så hele koden derfra og indtil AND forum_id IN (26)"))."  Og nu du er igang, vis så også den linje kode der kommer derefter.
Avatar billede zidane5 Nybegynder
05. december 2012 - 18:38 #4
Hej.

Det må være det her:

//problem l&#65533;st
if (isset($_GET['step']) && $_GET['step'] == "solved") {
$result = dbquery("UPDATE ".DB_POSTS." SET post_solved=1 WHERE thread_id='".$_GET['thread_id']."'");
opentable("Problemet markeret som l&#65533;st");
echo "Den p&#65533;g&#65533;ldende debat er nu markeret med <b>Problemet l&#65533;st</b>.";
closetable();
}

//problem l&#65533;st

//problem ul&#65533;st
if (isset($_GET['step']) && $_GET['step'] == "unsolved") {
$result = dbquery("UPDATE ".DB_POSTS." SET post_solved=0 WHERE thread_id='".$_GET['thread_id']."'");
opentable("Problemet markeret som ul&#65533;st");
echo "Den p&#65533;g&#65533;ldende debat er nu markeret med <b>Problemet ul&#65533;st</b>.";
closetable();
}
//problem ul&#65533;st
Avatar billede zidane5 Nybegynder
05. december 2012 - 18:44 #5
Der er ikke mere kode efter ".number_format(dbcount("(post_solved)", DB_POSTS, "post_author='".$user_data['user_id']."' AND post_solved='1' AND forum_id IN (26)"))."
da det kun er et brugerfelt. Der er ikke noget database kald inde i den fil.. hmm
Avatar billede zidane5 Nybegynder
05. december 2012 - 19:38 #6
06. december 2012 - 07:37 #7
Jeg tror jeg spilder din tid fordi jeg er for dum til at kommunikere med dig.  Jeg prøver lige en gang mere.  Jeg forstår problemstillingen således:  Du har hentet en infusion som kan markere en forum tråd som løst.  Det er der ikke noget problem med, trådene bliver markeret som de skal.  Problemet ligger i, at når du derefter trækker data ud (med en SELECT query) så får du ikke det ønskede resultat.  Er det korrekt forstået?

Derfor, eftersom problemet ikke ligger i den infusion er der ingen grund til at kikke på denne infusion og heller ikke på den UPDATE query der markerer trådene som løst og heller ikke på den ALTER TABLE query der tilføjer et felt til database tabellen.  Vi skal have fundet den SELECT query der giver det uønskede resultat. 

Du siger:  "Men, når man markere en tråd som løst, så tæller den antallet ud fra, hvor mange post, der er i den pågældende tråd".  Hvornår gør 'den' det?  Det må være som resultat af en database forespørgsel.  På samme måde som du i #2 viser en dbquery("ALTER TABLE .... og du i #4 viser en dbquery("UPDATE.. så må du have en dbquery("SELECT... der hvor 'den' tæller antallet forkert.  Det er den query jeg er nødt til at se for at kunne se hvad den gør og få en chance for at få den til at gøre det du ønsker.

Eller sagt på en anden måde:  Det at 'den' tæller anderledes end det du ønsker tror jeg ikke skyldes din infusion.  Jeg tror det skyldes den måde du beder databasen om at tælle, så det er din database forespørgsel vi skal have kikket på.

Forstår du hvad jeg siger?  Eller fejler jeg endnu en gang?
Avatar billede zidane5 Nybegynder
06. december 2012 - 14:44 #8
Det er mig der misforstod dig, beklager. Har bare ikke kunne finde det i nogen filer. Men har kigget det hele igennem, og det kan ikke være andet end den nedenstående kode:

        //problem solved
        $result_s = dbquery("SELECT * FROM ".DB_POSTS." WHERE thread_id=".$data['thread_id']."");
        $data_s = dbarray($result_s);
        if ($data_s['post_solved'] == 1) {
        $mark = INFUSIONS."forum_threads_list_panel/images/cmark.gif";
        $alt = "".$locale['ftl130']."";
        } else {
        $mark = INFUSIONS."forum_threads_list_panel/images/blank.gif";
        $alt = "".$locale['ftl131']."";
        }
        //problem solved
06. december 2012 - 18:58 #9
Jeg ser, at du selecter alt fra tabellen DB_POSTS for en bestemt thread_id.  Hvis en thread har fem posts, så selecter du altså disse fem posts.  Derefter viser du, at du gør noget ved de selectede posts ved hjælp af infusionen, vist nok at du tilføjer et billed til de løste posts og et andet billed til de posts der ikke er løst. 

Du siger, at når en tråd er markeret som løst, så tælles antallet ud fra posts, ikke ud fra threads.  Så vidt jeg kan se, så tælles antallet også ud fra posts for de tråde der ikke er løst.  Ikkesandt?  Eller er det forkert?

Men jeg ved fra et andet af dine spørgsmål, at du også har en tabel DB_THREADS.  I den tabel har du trådene.  I DB_POSTS har hver postering et felt thread_id der viser hvilken tråd en post hører til.  Så kikker jeg tilbage til #2 hvor du tilføjer et felt for post_solved.  Det felt tilføjer du til DB_POSTS.  Jamen det er da vel en tråd der bliver løst, ikke et spørgsmål.  (Hvis en tråd er løst er alle trådens spørgsmål automatisk løst.)  Så det er vel DB_THREADS der skal have feltet post_solved.  Altså:

$result = dbquery("ALTER TABLE ".DB_THREADS." ADD post_solved TINYINT(1) UNSIGNED DEFAULT '0' NOT NULL AFTER post_edittime")

og hvis det er trådene, ikke spørgsmålene, du vil have fat på skulle SELECT querien i #8 vel være

$result_s = dbquery("SELECT * FROM ".DB_THREADS." o.s.v.

Om du med disse ændringer, ALTER TABLE DB_THREADS i stedet for DB_POSTS og SELECT * FROM DB_THREADS i stedet for DB_POSTS, får det ønskede resultat har jeg for lidt oplysninger til at vurdere, men det må i det mindste være et skridt i den rigtige retning.
Avatar billede zidane5 Nybegynder
06. december 2012 - 21:35 #10
Jeg takker mange gange for hjælpen igen :)

Sender du lige svar med pointgivning !
Avatar billede zidane5 Nybegynder
06. december 2012 - 22:09 #11
Jeg har dog et spørgsmål mere. Der er et sted, hvor jeg ikke kan få det til at passe med det nye sted den skal select fra.

får flg fejlmeddelse:

Unknown column 'post_author' in 'where clause' Unknown column 'post_author' in 'where clause'

Når jeg ændrer

".number_format(dbcount("(post_solved)", DB_POSTS, "post_author='".$user_data['user_id']."' AND post_solved='1' AND forum_id IN (26)"))."

til

".number_format(dbcount("(post_solved)", DB_THREADS, "thread_author='".$user_data['user_id']."' AND post_solved='1' AND forum_id IN (26)"))."

Der er kun tread_aut
Samtidig får jeg fejlmeddelsen: Unknown column 'tp.post_id' in 'field list'

ved dette db udtræk, som jeg også har ændret til FROM ".DB_POSTS." tp til FROM ".DB_THREADS." tp

$result = dbquery("SELECT tp.forum_id, tp.thread_id, tp.post_id, tp.post_author, tp.post_datestamp, tp.post_solved, tf.forum_name, tf.forum_access, tt.thread_subject
FROM ".DB_THREADS." tp
INNER JOIN ".DB_FORUMS." tf ON tp.forum_id=tf.forum_id
INNER JOIN ".DB_THREADS." tt ON tp.thread_id=tt.thread_id
WHERE ".groupaccess('tf.forum_access')." AND tf.forum_id IN (11) AND $where ORDER BY tp.post_datestamp DESC LIMIT ".$_GET['rowstart'].",10");
07. december 2012 - 08:47 #12
Det sidste problem er nemt.  Du har ikke i DB_THREADS et felt post_id.  Du har heller ikke felterne post_author, post_datastamp, eller post.solved.  Du ændrede "FROM DB_POSTS" til "DB_THREADS", men du foretog ikke de nødvendige ændringer i SELECT sætningen.  For eksempel thread_author i stedet for post_author.

For det første problem har jeg ikke oplysninger nok.  Men du må et eller andet sted i koden have en query der indeholder "...WHERE post_author = ...".  Det vil nok være en query hvor du har skiftet DB_POSTS ud med DB_THREADS, og du skal nok rette post_author til thread_author.
Avatar billede zidane5 Nybegynder
08. december 2012 - 12:45 #13
Tak for hjælpen :)
Avatar billede zidane5 Nybegynder
08. december 2012 - 19:55 #14
Hej. Jeg kan ikke rigtigt få det til at hænge sammen alligevel. Var lidt for hurtigt ude med tak for hjælpen..

Den melder stadig fejl, selvom jeg har ændret, der hvor der skal ændres.

kan du spotte hvad fejlen er i nedenstående fil?


<?php
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright &#65533; 2002 - 2008 Nick Jones
| http://www.php-fusion.co.uk/
+--------------------------------------------------------+
| Filename: forum_extension_panel1.php
| Author: Max "Matonor" Toball
+--------------------------------------------------------+
| This program is released as free software under the
| Affero GPL license. You can redistribute it and/or
| modify it under the terms of this license which you
| can read by viewing the included agpl.txt or online
| at www.gnu.org/licenses/agpl.html. Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
if (!defined("IN_FUSION")) { die("Access Denied"); }

include_once INFUSIONS."forum_extension_panel/forum_extension_core.php";

if (file_exists($dir."locale/".$settings['locale'].".php")) {
    include $dir."locale/".$settings['locale'].".php";
} else {
    include $dir."locale/English.php";
}

if($in_forum){
    if(stristr($url, $places['index']) && $options['forum_panel'] && !(!$options['top_posters'] && !$options['forum_stats'] && !$options['user_stats'])){
        //General Stats
        list($posts) = dbarraynum(dbquery("SELECT SUM(forum_postcount) FROM ".DB_FORUMS));
        $posts = empty($posts) ? 0 : $posts;
        list($threads) = dbarraynum(dbquery("SELECT SUM(forum_threadcount) FROM ".DB_FORUMS));
        $threads = empty($threads) ? 0 : $threads;
        list($age) = dbarraynum(dbquery("SELECT user_joined from ".DB_USERS." WHERE user_id=1"));
        $age = empty($age) ? 0 : $age;
        $threadspday = almost_null($threads/((time() - $age)/(3600*24)));
        $postspday = almost_null($posts/((time() - $age)/(3600*24)));
       
        //Top Posters
        list($tposter_id, $tposter_name, $tposter_posts) = dbarraynum(dbquery("SELECT user_id, user_name, user_posts FROM ".DB_USERS." ORDER BY user_posts DESC LIMIT 1"));
       
        list($aposter_id, $aposter_name, $aposter_ppday) = dbarraynum(dbquery("SELECT user_id, user_name, (user_posts/((".time()."-user_joined)/(24*3600))) FROM ".DB_USERS." WHERE user_joined < (".time()."-(3600*24)) ORDER BY user_posts DESC LIMIT 1"));
       
        //User Stats
        $total_users = dbcount("(user_id)", DB_USERS);
        $newest_member = array();
        list($newest_member['name'], $newest_member['id']) = dbarraynum(dbquery("SELECT user_name, user_id FROM ".DB_USERS." ORDER BY user_joined DESC LIMIT 1"));
        $online_guests = dbcount("(online_ip)", DB_ONLINE, "online_user='0' AND online_lastactive > (".time()."-5*60)");
        $online_users_res = dbquery("SELECT user_name, user_id, user_level FROM ".DB_USERS." WHERE user_lastvisit > (".time()."-5*60) ORDER BY user_lastvisit DESC");
        $online_users = array();
        while($online_users_data = dbarray($online_users_res)){
            $online_users[] = array("user_id" => $online_users_data['user_id'], "user_name" => $online_users_data['user_name'], "user_level" => $online_users_data['user_level']);
        }
        $total_online = $online_guests+count($online_users);
        list($max_online, $max_online_time) = explode(":", $stats['max_online_users']);
        if($total_online > $max_online){
            $stats['max_online_users'] = $total_online.":".time();
            update_stats();
            $max_online = $total_online;
            $max_online_time = time();
        }
       
        opentable($locale['forum_ext_title_forum']);
        echo "<table cellpadding='0' cellspacing='1' width='100%' class='tbl-border'>\n\t<tr>
            <th class='forum-caption' width='1%' style='white-space: no-wrap;' rowspan='4'><img alt='".$locale['forum_ext_stats']."' src='".$dir."/images/forum_stats.png' /></th></tr>";
        if($options['top_posters'])    {
            echo "<tr>
                <td class='tbl2'>
                    ".$locale['forum_ext_topposter'].": <a href='".BASEDIR."profile.php?lookup=".$tposter_id."'>".$tposter_name."</a> (".$tposter_posts." ".$locale['forum_ext_posts'].") ::
                    ".$locale['forum_ext_actposter'].": <a href='".BASEDIR."profile.php?lookup=".$aposter_id."'>".$aposter_name."</a> (".round($aposter_ppday, 2)." ".$locale['forum_ext_postspday'].")
                </td>
            </tr>\n";
        }

        echo "</table>\n";
        closetable();
   
    }elseif(stristr($url, $places['thread']) && $options['similar_threads']){
       
        $thread_id = isnum($_GET['thread_id']) ? $_GET['thread_id'] : 0;
       
        if($thread_id){
            list($thread_subject) = dbarraynum(dbquery("SELECT thread_subject from ".DB_THREADS." WHERE thread_id=".$thread_id.""));
           
            $rel_thread_res = dbquery("
            SELECT tt.thread_id, tt.thread_subject, tf.forum_id, tf.forum_name, tf.forum_access, tt.thread_postcount, tt.thread_lastpost
            FROM ".DB_THREADS." tt
            INNER JOIN ".DB_FORUMS." tf ON tt.forum_id=tf.forum_id
            WHERE MATCH (thread_subject) AGAINST ('".$thread_subject."' IN BOOLEAN MODE) AND thread_id != ".$thread_id." AND ".groupaccess('tf.forum_access')." ORDER BY tt.thread_lastpost DESC LIMIT 5");
           
            if(dbrows($rel_thread_res)){
                opentable($locale['forum_ext_title_thread']);
                echo "<table cellpadding='0' cellspacing='1' width='100%' class='tbl-border'>\n
                    <tr>
                        <th class='forum-caption'>".$locale['global_044']."</th>
                        <th class='forum-caption'>".$locale['global_048']."</th>
                        <th class='forum-caption'>".$locale['global_047']."</th>
                    </tr>\n";
                $i = 0;
                while($thread = dbarray($rel_thread_res)){
                    $i++; $row = $i%2 ? " class='tbl1'" : " class='tbl2'";
                    echo "
                    <tr>
                        <td class='tbl".$row."'><a href='".FUSION_SELF."?thread_id=".$thread['thread_id']."'>".$thread['thread_subject']."</a></td>
                        <td class='tbl".$row."'>".$thread['forum_name']."</td>
                        <td class='tbl".$row."'>".$thread['thread_postcount']."</td>
                        <td class='tbl".$row."'>".showdate("forumdate", $thread['thread_lastpost'])."</td>
                    </tr>";
                }
               
                echo "</table>";
                closetable();
            }
        }
   
    }elseif(stristr($url, $places['profile']) && $options['profile_panel'] && isset($_GET['lookup'])){
       
        $user_id = isnum($_GET['lookup']) ? $_GET['lookup'] : 0;
       
if($user_id == "1"){
            list($name, $posts, $age) = dbarraynum(dbquery("SELECT user_name, user_posts, user_joined FROM ".DB_USERS." WHERE user_id=".$user_id));
            $posts = empty($posts) ? 0 : $posts;
            list($threads) = dbarraynum(dbquery("SELECT COUNT(thread_id) FROM ".DB_THREADS." WHERE thread_author=".$user_id));
            $threads = empty($threads) ? 0 : $threads;
           
            $threadspday = almost_null($threads/((time() - $age)/(3600*24)));
            $postspday = almost_null($posts/((time() - $age)/(3600*24)));
           
            list($ranked_higher) = dbarraynum(dbquery("SELECT COUNT(user_id) FROM ".DB_USERS." WHERE user_posts>".$posts));
            $rank = $ranked_higher+1;
            list($allposts) = dbarraynum(dbquery("SELECT SUM(forum_postcount) FROM ".DB_FORUMS));
            $percentage = empty($posts) || empty($allposts) ? 0 : ($posts*100.0)/$allposts;
            $percentage = almost_null($percentage);
           
if (iMEMBER)
        {
            opentable(sprintf($locale['forum_ext_title_profile'], $name));
               
            foreach(array("threads", "posts") as $type){
                $other_type = $type=="threads"? "posts" : "threads";
                if($type == "threads"){
                    if(!isset($_GET['show']) || (isset($_GET['show']) && $_GET['show'] != "posts")){
                        $visibility = "";
                    }else{
                        $visibility = "style='display: none;'";
                    }
                }else{
                    if(isset($_GET['show']) && $_GET['show'] == "posts"){
                        $visibility = "";
                    }else{
                        $visibility = "style='display: none;'";
                    }
                }
                if (!isset($_GET['rowstart']) || !isnum($_GET['rowstart'])) { $_GET['rowstart'] = 0; }
                $where = $type == "threads" ? "tt.thread_author='$user_id' GROUP BY tt.thread_id" : "tp.post_author='".$user_id."'";
               
                $rows_res = dbquery("SELECT thread_id FROM ".DB_THREADS." tp
                INNER JOIN ".DB_FORUMS." tf ON tp.forum_id=tf.forum_id
                INNER JOIN ".DB_THREADS." tt ON tp.thread_id=tt.thread_id
WHERE ".groupaccess('tf.forum_access')." AND tf.forum_id IN (11) AND $where
                ORDER BY thread_id DESC LIMIT 1");
           
$result = dbquery("SELECT tp.forum_id, tp.thread_id, tp.thread_author, tp.post_solved,
                tf.forum_name, tf.forum_access, tt.thread_subject
                FROM ".DB_THREADS." tp
                INNER JOIN ".DB_FORUMS." tf ON tp.forum_id=tf.forum_id
                INNER JOIN ".DB_THREADS." tt ON tp.thread_id=tt.thread_id
WHERE ".groupaccess('tf.forum_access')." AND tf.forum_id IN (11) AND $where
                ORDER BY thread_id DESC LIMIT 1");
               
                echo "<script type='text/javascript'>
                $(document).ready(function(){
                    $('#forum_panel_".$other_type."_toggle').click(function() {
                        $('#forum_panel_".$other_type."').show();
                        $('#forum_panel_".$type."').hide();
                        return false;
                    });
                });</script>
                <div id='forum_panel_".$type."' ".$visibility.">";
               

                if (!isset($_GET['rowstart']) || !isnum($_GET['rowstart'])) { $_GET['rowstart'] = 0; }
                echo "
                <table cellpadding='0' cellspacing='1' width='100%' class='tbl-border'>\n\t<tr>
                    <th class='forum-caption'>".$locale['forum_ext_recent_show_posts']."</th>
                    <th class='forum-caption'>".$locale['forum_ext_title_reply']."</th>
                    <th class='forum-caption'>".$locale['gglobal_047']."</th>
                </tr>\n";
                $rows = dbrows($rows_res);
                if ($rows) {
                    $i=0;
                    while ($data = dbarray($result)) {
if ($data['post_solved'] == "0") {
$image_status = "<img src='".INFUSIONS."forum_threads_list_panel/images/blank1.gif' alt='' />";
}
             
if ($data['post_solved'] == "1") {
$image_status = "<img src='".INFUSIONS."forum_threads_list_panel/images/cmark1.gif' alt='' />";
}

                        $i++; $row = $i%2 ? "class='tbl1'" : "class='tbl2'";
$data2 = dbarray(dbquery("SELECT * FROM ".DB_THREADS."  WHERE thread_id='".$data['thread_id']."' ORDER BY thread_id DESC LIMIT 1"));
        $post_message = $data2['post_smileys'] == 1 ? parsesmileys($data2['post_message']) : $data2['post_message'];
        $post_message = phpentities(nl2br(parseubb($post_message)));

echo "<tr>\n\t<td width='100%' $row>$image_status &nbsp;&nbsp;&nbsp;<a href='".FORUM."dagensforslaget.php?thread_id=".$data['thread_id']."' title=\"header=[ ".str_replace("]", "]]", str_replace("[", "[[", trimlink($data['thread_subject'], 200)))."] body=[".str_replace("]", "]]", str_replace("[", "[[", trimlink($post_message, 150)))."] delay=[0] fade=[on]\">".trimlink($data['thread_subject'], 200)."</a></td>
                        <td width='1%' style='white-space:nowrap' $row>".trimlink($data['forum_name'], 30)."</td>
                        <td align='center' width='1%' style='white-space:nowrap' $row>".showdate("forumdate")."</td>\n</tr>\n";
                    }
                    if ($rows1 > 10){
                        echo "<tr><td class='tbl2' colspan='3'><div align='center' style='margin-top:5px;'>\n".makepagenav($_GET['rowstart'], 10, $rows, 3, FUSION_SELF."?lookup=".$_GET['lookup']."&amp;show=$type&amp;")."\n</div></td></tr>\n";
                    }
                } else {
                    echo "<tr><td colspan='3' style='text-align:center' class='tbl1'>\n".$locale['forum_ext_no_threads']."</td></tr>\n";
                }
                echo "</table>\n";
                echo "</div>\n";
            }
            closetable();
        }
}
    }elseif(stristr($url, $places['reply']) && $options['thread_preview']){
       
        $thread_id = isnum($_GET['thread_id']) ? $_GET['thread_id'] : 0;
       
        if($thread_id){
            $posts_res = dbquery(
                "SELECT p.*, u.*, u2.user_name AS edit_name
                FROM ".DB_POSTS." p
                LEFT JOIN ".DB_USERS." u ON p.post_author = u.user_id
                LEFT JOIN ".DB_USERS." u2 ON p.post_edituser = u2.user_id AND post_edituser > '0'
                WHERE p.thread_id='".$thread_id."' ORDER BY post_datestamp LIMIT 20"
            );
           
            opentable($locale['forum_ext_title_reply']);
            echo "<div style='max-height: 600px; overflow: auto;'><table cellpadding='0' cellspacing='1' width='100%' class='tbl-border'>\n\t";
            $i = 0;
            while($post_data = dbarray($posts_res)){
                $i++;
                $class = $i%2 == 0 ? "tbl1" : "tbl2";
                echo "<tr><td rowspan='2' valign='top' class='$class' width='1%' style='white-space: nowrap;'>
                        <a style='font-weight:bold;' href='".BASEDIR."profile.php?lookup=".$post_data['user_id']."'>".$post_data['user_name']."</a><br/>
                    </td><td class='$class'>
                        ".showdate("forumdate", $post_data['post_datestamp'])."
                    </td></tr><tr>
                    <td class='$class'>
                        ".nl2br(parseubb($post_data['post_message']))."
                    </td></tr>";
            }
            echo "</table></div>";
            closetable();
        }
    }elseif((stristr($url, $places['postify']) || (stristr($url, $places['edit']) && isset($_POST['savechanges']))) && $options['skip_postify']){
        if(isset($_GET['thread_id']) && isnum($_GET['thread_id'])){
            $url = "viewthread.php?forum_id=".$_GET['forum_id']."&thread_id=".$_GET['thread_id'];
            if(isset($_GET['post_id']) && isnum($_GET['post_id']) && !isset($_POST['delete'])){
                $url .= "&pid=".$_GET['post_id']."#post_".$_GET['post_id'];
            }
            $skip_postify_redirect_url = $url;
            function skip_postify($output){
                global $skip_postify_redirect_url;
                redirect($skip_postify_redirect_url);
            }
            add_handler("skip_postify");
        }
    }
   
    if((stristr($url, $places['index']) || stristr($url, $places['forum']) || stristr($url, $places['thread'])) && $options['forum_observer']){
        $user_id = iMEMBER ? $userdata['user_id'] : USER_IP;
        $forum_id = "";
        $thread_id = "";
        if(stristr($url, $places['index'])){
            $forum_id = 0;
            $thread_id = 0;
        }elseif(stristr($url, $places['forum']) && isset($_GET['forum_id']) && isnum($_GET['forum_id'])){
            $forum_id = $_GET['forum_id'];
            $thread_id = 0;
        }elseif(stristr($url, $places['thread']) && isset($_GET['thread_id']) && isnum($_GET['thread_id'])){
            list($forum_id) = dbarraynum(dbquery("SELECT forum_id FROM ".DB_THREADS." WHERE thread_id='".$_GET['thread_id']."'"));
            $thread_id = $_GET['thread_id'];
        }
        if(isnum($forum_id) && isnum($thread_id)){
            dbquery("REPLACE INTO ".DB_FORUM_OBSERVER2." SET user_id='$user_id', forum_id='$forum_id', thread_id='$thread_id', age='".time()."'");
        }
        dbquery("DELETE FROM ".DB_FORUM_OBSERVER2." WHERE age < (".time()."-5*60)");
       
        add_handler("forum_observer");
    }
}
?>


Her er den originale fil uden ændringer..

<?php
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright &#65533; 2002 - 2008 Nick Jones
| http://www.php-fusion.co.uk/
+--------------------------------------------------------+
| Filename: forum_extension_panel1.php
| Author: Max "Matonor" Toball
+--------------------------------------------------------+
| This program is released as free software under the
| Affero GPL license. You can redistribute it and/or
| modify it under the terms of this license which you
| can read by viewing the included agpl.txt or online
| at www.gnu.org/licenses/agpl.html. Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
if (!defined("IN_FUSION")) { die("Access Denied"); }

include_once INFUSIONS."forum_extension_panel/forum_extension_core.php";

if (file_exists($dir."locale/".$settings['locale'].".php")) {
    include $dir."locale/".$settings['locale'].".php";
} else {
    include $dir."locale/English.php";
}

if($in_forum){
    if(stristr($url, $places['index']) && $options['forum_panel'] && !(!$options['top_posters'] && !$options['forum_stats'] && !$options['user_stats'])){
        //General Stats
        list($posts) = dbarraynum(dbquery("SELECT SUM(forum_postcount) FROM ".DB_FORUMS));
        $posts = empty($posts) ? 0 : $posts;
        list($threads) = dbarraynum(dbquery("SELECT SUM(forum_threadcount) FROM ".DB_FORUMS));
        $threads = empty($threads) ? 0 : $threads;
        list($age) = dbarraynum(dbquery("SELECT user_joined from ".DB_USERS." WHERE user_id=1"));
        $age = empty($age) ? 0 : $age;
        $threadspday = almost_null($threads/((time() - $age)/(3600*24)));
        $postspday = almost_null($posts/((time() - $age)/(3600*24)));
       
        //Top Posters
        list($tposter_id, $tposter_name, $tposter_posts) = dbarraynum(dbquery("SELECT user_id, user_name, user_posts FROM ".DB_USERS." ORDER BY user_posts DESC LIMIT 1"));
       
        list($aposter_id, $aposter_name, $aposter_ppday) = dbarraynum(dbquery("SELECT user_id, user_name, (user_posts/((".time()."-user_joined)/(24*3600))) FROM ".DB_USERS." WHERE user_joined < (".time()."-(3600*24)) ORDER BY user_posts DESC LIMIT 1"));
       
        //User Stats
        $total_users = dbcount("(user_id)", DB_USERS);
        $newest_member = array();
        list($newest_member['name'], $newest_member['id']) = dbarraynum(dbquery("SELECT user_name, user_id FROM ".DB_USERS." ORDER BY user_joined DESC LIMIT 1"));
        $online_guests = dbcount("(online_ip)", DB_ONLINE, "online_user='0' AND online_lastactive > (".time()."-5*60)");
        $online_users_res = dbquery("SELECT user_name, user_id, user_level FROM ".DB_USERS." WHERE user_lastvisit > (".time()."-5*60) ORDER BY user_lastvisit DESC");
        $online_users = array();
        while($online_users_data = dbarray($online_users_res)){
            $online_users[] = array("user_id" => $online_users_data['user_id'], "user_name" => $online_users_data['user_name'], "user_level" => $online_users_data['user_level']);
        }
        $total_online = $online_guests+count($online_users);
        list($max_online, $max_online_time) = explode(":", $stats['max_online_users']);
        if($total_online > $max_online){
            $stats['max_online_users'] = $total_online.":".time();
            update_stats();
            $max_online = $total_online;
            $max_online_time = time();
        }
       
        opentable($locale['forum_ext_title_forum']);
        echo "<table cellpadding='0' cellspacing='1' width='100%' class='tbl-border'>\n\t<tr>
            <th class='forum-caption' width='1%' style='white-space: no-wrap;' rowspan='4'><img alt='".$locale['forum_ext_stats']."' src='".$dir."/images/forum_stats.png' /></th></tr>";
        if($options['top_posters'])    {
            echo "<tr>
                <td class='tbl2'>
                    ".$locale['forum_ext_topposter'].": <a href='".BASEDIR."profile.php?lookup=".$tposter_id."'>".$tposter_name."</a> (".$tposter_posts." ".$locale['forum_ext_posts'].") ::
                    ".$locale['forum_ext_actposter'].": <a href='".BASEDIR."profile.php?lookup=".$aposter_id."'>".$aposter_name."</a> (".round($aposter_ppday, 2)." ".$locale['forum_ext_postspday'].")
                </td>
            </tr>\n";
        }

        echo "</table>\n";
        closetable();
   
    }elseif(stristr($url, $places['thread']) && $options['similar_threads']){
       
        $thread_id = isnum($_GET['thread_id']) ? $_GET['thread_id'] : 0;
       
        if($thread_id){
            list($thread_subject) = dbarraynum(dbquery("SELECT thread_subject from ".DB_THREADS." WHERE thread_id=".$thread_id.""));
           
            $rel_thread_res = dbquery("
            SELECT tt.thread_id, tt.thread_subject, tf.forum_id, tf.forum_name, tf.forum_access, tt.thread_postcount, tt.thread_lastpost
            FROM ".DB_THREADS." tt
            INNER JOIN ".DB_FORUMS." tf ON tt.forum_id=tf.forum_id
            WHERE MATCH (thread_subject) AGAINST ('".$thread_subject."' IN BOOLEAN MODE) AND thread_id != ".$thread_id." AND ".groupaccess('tf.forum_access')." ORDER BY tt.thread_lastpost DESC LIMIT 5");
           
            if(dbrows($rel_thread_res)){
                opentable($locale['forum_ext_title_thread']);
                echo "<table cellpadding='0' cellspacing='1' width='100%' class='tbl-border'>\n
                    <tr>
                        <th class='forum-caption'>".$locale['global_044']."</th>
                        <th class='forum-caption'>".$locale['global_048']."</th>
                        <th class='forum-caption'>".$locale['global_047']."</th>
                    </tr>\n";
                $i = 0;
                while($thread = dbarray($rel_thread_res)){
                    $i++; $row = $i%2 ? " class='tbl1'" : " class='tbl2'";
                    echo "
                    <tr>
                        <td class='tbl".$row."'><a href='".FUSION_SELF."?thread_id=".$thread['thread_id']."'>".$thread['thread_subject']."</a></td>
                        <td class='tbl".$row."'>".$thread['forum_name']."</td>
                        <td class='tbl".$row."'>".$thread['thread_postcount']."</td>
                        <td class='tbl".$row."'>".showdate("forumdate", $thread['thread_lastpost'])."</td>
                    </tr>";
                }
               
                echo "</table>";
                closetable();
            }
        }
   
    }elseif(stristr($url, $places['profile']) && $options['profile_panel'] && isset($_GET['lookup'])){
       
        $user_id = isnum($_GET['lookup']) ? $_GET['lookup'] : 0;
       
if($user_id == "1"){
            list($name, $posts, $age) = dbarraynum(dbquery("SELECT user_name, user_posts, user_joined FROM ".DB_USERS." WHERE user_id=".$user_id));
            $posts = empty($posts) ? 0 : $posts;
            list($threads) = dbarraynum(dbquery("SELECT COUNT(thread_id) FROM ".DB_THREADS." WHERE thread_author=".$user_id));
            $threads = empty($threads) ? 0 : $threads;
           
            $threadspday = almost_null($threads/((time() - $age)/(3600*24)));
            $postspday = almost_null($posts/((time() - $age)/(3600*24)));
           
            list($ranked_higher) = dbarraynum(dbquery("SELECT COUNT(user_id) FROM ".DB_USERS." WHERE user_posts>".$posts));
            $rank = $ranked_higher+1;
            list($allposts) = dbarraynum(dbquery("SELECT SUM(forum_postcount) FROM ".DB_FORUMS));
            $percentage = empty($posts) || empty($allposts) ? 0 : ($posts*100.0)/$allposts;
            $percentage = almost_null($percentage);
           
if (iMEMBER)
        {
            opentable(sprintf($locale['forum_ext_title_profile'], $name));
               
            foreach(array("threads", "posts") as $type){
                $other_type = $type=="threads"? "posts" : "threads";
                if($type == "threads"){
                    if(!isset($_GET['show']) || (isset($_GET['show']) && $_GET['show'] != "posts")){
                        $visibility = "";
                    }else{
                        $visibility = "style='display: none;'";
                    }
                }else{
                    if(isset($_GET['show']) && $_GET['show'] == "posts"){
                        $visibility = "";
                    }else{
                        $visibility = "style='display: none;'";
                    }
                }
                if (!isset($_GET['rowstart']) || !isnum($_GET['rowstart'])) { $_GET['rowstart'] = 0; }
                $where = $type == "threads" ? "tt.thread_author='$user_id' GROUP BY tt.thread_id" : "tp.post_author='".$user_id."'";
               
                $rows_res = dbquery("SELECT post_id FROM ".DB_POSTS." tp
                INNER JOIN ".DB_FORUMS." tf ON tp.forum_id=tf.forum_id
                INNER JOIN ".DB_THREADS." tt ON tp.thread_id=tt.thread_id
WHERE ".groupaccess('tf.forum_access')." AND tf.forum_id IN (11) AND $where
                ORDER BY tp.post_datestamp DESC");
           
$result = dbquery("SELECT tp.forum_id, tp.thread_id, tp.post_id, tp.post_author, tp.post_datestamp, tp.post_solved,
                tf.forum_name, tf.forum_access, tt.thread_subject
                FROM ".DB_POSTS." tp
                INNER JOIN ".DB_FORUMS." tf ON tp.forum_id=tf.forum_id
                INNER JOIN ".DB_THREADS." tt ON tp.thread_id=tt.thread_id
WHERE ".groupaccess('tf.forum_access')." AND tf.forum_id IN (11) AND $where
                ORDER BY tp.post_datestamp DESC LIMIT ".$_GET['rowstart'].",10");
               
                echo "<script type='text/javascript'>
                $(document).ready(function(){
                    $('#forum_panel_".$other_type."_toggle').click(function() {
                        $('#forum_panel_".$other_type."').show();
                        $('#forum_panel_".$type."').hide();
                        return false;
                    });
                });</script>
                <div id='forum_panel_".$type."' ".$visibility.">";
               

                if (!isset($_GET['rowstart']) || !isnum($_GET['rowstart'])) { $_GET['rowstart'] = 0; }
                echo "
                <table cellpadding='0' cellspacing='1' width='100%' class='tbl-border'>\n\t<tr>
                    <th class='forum-caption'>".$locale['forum_ext_recent_show_posts']."</th>
                    <th class='forum-caption'>".$locale['forum_ext_title_reply']."</th>
                    <th class='forum-caption'>".$locale['gglobal_047']."</th>
                </tr>\n";
                $rows = dbrows($rows_res);
                if ($rows) {
                    $i=0;
                    while ($data = dbarray($result)) {
if ($data['post_solved'] == "0") {
$image_status = "<img src='".INFUSIONS."forum_threads_list_panel/images/blank1.gif' alt='' />";
}
             
if ($data['post_solved'] == "1") {
$image_status = "<img src='".INFUSIONS."forum_threads_list_panel/images/cmark1.gif' alt='' />";
}

                        $i++; $row = $i%2 ? "class='tbl1'" : "class='tbl2'";
$data2 = dbarray(dbquery("SELECT * FROM ".DB_POSTS."  WHERE thread_id='".$data['thread_id']."' ORDER BY post_id DESC LIMIT 1"));
        $post_message = $data2['post_smileys'] == 1 ? parsesmileys($data2['post_message']) : $data2['post_message'];
        $post_message = phpentities(nl2br(parseubb($post_message)));

echo "<tr>\n\t<td width='100%' $row>$image_status &nbsp;&nbsp;&nbsp;<a href='".FORUM."dagensforslaget.php?thread_id=".$data['thread_id']."' title=\"header=[ ".str_replace("]", "]]", str_replace("[", "[[", trimlink($data['thread_subject'], 200)))."] body=[".str_replace("]", "]]", str_replace("[", "[[", trimlink($post_message, 150)))."] delay=[0] fade=[on]\">".trimlink($data['thread_subject'], 200)."</a></td>
                        <td width='1%' style='white-space:nowrap' $row>".trimlink($data['forum_name'], 30)."</td>
                        <td align='center' width='1%' style='white-space:nowrap' $row>".showdate("forumdate", $data['post_datestamp'])."</td>\n</tr>\n";
                    }
                    if ($rows1 > 10){
                        echo "<tr><td class='tbl2' colspan='3'><div align='center' style='margin-top:5px;'>\n".makepagenav($_GET['rowstart'], 10, $rows, 3, FUSION_SELF."?lookup=".$_GET['lookup']."&amp;show=$type&amp;")."\n</div></td></tr>\n";
                    }
                } else {
                    echo "<tr><td colspan='3' style='text-align:center' class='tbl1'>\n".$locale['forum_ext_no_threads']."</td></tr>\n";
                }
                echo "</table>\n";
                echo "</div>\n";
            }
            closetable();
        }
}
    }elseif(stristr($url, $places['reply']) && $options['thread_preview']){
       
        $thread_id = isnum($_GET['thread_id']) ? $_GET['thread_id'] : 0;
       
        if($thread_id){
            $posts_res = dbquery(
                "SELECT p.*, u.*, u2.user_name AS edit_name
                FROM ".DB_POSTS." p
                LEFT JOIN ".DB_USERS." u ON p.post_author = u.user_id
                LEFT JOIN ".DB_USERS." u2 ON p.post_edituser = u2.user_id AND post_edituser > '0'
                WHERE p.thread_id='".$thread_id."' ORDER BY post_datestamp LIMIT 20"
            );
           
            opentable($locale['forum_ext_title_reply']);
            echo "<div style='max-height: 600px; overflow: auto;'><table cellpadding='0' cellspacing='1' width='100%' class='tbl-border'>\n\t";
            $i = 0;
            while($post_data = dbarray($posts_res)){
                $i++;
                $class = $i%2 == 0 ? "tbl1" : "tbl2";
                echo "<tr><td rowspan='2' valign='top' class='$class' width='1%' style='white-space: nowrap;'>
                        <a style='font-weight:bold;' href='".BASEDIR."profile.php?lookup=".$post_data['user_id']."'>".$post_data['user_name']."</a><br/>
                    </td><td class='$class'>
                        ".showdate("forumdate", $post_data['post_datestamp'])."
                    </td></tr><tr>
                    <td class='$class'>
                        ".nl2br(parseubb($post_data['post_message']))."
                    </td></tr>";
            }
            echo "</table></div>";
            closetable();
        }
    }elseif((stristr($url, $places['postify']) || (stristr($url, $places['edit']) && isset($_POST['savechanges']))) && $options['skip_postify']){
        if(isset($_GET['thread_id']) && isnum($_GET['thread_id'])){
            $url = "viewthread.php?forum_id=".$_GET['forum_id']."&thread_id=".$_GET['thread_id'];
            if(isset($_GET['post_id']) && isnum($_GET['post_id']) && !isset($_POST['delete'])){
                $url .= "&pid=".$_GET['post_id']."#post_".$_GET['post_id'];
            }
            $skip_postify_redirect_url = $url;
            function skip_postify($output){
                global $skip_postify_redirect_url;
                redirect($skip_postify_redirect_url);
            }
            add_handler("skip_postify");
        }
    }
   
    if((stristr($url, $places['index']) || stristr($url, $places['forum']) || stristr($url, $places['thread'])) && $options['forum_observer']){
        $user_id = iMEMBER ? $userdata['user_id'] : USER_IP;
        $forum_id = "";
        $thread_id = "";
        if(stristr($url, $places['index'])){
            $forum_id = 0;
            $thread_id = 0;
        }elseif(stristr($url, $places['forum']) && isset($_GET['forum_id']) && isnum($_GET['forum_id'])){
            $forum_id = $_GET['forum_id'];
            $thread_id = 0;
        }elseif(stristr($url, $places['thread']) && isset($_GET['thread_id']) && isnum($_GET['thread_id'])){
            list($forum_id) = dbarraynum(dbquery("SELECT forum_id FROM ".DB_THREADS." WHERE thread_id='".$_GET['thread_id']."'"));
            $thread_id = $_GET['thread_id'];
        }
        if(isnum($forum_id) && isnum($thread_id)){
            dbquery("REPLACE INTO ".DB_FORUM_OBSERVER2." SET user_id='$user_id', forum_id='$forum_id', thread_id='$thread_id', age='".time()."'");
        }
        dbquery("DELETE FROM ".DB_FORUM_OBSERVER2." WHERE age < (".time()."-5*60)");
       
        add_handler("forum_observer");
    }
}
?>
09. december 2012 - 22:38 #15
Jeg finder i linje 139 af den kode du viser denne sætning:

$where = $type == "threads" ? "tt.thread_author='$user_id' GROUP BY tt.thread_id" : "tp.post_author='".$user_id."'";

Der har du en where clause der indeholder tp.post_author, og det var det du fik fejlmelding over.  Jeg vil gætte på, at du oprindeligt havde kaldt tabellen DB_POSTS tp, og DB_POST har et felt post_author.  Jeg gætter videre, at du et eller andet sted har ændret fra DB_POST til DB_THREAD som du stadig kalder tp, men DB_THREAD har ikke noget felt post_author.  Hvis du retter fra DB_POST til DB_THREAD skulle du vel også rette fra post_author til thread_author.

Hvad angår den anden fejlmelding kan jeg ikke finde en linje i koden der synes at forårsage den.

Måske er vejen frem at gå tilbage til den oprindelige kode.  Overalt hvor du så retter fra DB_POSTS til DB_THREADS må du sørge for også at ændre felterne såsom fra post_author til thread_author og fra post_id til thread_id.
Avatar billede zidane5 Nybegynder
21. december 2012 - 23:51 #16
Hej. Ja okay. Jeg har foretaget de nødvendige ændringer, men jeg får nu fejlmeddelsen: Column 'thread_id' in field list is ambiguous

hvad kan dette skyldes?
22. december 2012 - 01:39 #17
Det skyldes sandsynligvis, at feltet thread_id forekommer i to eller flere af de tabeller du bruger i den query der giver fejlmeldingen.  Det løser man som regel ved at give tabellerne alias'er.  Hvis for eksempel thread_id er et felt i tabellen MyThread og man skal joine denne tabel med sig selv kan man bruge kode såsom SELECT a.tread_id, b.thread_id FROM MyThread a JOIN MyThread b on a.id = b.id.
Avatar billede zidane5 Nybegynder
22. december 2012 - 02:24 #18
hej.. Hmm, jeg kan ikke rigtig finde nogle steder, hvor den forekommer 2 steder i samme tabel.. Tror du det er nogen steder i nedenstående kode?

$rows_res = dbquery("SELECT thread_id FROM ".DB_THREADS." tp
INNER JOIN ".DB_FORUMS." tf ON tp.forum_id=tf.forum_id
INNER JOIN ".DB_THREADS." tt ON tp.thread_id=tt.thread_id
WHERE ".groupaccess('tf.forum_access')." AND tf.forum_id IN (26,27,28,29,30,31,32,33,34,35,36,37) AND $where
ORDER BY tt.thread_id DESC");
           
$result = dbquery("SELECT tp.forum_id, tp.thread_id, tp.thread_author, tp.post_solved, tf.forum_name, tf.forum_access, tt.thread_subject
FROM ".DB_THREADS." tp
INNER JOIN ".DB_FORUMS." tf ON tp.forum_id=tf.forum_id
INNER JOIN ".DB_THREADS." tt ON tp.thread_id=tt.thread_id
WHERE ".groupaccess('tf.forum_access')." AND tf.forum_id IN (26,27,28,29,30,31,32,33,34,35,36,37) AND $where
ORDER BY tt.thread_id DESC LIMIT ".$_GET['rowstart'].",10");
Avatar billede zidane5 Nybegynder
22. december 2012 - 02:26 #19
hm ja okay, men jeg har kigget koden igennem nu, og kan ikke finde hvor den skulle forekomme 2 steder. Kan du spotte det i nedenstående kode?

$rows_res = dbquery("SELECT thread_id FROM ".DB_THREADS." tp
INNER JOIN ".DB_FORUMS." tf ON tp.forum_id=tf.forum_id
INNER JOIN ".DB_THREADS." tt ON tp.thread_id=tt.thread_id
WHERE ".groupaccess('tf.forum_access')." AND tf.forum_id IN (26,27,28,29,30,31,32,33,34,35,36,37) AND $where
ORDER BY tt.thread_id DESC");
           
$result = dbquery("SELECT tp.forum_id, tp.thread_id, tp.thread_author, tp.post_solved, tf.forum_name, tf.forum_access, tt.thread_subject
FROM ".DB_THREADS." tp
INNER JOIN ".DB_FORUMS." tf ON tp.forum_id=tf.forum_id
INNER JOIN ".DB_THREADS." tt ON tp.thread_id=tt.thread_id
WHERE ".groupaccess('tf.forum_access')." AND tf.forum_id IN (26,27,28,29,30,31,32,33,34,35,36,37) AND $where
ORDER BY tt.thread_id DESC LIMIT ".$_GET['rowstart'].",10");
22. december 2012 - 09:10 #20
I din query bruger du DB_THREADS to gange, første gang med alias tp og anden gang med alias tt.  Når du så siger "SELECT thread_id ..." så ved systemet ikke om det skal være fra tp eller fra tt.  Jeg vil tro fejlmeldingen forsvinder, hvis du skriver "SELECT tp.thread_id ....."
Avatar billede zidane5 Nybegynder
22. december 2012 - 15:42 #21
Mange tak for hjælpen :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester