2016-04-08 16 views
2

私は非常に基本的なAPIを構築しようとしていますが、MySQLビューからデータを取得するクエリがあります。私はAPIスクリプトから呼び出すことができるようにするために関数にクエリを入れたいです...私はちょうど関数にコードを入れていくつかの問題を抱えています。ここでphp MySQLをjsonに入れよう - クエリを関数に入れようとしている

作品ODEは.....

<?php 
$servername = "database.com"; 
$username = "username"; 
$password = "password"; 
$dbname = "db1"; 

// Create connection 
$conn = new mysqli($servername, $username, $password,   $dbname); 
// Check connection 
if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 

$sql = "SELECT * from DB_Available_Dates"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
// output data of each row 
while($row = $result->fetch_assoc()) { 
    echo $row["year"]. " - " . $row["Month"]. " " . $row["the_days"]. "<br>"; 
} 
} else { 
echo "0 results"; 
} 


$conn->close(); 
?> 

だ...とこれは機能にそれを置くために私の試みである(動作しません!)...

//Connection as above 
function available_dates() { 
$sql = "SELECT * from DB_Available_Dates"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
// output data of each row 

$encodeArray = array(); 

while($row = $result->fetch_assoc()) { 
    $encodeArray[] = $row; 
} 
} else { 
echo "0 results"; 
} 
$dates = array(); 
$dates = json_encode($encodeArray); 
return $dates; 
} 

available_dates(); 

$conn->close(); 
?> 

私は関数を使い始めたばかりなので、私のエラーはかなりコミカルであると思います! ... echoを使用して関数を呼び出す必要がありますか?

答えて

0

あなたはあなたのコード内の配列を返すしていますあるいは、最初の例のようにして、出力をエコーバックして表示用に準備することもできます)。

while($row = $result->fetch_assoc()) { 
    $encodeArray[] = $row["year"]. " - " . $row["Month"]. " " . row["the_days"].<br>"; 
} 

、次いで

echo json_encode($encodeArray); 
+0

ですから、戻り値は 'return json_encode($ encodeArray);' ? – dazzathedrummer

+0

最初の例のように結果を直接呼び出す場合はエコーです。 しかし、関数を呼び出す場合は、$ encodeArrayを返すべきです。 jQueryに戻ってきたら、echo json_encode(available_dates()) – starex

+0

それは理にかなっています! – dazzathedrummer

1

あなたの関数の戻り値は何もしていません。

これをエコーし​​たり、変数に入れることができます。

echo available_dates(); 

または

print_r(available_dates()); 

または

$results = available_dates(); 
+0

'ますprint_r(available_dates());'、ブラケットを逃しました。 – spudmonkee

1

あなたは何を返すされていないこのようなあなたの関数を呼び出す必要があり、あなたには、いくつかのthing.Youに戻り値を割り当てる必要があります。

echo json_encode($encodeArray); 

そして、(表示/フォーマットの世話をする:あなたはこのようjson_encodeをエコー単純にする必要があり

$dates = array(); 
$dates = json_encode($encodeArray); 
return $dates; 

function available_dates() { 
$sql = "SELECT * from DB_Available_Dates"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
// output data of each row 

$encodeArray = array(); 

while($row = $result->fetch_assoc()) { 
    $encodeArray[] = $row; 
} 
} else { 
echo "0 results"; 
} 
$dates = array(); 
$dates = json_encode($encodeArray); 
return $dates; 
} 

$result=available_dates(); 
関連する問題