我的阵列有多个类别,如生日,婚礼等。我想随机选择4个类别等于生日的项目。并回应那些值
class Cake {
//properties:database connection and table name
private $conn;
private $table_name ='cakes';
//object properties: one for each field in our table
public $id;
public $name;
public $category;
public $price;
public $description;
public $thumb;
public $large;
public function __construct($db){
//bring in the connection info, store it in this object's $conn property
$this->conn = $db;
}
/**
* the readAll method gets all existing row data
* @return all the retrieved row data
**/
//if no public or private auto public
function readAll(){
$cols = array('id', 'name', 'category', 'price');
//create a SQL query and run it, storing the data in a var $stmt
$stmt = $this->conn->prepare('SELECT id, name, category, description, price, thumb, large FROM '.$this->table_name.' ORDER BY RAND() LIMIT 4'); //this needs to be one or it will be multiple colls
//run the query, getting the data and stuffing into $stmt
$stmt->execute();
//send info back to where readAll() was called
return $stmt;
}//end readAll();
function readWed(){
$cols = array('id', 'name', 'category', 'price');
//create a SQL query and run it, storing the data in a var $stmt
$stmt = $this->conn->prepare('SELECT id, name, category, description, price, thumb, large FROM '.$this->table_name.' WHERE category = Birthday ORDER BY RAND() LIMIT 4');
$stmt->execute();
//send info back to where readWed() was called
return $stmt;
}//end readWed();
这里是我试图输出值,读取所有作品,但没有使用where子句。错误报告也不会输出。
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
include_once('config/spc_database.php');
include_once('object/cake.php');
$database = new Database();
$conn=$database->getConnection();
$cake = new Cake($conn);
$stmt = $cake->readWed();
?>
<div class="left-img">
<?php while($row = $stmt->fetch(PDO::FETCH_ASSOC)){ ?>
<div class="element hvr-grow">
<?php echo "HELLOS"; ?>
<a href="description.php?detailsid=<?php echo $row['id'];?>">
<img class="imgurmob" src="img/
<?php echo $row['category']; ?>/<?php echo $row['thumb']; ?>" alt="img-sub-category">
</a>
</div>
<?php } ?>
答案 0 :(得分:3)
在您的where子句Query中使用字符串值Birthday
,因此您必须在引号内使用此值:
"SELECT id, name, category, description, price, thumb, large FROM ".$this->table_name." WHERE category = 'Birthday' ORDER BY RAND() LIMIT 4"
您的代码示例:
$stmt = $this->conn->prepare("
SELECT id, name, category, description, price, thumb, large
FROM ".$this->table_name."
WHERE category = 'Birthday'
ORDER BY RAND()
LIMIT 4");