如何显示从MySQL数据库中获取的随机文本和图像?

时间:2013-12-04 05:58:27

标签: javascript php html mysql random

我目前正致力于创建一个页面,该页面将显示编译到MySQL数据库中的随机图像和文本。到目前为止,我有这个:

<?php 

     //This is the directory where images will be saved 
     $target = "images/"; 
     $target = $target . basename( $_FILES['photo']['name']); 

     //This gets all the other information from the form 
     $name=$_POST['name'];  
     $pic=($_FILES['photo']['name']); 

     // Connects to your Database 
     mysql_connect("mysite.com", "username", "password") or die(mysql_error()) ; 
     mysql_select_db("db_name") or die(mysql_error()) ; 

     //Writes the information to the database 
     mysql_query("INSERT INTO `employees` VALUES ('$name', '$pic')") ; 

     //Writes the photo to the server 
     if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) 
     { 

     //Tells you if its all ok 
     echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory"; 
     } 
     else { 

     //Gives and error if its not 
     echo "Sorry, there was a problem uploading your file."; 
     } 
     ?>

表单可以正常工作,并将图片提交到MySQL数据库,为我提供图片和文本。

为每个变量使用VARCHAR(30)。

我想知道如何创建一个显示随机文本和来自此数据库的随机图像的HTML / PHP页面。

请告诉我你是否可以提供帮助!

5 个答案:

答案 0 :(得分:1)

只需使用这个简单的代码:

<?php

  $qry = mysql_query("SELECT * FROM employees ORDER BY RAND() LIMIT 1");

  while($rand = mysql_fetch_assoc($qry)){
    echo $rand['name'];
    echo $rand['pic'];
  }

?>

希望它有所帮助!

答案 1 :(得分:0)

首先,你的意思是随机的,你的意思是数据库中的任何一个图像吗?

此外,如果您可以提供有关如何将图像作为blob或其他内容存储在数据库中的一些信息,这可能有助于为您提供更好的答案。

答案 2 :(得分:0)

你可以使用rand();

SELECT * FROM employees
ORDER BY RAND()
LIMIT 1

use php to proces this query

希望此查询可以帮助您

答案 3 :(得分:0)

解决方案1:

SELECT * FROM table ORDER BY RAND()LIMIT 0,1;

 Solution 2:
 $offset_result = mysql_query( " SELECT FLOOR(RAND() * COUNT(*)) AS `offset` FROM `table` ");
 $offset_row = mysql_fetch_object( $offset_result ); 
 $offset = $offset_row->offset;
 $result = mysql_query( " SELECT * FROM `table` LIMIT $offset, 1 " );

希望这有帮助。

答案 4 :(得分:0)

您可以在查询中使用Order by Rand,但这对性能非常不利!

另一种选择是在您的表格中添加一个ID字段(如果您还没有),并将其设置为Primary KeyAuto Incrament,这样您的列就会显示为{{1} - 无论如何,这是一种标准做法。

然后:

id | name | pic

其他方面(所以你没有从表中获取所有数据)。

$result = mysql_query("SELECT * FROM employees");

$count = mysql_num_rows($result);
$data = array();
while ($row = mysql_fetch_assoc($result)) {
     $data[] = $row;
} 

$rand - rand(0, $count);
$imageData = $data[$rand];
//This would give you a random entry

希望这有帮助!