2016-10-07 13 views
-1

現在のカテゴリが製品のカテゴリと等しい項目のリストを取得しようとしていますが、以下のコードを試してみると、アイテムのカテゴリが現在のカテゴリ名にPDOは何も返されません。

$category_name = $_GET['category']; 
    $category_products = $DB_con->prepare("SELECT * FROM products WHERE product_category = :category_name"); 
    $category_products->bindParam(":category_name",$category_name,PDO::PARAM_STR); 
    $category_products->execute(); 
    $row = $category_products->fetchAll(PDO::FETCH_ASSOC); 
    var_dump($row); 
+0

を 'のvar_dump($行)にあるもの;' ?カテゴリ文字列ですか?なぜなら、ifは整数、すなわち '1'、' 2'などです。これは間違っています。 'PDO :: PARAM_STR' –

+0

var_dump($ row)はarray(0){}を返します。$ category_nameはカテゴリ名の実際の文字列です – Aaranihlus

+0

名前を確認して、 'var_dump($ category_name);' – nospor

答えて

1

に等しいあなたは少し違っ下記軽くコメントスニペットのようにそれをやってみてください示しています。

<?php 

    // SANITIZE DATA FROM THE $_GET GLOBAL A BIT... 
    $category_name  = isset($_GET['category']) ? htmlspecialchars(trim($_GET['category'])): null; 
    $row    = null; 

    // CHECK THAT $category_name EXISTS FIRST.... 
    if($category_name) { 
     $parameters   = array("category_name" => $category_name); 
     $category_products = $DB_con->prepare("SELECT * FROM products WHERE product_category = :category_name"); 

     // YOU MAY TRY PASSING THE NAMED PARAMETERS DIRECTLY AS AN ARRAY TO THE execute METHOD: 
     $category_products->execute($parameters); 
     $row    = $category_products->fetchAll(PDO::FETCH_ASSOC); 
    } 
    var_dump($row); 
関連する問題