私がやろうとしているのは、SQL クエリに基づいて変数を割り当てることです。フィールド「郡」は、郡の名前を含む varchar です。
$sql="SELECT County from GAINLP WHERE SpeciesName LIKE '%Actias_luna%'";
($result=mysqli_query($connect,$sql));
$row=mysqli_fetch_array($result,MYSQLI_ASSOC);
if (in_array("Porter", $row)) {
$Porter='Present';
}
else {$Porter='Not Present';
};
echo $Porter;
何が起こるかというと、in_array は配列内の最初の郡のみを検出するということです。$row をエコーすると、次のようになります。
オーウェンパイクパークオーウェンオーウェンスコットモーガングリーンヘンドリックスローレンスセントジョセフワシントンビーゴモーガンオーウェンデュボアジェファーソンスイスマディソングリーンファイエットマリオンオレンジパーククラークジェファーソンファイエットファウンテンモンゴメリーヘンドリックスハワードオーウェンエルクハートマリオンヘンドリックスワシントンティペカヌーパトナムワシントンブラウンヘンドリックスジェニングスオーウェンヘンドリックスヘンドリックスポーマリオンコーウィットレイ
針を「Owen」として割り当てると、echo $Porter は「Present」を返します。他のすべての値は「存在しません」と表示されます。ループすると、"Owen" でも $Porter に "Not Present" が返されます。ここで何が間違っていますか?
これも機能しません:
$sql="SELECT County from GAINLP WHERE SpeciesName LIKE '%Actias_luna%'";
($result=mysqli_query($connect,$sql));
while ($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) {
if (in_array("Porter", $row)) {
$Porter='Found it';
}
else {$Porter='Didn\'t Find it';
}};
echo $Porter;