我目前正致力于创建一个页面,该页面将显示编译到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页面。
请告诉我你是否可以提供帮助!
答案 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 Key
和Auto 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
希望这有帮助!