试图没有重复数据(MySQL,php)

时间:2013-07-26 18:20:27

标签: php mysql

首先,我是PHP和MySQL的新手。

我的目标是显示数据库中学生的证词。我意识到我的代码可能过于复杂,但任何帮助都是非常有用的。目前,它显示相同的结果。我认为这是因为我呼吁同样的事情。我非常困惑。请帮忙!!

<div class="block_main_testimonials">
    <h4>Student Corner</h4>
<?php   
// Connect to the file above here   
require "includes/connect.php";  

$data = mysql_query("SELECT * FROM `testimonials` ORDER BY RAND() LIMIT 0,1") 
or die(mysql_error()); 

$info = mysql_fetch_array( $data ) ; 

?>
                        <div class="one_half">
                            <div class="block_testimonials_2">
                                <div class="content">
                                    <div class="text">
                                        <p>“<?php echo $info['quote'] ;?>”</p>

                                        <div class="tail"></div>
                                    </div>

                                    <div class="author">
                                      <p><?php echo $info['name'] ; ?>,<span class="position"> <a href="/<?php echo $info['url']" echo $info['department']; ?</a></span></p></div>
                                </div>
                                <div class="clearboth"></div>
                            </div>
                        </div>

1 个答案:

答案 0 :(得分:0)

我不确定你想做什么,但你不想使用GROUP BY clause

  • 如果要选择所有条目,请使用:

    mysql_query("SELECT * FROM `testimonials`");
    
  • 如果您想选择一个随机条目,请使用:

    mysql_query("SELECT * FROM `testimonials` ORDER BY RAND() LIMIT 1");
    

    并摆脱while循环:

    $info = mysql_fetch_array($data);
    
  • 如果您想选择一定数量的随机条目,请使用:

    mysql_query("SELECT * FROM `testimonials` ORDER BY RAND() LIMIT 2");
    

    其中2是您想要回复的结果数。这将永远不会返回一行两次,除非您在数据库中存储了两次完全相同的行。

  • 如果您想以随机顺序选择所有条目,请使用:

    mysql_query("SELECT * FROM `testimonials` ORDER BY RAND()");
    

但是,如果您开始学习PHP,请don't use the mysql_* functions. Use mysqli or PDO instead.