jewlofthelotus / SlickQuiz-WordPress

SlickQuiz is a plugin for displaying and managing pretty, dynamic quizzes. It uses the SlickQuiz jQuery plugin.
http://wordpress.org/extend/plugins/slickquiz
Other
18 stars 19 forks source link

Shortcode to list all scores for a single user #69

Open jewlofthelotus opened 10 years ago

jewlofthelotus commented 10 years ago

http://wordpress.org/support/topic/saving-quiz-results-to-user-profiles

jewlofthelotus commented 10 years ago

From http://wordpress.org/support/topic/saving-quiz-results-to-user-profiles?replies=5#post-5833910

<?php
        global $wpdb;
        $current_user = wp_get_current_user();
        $displayName = $current_user->display_name;
    $results = $wpdb->get_results(
        "
        SELECT wp_plugin_slickquiz_scores.score, wp_plugin_slickquiz_scores.createdDate, wp_plugin_slickquiz.name
        FROM wp_plugin_slickquiz_scores
        INNER JOIN wp_plugin_slickquiz
        ON wp_plugin_slickquiz_scores.quiz_id=wp_plugin_slickquiz.id
        WHERE wp_plugin_slickquiz_scores.name = '" .mysql_real_escape_string($displayName). "'
        ORDER BY wp_plugin_slickquiz_scores.createdDate desc;
        "
    );
?>
<?php if ( $results > 0 ) : ?>
<div class="quiz-results">
<h2 class="heading-border margin-top-big">Latest Quiz Results</h2>
<ul class="row unstyled-list">
    <?php
        $i = 0;
        foreach ( $results as $result )
        if ($i < 3)
        {
            $i +=1;
            $quizName = $result->name;
            $quizScore = $result->score;
            $createdDate = $result->createdDate;
            ?>
            <li class="col col-4">
                <div>
                    <h4 class="quiz-name">
                        <?php echo $quizName ?>
                    </h4>
                    <div class="quiz-date">
                        <?php echo date('j-n-Y', strtotime($createdDate)); ?>
                    </div>
                    <div class="quiz-score">
                        <?php echo $quizScore ?>
                    </div>
                </div>
            </li>
            <?php
        }
    ?>
    <div class="clear"></div>
</ul>
</div>
<?php endif; ?>
gmatta01 commented 6 years ago

Replace mysql_real_escape_string with mysqli_real_escape_string. Also checking with current user email is much effective then display name.