如何检索多行数据?

时间:2015-12-16 02:48:19

标签: php mysql

如何检索多行数据?目前我只能检索一行数据,但我想检索多行数据。

我想检索用户在数据库中拥有的优惠券。例如,用户的“名称”是标记,我想检索“名称”列标记的每一行。

// check for post data
 if (isset($_GET["name"])) {
 $name = $_GET['name'];

$result = mysql_query("SELECT * FROM coupons WHERE name = '$name'");

if (!empty($result)) {
    // check for empty result
    if (mysql_num_rows($result) > 0) {

        $result = mysql_fetch_array($result);

        $coupons = array();
        $coupons["couponcreated"] = $result["couponcreated"];
        $coupons["couponexpires"] = $result["couponexpires"];
        $coupons["coupondetails"] = $result["coupondetails"];
        // success
        $response["success"] = 1;

        // user node
        $response["coupons"] = array();

        array_push($response["coupons"], $coupons);

        // echoing JSON response
        echo json_encode($response);

1 个答案:

答案 0 :(得分:2)

// check for post data
 if (isset($_GET["name"])) {
 $name = $_GET['name'];

$queryResult = mysql_query("SELECT * FROM coupons WHERE name = '$name'");

if (!empty($result)) {
    // check for empty result
    if (mysql_num_rows($result) > 0) {

        $result = array();
        while($row = mysql_fetch_array($queryResult)){
           array_push($row, $result);
        }


        //Now result array has all the rows!

        $coupons = array();
        $coupons["couponcreated"] = $result["couponcreated"];
        $coupons["couponexpires"] = $result["couponexpires"];
        $coupons["coupondetails"] = $result["coupondetails"];
        // success
        $response["success"] = 1;

        // user node
        $response["coupons"] = array();

        array_push($response["coupons"], $coupons);

        // echoing JSON response
        echo json_encode($response);

此外,您必须保护您的$name变量并清除其中的任何顽皮字符串,以便没有人可以通过SQL注入攻击窃取您的SQL数据或注入数据。

这是一个例子,虽然它并不完美:

$name = htmlspecialchars($name);

使用str_replace或您知道的任何字符串操作函数从$name过滤任何SQL命令。