![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
検索フォームを作ろうとしている初心者です。
<?php
foreach($rows as $row){ ←この行でエラーが発生しました。
?>
<tr>
<td><?=htmlspecialchars($row['Manufacturer'],ENT_QUOTES,'UTF-8')?></td>
<td><?=htmlspecialchars($row['name'],ENT_QUOTES,'UTF-8')?></td>
<td><?=htmlspecialchars($row['Model year'],ENT_QUOTES,'UTF-8')?></td>
<td><?=htmlspecialchars($row['Model'],ENT_QUOTES,'UTF-8')?></td>
<td bgcolor = "ffff00"><?=htmlspecialchars($row['right'],ENT_QUOTES,'UTF-8')?></td>
<td bgcolor = "ffff00"><?=htmlspecialchars($row['left'],ENT_QUOTES,'UTF-8')?></td>
<td bgcolor = "ffff00"><?=htmlspecialchars($row['Rear'],ENT_QUOTES,'UTF-8')?></td>
<td><?=htmlspecialchars($row['備考'],ENT_QUOTES,'UTF-8')?></td>
</tr>
<?php
}
?>
エラー内容がこちら
Warning: Undefined variable $rows in C:\xampp\htdocs\teihoku01\pdo_search.php on line 85
Warning: foreach() argument must be of type array|object, null given in C:\xampp\htdocs\teihoku01\pdo_search.php on line 85
どんな原因なのでしょうか…
No.7ベストアンサー
- 回答日時:
定義されていない変数エラーは、
当然ながら定義処理が抜けているから発生します。
if や for や while 文のブロック中で変数定義している場合、
条件によってはブロック内が実行されないので、
エラーが発生する可能性が常に付きまといます。
事前に変数を初期化する定義を加えるか、
$x = array();
if (...) { $x[] = 42; }
foreach ($x as $i) { ...
変数が定義されているかの判定を加えましょう
if (...) { $x[] = 42; }
if (isset($x)) foreach ($x as $i) { ...
回答ありがとうございます!
>事前に変数を初期化する定義を加えるか、
$x = array();
if (...) { $x[] = 42; }
foreach ($x as $i) { ...
変数が定義されているかの判定を加えましょう
if (...) { $x[] = 42; }
if (isset($x)) foreach ($x as $i) { ...
この文の意味を理解した上で参考にさせていただきます。
頑張ってみます!ありがとうございました!
No.4
- 回答日時:
前段の処理で、クエリが間違っていたり、そもそも処理が間違っていたりして、$rowsに値を代入している箇所で、正しく値を代入できていないんでしょうね。
回答ありがとうございます。
$dbh = new PDO($dsn, $user, $password);
$statement = $dbh->prepare("SELECT * FROM wiper_s WHERE Manufacturer LIKE (:Manufacturer_1) ");
if($statement){
$Manufacturer = $_POST['Manufacturer_1'];
$like_Manufacturer = "%".$Manufacturer."%";
//プレースホルダへ実際の値を設定する
$statement->bindValue(':Manufacturer_1', $like_Manufacturer, PDO::PARAM_STR);
$errors = array();
if($statement->execute()){
//レコード件数取得
$row_count = $statement->rowCount();
while($row = $statement->fetch()){
$rows[] = $row; ←ここですか??
}
}else{
$errors['error'] = "検索失敗しました。";
}
No.2
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- 工学 【制御工学】単位ステップ応答の遅れ時間の求め方(令和2年度の機械設計技術者試験(制御工学)の問題) 3 2022/11/02 10:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHP8を使うと、大量のWarningが...
-
xamppをインストールしましたが
-
ローカルで動いているPHPがタイ...
-
クラス
-
PHPで特定のURLにジャンプす...
-
functionについて
-
phpからパスワードを入れ、MySQ...
-
エラーメッセージの意味と解決...
-
sql文について質問です。エラー...
-
ローカルでは正常に動くのにサ...
-
フォントの色を変えるには?
-
正規表現での最後尾のバックス...
-
phpについて バージョン8.0
-
ワードプレスについて
-
phpのfopenで行単位のfseekは出...
-
【BAT(バッチ)ファイル】Web...
-
onedrive にexcelファイルをア...
-
文字化けに関して
-
ヒアドキュメントを中断してinc...
-
文字化けについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォントの色を変えるには?
-
パースエラーとは?
-
トランザクションが原因?DBに...
-
PHP8を使うと、大量のWarningが...
-
「@$変数」の「@の意味は?」
-
PHPで、エラーがない場合のみ画...
-
SELECTの値を保持する
-
PHPでfatal errorが出ても無視...
-
正規表現での最後尾のバックス...
-
PHPで特定のURLにジャンプす...
-
PHPでネットワークドライブのop...
-
これは例外処理でしょうか?
-
ワードプレスサイト PHP8.0.25...
-
PHPにて外部サイト内容が取得不...
-
メールアドレスが存在するか確...
-
phpのrenameでエラーが出ます
-
Localeクラスについて
-
urlの直接入力を防ぐには
-
phpでget_headers()が使えない?
-
bindValueエラー
おすすめ情報
//レコード件数取得
$row_count = $statement->rowCount();
while($row = $statement->fetch()){
$rows[] = $row; ←これが間違ってますか?
}
}else{
$errors['error'] = "検索失敗しました。";
}
//データベース接続切断
$dbh = null;
}
}catch (PDOException $e){
print('error:'.$e->getMessage());
$errors['error'] = "データベース接続失敗しました。";
}
?>
くんこばさん、naktakさん、Ogre7077さん、
回答をいただき大変ありがとうございました!親身になって教えていただき感謝しております。
すべての方をベストアンサーにしたいのですが、くんこばさん、naktakさんの助言とOgre7077さんの解説文を参考にし勉強させていただきます。
ありがとうございました。