2017-06-29 12 views
1
<?php 
$successreturn[]=array(
        "id"=>"any", 
        "firstname"=>"any", 
        "lastname"=>"any", 
        "dateofbirth"=>"any", 
        "city"=>"any", 
        "gender"=>"any" 
       ); 
header("Access-Control-Allow-Origin: *"); 
$servername="localhost"; 
$username="root"; 
$password="sandeepchetikam"; 
$dbase="mydb"; 

$conn=mysqli_connect($servername,$username,$password,$dbase); 
if (!$conn) { 
    echo "Connection Problem".mysqli_connect_error($conn); 
} 

$sql= "SELECT * FROM Employees"; 
$result = mysqli_query($conn,$sql); 
$count = mysqli_num_rows($result); 
$value=0; 

if(!$result){ 
    echo "Connection Failed " .mysqli_connect_error($result); 
} 

while($row = mysqli_fetch_assoc($result)){ 

    $successreturn[$value]['id']   =$row['id']; 
    $successreturn[$value]['firstname']  =$row['firstname']; 
    $successreturn[$value]['lastname']  =$row['lastname']; 
    $successreturn[$value]['dateofbirth'] =$row['dateofbirth']; 
    $successreturn[$value]['city']   =$row['city']; 
    $successreturn[$value]['gender']  =$row['gender']; 
    $value++; 
}; 
echo json_encode($successreturn); 
?> 

出力:値「任意の」行がSQLテーブルに存在しない

[{"id":"any","firstname":"any","lastname":"any","dateofbirth":"any","city":"any","gender":"any"}] 

私は私の角度サービスにJSONの値を返すようにしようとしています。しかし、テーブルに行がなくなったとき。それはColomnの値を "any"として返します。 それはなぜそれのようなものですか?値を持たない空の行を返すにはどうすればよいですか?何の行が選択されていない場合は

答えて

0

あなたはプログラムが今空の値の代わりに、 `any`を含む配列を含む配列を返す異なっ

<?php 

header("Access-Control-Allow-Origin: *"); 
$servername="localhost"; 
$username="root"; 
$password="sandeepchetikam"; 
$dbase="mydb"; 

$conn=mysqli_connect($servername,$username,$password,$dbase); 
if (!$conn) { 
    echo "Connection Problem".mysqli_connect_error($conn); 
} 

// first only select what you want to use from the row 
$sql= "SELECT `id`,`firstname`,`lastname`, 
       `dateofbirth`,`city`,`gender` 
     FROM Employees"; 

$result = mysqli_query($conn,$sql); 
if(!$result){ 
    // you only use `mysqli_connect_error` to get connection errors 
    // use mysqli_error($result) for normal query errors 
    echo "Query failed " . mysqli_error($result); 
    echo json_encode(array('error'=>'Query failed')); 
    exit; 
} 

if (mysqli_num_rows($result) > 0) { 
    while($row = mysqli_fetch_assoc($result)){ 
     // now as you only have what you want in your assoc array 
     $rows[] = $row; 
    } 
    echo json_encode($rows); 
} else { 
    // no data returned from query 
    // return something so the calling code knows what to do 
    echo json_encode(array('error'=>'No data in table')); 
} 
?> 
+0

その働き。ありがとう。 :) – Prakash

0

その後、whileループがexecuttingされておらず、初期の$ successreturn配列は値で返している何の行は、その後

を選択していない場合は、「任意の」は値を返さないようにちょうどこの

$successreturn[]=array(
     "id"=>"any", 
     "firstname"=>"any", 
     "lastname"=>"any", 
    "dateofbirth"=>"any", 
    "city"=>"any", 
    "gender"=>"any"); 
を変更

$successreturn[]=array(
     "id"=>"", 
     "firstname"=>"", 
     "lastname"=>"", 
    "dateofbirth"=>"", 
    "city"=>"", 
    "gender"=>""); 

編集するには: -

$successreturn=[]; 

また、値が空であるかどうかを確認して表示しないと、データが表示されない場合は表示します。 私はそれがあなたを助ける事をします。

+0

もちろんこの意志は少し流れを制御する必要があります。 OPが欲しいものではないかもしれない – RiggsFolly

+0

データがないときに値を返さない場合はどうすればいいですか? – Prakash

+0

空の配列またはfalseを返すことができます。 –

関連する問題