如果否则不在PHP的商店程序中工作

时间:2017-03-22 11:43:22

标签: php mysql sql stored-procedures

我的商店程序中有一些问题只有第一个条件正常,否则部分不起作用,请帮我解决这个问题

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){

   }

1 个答案:

答案 0 :(得分:1)

如果ELSE正在运作。

但是程序参数p_id存在问题。您正在使用另一个会话变量@p_id