我的商店程序中有一些问题只有第一个条件正常,否则部分不起作用,请帮我解决这个问题
DELIMITER $$
USE `arvind_panel`$$
DROP PROCEDURE IF EXISTS `enquiry_data`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `enquiry_data`(IN `p_id` INT(11), IN `e_id` INT(11))
BEGIN
IF @p_id IS NULL THEN
SELECT * FROM enquiry WHERE id = e_id;
ELSE
SELECT * FROM enquiry WHERE parent = p_id ORDER BY enq_date;
END IF;
END$$
DELIMITER ;
这里是我调用此过程的php代码
<?php
class data{
public static function enquiry_data($parent,$e_id){
global $db;
$sql = "CALL enquiry_data(:p_id,:e_id)";
$stmt = $db->prepare($sql);
$stmt->bindValue(':p_id', intval($parent), PDO::PARAM_INT);
$stmt->bindValue(':e_id', intval($e_id), PDO::PARAM_INT);
$stmt->execute();
$result = $stmt->fetchAll();
return $result;
}}
$data = new data();
global $data;
$result = $data::enquiry_data($_SESSION["id"],null);
var_dump($result);
foreach ($result as $row)
{ $id = $row["id"];?>
<tr>
<td><a href="<?php echo 'enquiry_form.php?id='.$id;?>"><?php echo $row["name"];?></a></td>
<td><?php echo $row["email"];?></td>
<td><?php echo $row["mobile"];?></td>
<td><?php echo $row["product_name"];?></td>
<td><?php echo $row["enq_date"];?></td>
<td><?php echo $row["address"];?></td>
</tr>
<?php } ?>
但这部分正在运作
$result = $data::enquiry_data(null,4);
foreach ($result as $row){
}
答案 0 :(得分:1)
如果ELSE正在运作。
但是程序参数p_id
存在问题。您正在使用另一个会话变量@p_id
。