2017-03-06 11 views
0

に空のMySQLのクエリが表示されませんでしたデータを返しますが、それは動作しません...それはそれは0は私が機能を持っているPHP

+2

$ dbとは何ですか? 'query'メソッド呼び出しの結果ではなく、関数からのクエリ結果を返すことをお勧めします。おそらく、ある種のDB接続オブジェクトを返すでしょう。これがPDOオブジェクトの場合は、クエリ自体の後に 'fetch()'または 'fetchAll()'を使う必要があります。 – WillardSolutions

+1

私はここで少し混乱する( ')の使用を見つける。 – Strawberry

+0

あなたのコードにmysql_fetch_arrayまたはmysql_fetch_assocが含まれていますか? – sukalogika

答えて

0

FWIWを返す場合でも示して、私はこれを簡単に読むことを見つける - しかしバウンドのクエリについて見...

" 
SELECT j.* 
    , ngo.title ngo_title 
    , ngo.money ngo_money 
    , ngo.time ngo_time 
    , ngo.love ngo_love 
    , ngo.rating ngo_rating 
    , ngo.logo ngo_logo 
    FROM in_the_field_jobs j 
    JOIN ngo 
    ON ngo.ngo_id = j.ngo_id 
WHERE j.ngo_id = $ngo_id; 
" 
0
$con = mysqli_connect("localhost", "user", "password", "database"); 

$result = mysqli_query($con, "SELECT * FROM table_name"); 
$num_rows = mysqli_num_rows($result); 

if ($num_rows == 0) { 
0

使用している文字列はJSONのように見えますが、有効であるとチェックアウトしません。これは、すべての文字列であるフォーマットである場合JSONLint.com ...(1回線)、それが有効にするために、それを編集...

{"room": [{"single_room": 1, "twin_room": 3}], "total_amount": [{"amount": 20899}], "travelernum": [{"total": 1 }]} 

OR(マルチライン)...

{ 
    "room": [{ 
     "single_room": 1, 
     "twin_room": 3 
    }], 
    "total_amount": [{ 
     "amount": 20899 
    }], 
    "travelernum": [{ 
     "total": 1 
    }] 
} 

を参照してください。あなたの文字列が有効なJSON形式になると、あなたが使用して最初の...

$original_string = '{"room":[{"single_room":1,"twin_room":3}]}{"total_amount":[{"amount":20899}]}{"travelernum":[{"total":1}]}'; 
$new_string = str_replace("}{", ",", $original_string); // replace }{ with , 

で有効なJSONにそれらを操作することができ、中に、かなりシンプルなので、このようなものを使用し、PHPの配列に変換する...

$BookingDetail = json_decode($new_string, true); //true param gets assoc array 

上記のコードをすべてテストしたところ、JSON文字列をPHP配列に変換する方法の詳細については、PHPのjson_decode()関数リファレンスを参照してください。
http://php.net/manual/en/function.json-decode.php

0

これは、呼び出されたクエリ関数に依存します。 このコードを見ると、言うことは難しいです。カスタムDBクラスまたはその他のライブラリにすることができます。 PDO以外のものであれば、ここでどのlibが使用されているかを知ることが重要です。

PDOクエリの場合、文が動作しない場合はFALSEを返します。 - > on mysql Errorです。空の場合は、PDO-Statementオブジェクトを返します。これは "空"ではありません。単にデータがありません。

http://php.net/manual/de/pdo.query.php

PDO :: query()はPDOStatementオブジェクトを返し、失敗した場合にFALSE。

// built statement 
$stmt = $db->query('SELECT `in_the_field_jobs`.*, `ngo`.`title` AS `ngo_title`, `ngo`.`money` AS `ngo_money`, `ngo`.`time` AS `ngo_time`, `ngo`.`love` AS `ngo_love`, `ngo`.`rating` AS `ngo_rating`, `ngo`.`logo` AS `ngo_logo` 
       FROM `in_the_field_jobs` 
       INNER JOIN `ngo` 
       ON (`ngo`.`ngo_id` = `in_the_field_jobs`.`ngo_id`) 
       WHERE `in_the_field_jobs`.`ngo_id` = ' . (int)$ngo_id); 
// return the array 
return $stmt->fetchAll(PDO::FETCH_ASSOC); 

トリックを行う必要があります。

関連する問題