mysql dbからデータを取得するPHPスクリプトがあります。 すべて問題なく動作しますが、私の問題はこの$result = $dao->joinedEvents($userId);
が数値の配列を返し、これを実行することです。すべてのIDとこのスクリプトでID番号が$secondResult = $dao->joinedEventsInfo($receivedIds);
になりました。すべての要素に対してPHPアクションを実行します。
これは私のPHPスクリプトの一部です:
$userId = htmlentities($_REQUEST["userId"]);
$result = $dao->joinedEvents($userId); //This is getting the IDs array
if(!empty($result)) {
$receivedIds = $result["event_id"];
$ids = explode(",", $receivedIds);
foreach($ids as $id){
$secondResult = $dao->joinedEventsInfo($id);
if(!empty($secondResult)) {
$returnValue["finalResult"][] = $secondResult;
} else {
$returnValue["status"] = "error";
$returnValue["message"][] = "Could not find records for id" . $id;
}
}
} else {
$returnValue["status"] = "Empty error";
$returnValue["message"] = "Could not find records";
}
$dao->closeConnection();
echo json_encode($returnValue);
そして、これがjoinedEventsスクリプトです:
public function joinedEvents($userId){
$returnValue = array();
$sql = "SELECT event_id from MyTable WHERE userId= '$userId' LIMIT 0 , 30";
$statement = $this->conn->prepare($sql);
if (!$statement)
throw new Exception($statement->error);
$statement->execute();
$result = $statement->get_result();
while ($myrow = $result->fetch_assoc())
{
$returnValue[] = $myrow;
}
return $returnValue;
}
これはjoinedEventsInfoスクリプトです:
public function joinedEventsInfo($eventId){
$returnValue = array();
$sql = "SELECT * FROM Events WHERE eventId = '$eventId' LIMIT 0 , 30";
$statement = $this->conn->prepare($sql);
if (!$statement)
throw new Exception($statement->error);
$statement->execute();
$result = $statement->get_result();
while ($myrow = $result->fetch_assoc())
{
$returnValue[] = $myrow;
}
return $returnValue;
}
編集:ター理由私には2つのテーブルがあるということが必要です。最初のものにはIDだけがあり、2番目には情報があります。最初にIDを取得する必要があるので、今受信したすべてのIDのデータを取得する必要があります。
ありがとう、私は完全に固執しています。
この '$ receivedIds'がであるどのような形式では? 'var_dump($ receivedIds);'を実行して、何が表示されているか教えてください。 –
申し訳ありませんが、私は今PC上にいませんが、このような配列を返すと思います: "1,2,3,6" –
* hmm *。あなたのコメントと公正な前提に基づいて、私は以下の答えを掲示しました。うまくいけば、これで問題は解決します。 –