すべてのカテゴリ » インターネット・パソコン » 技術・プログラミング

質問

終了

PHPを学習中なんですが検索画面において検索できないです。ソースはこの通りです。
<?php
try {
$pdo = new PDO('mysql:host=localhost;dbname=db;charset=utf8', 'xxxx', 'yyyy');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$search_col = array('firstname', 'lastname', 'gender','school', 'tel');
$where = array();
$data = array();

foreach ($search_col as $val) {
if (isset($_POST[$val])&&(is_string($_POST['$val']))) {
if (trim($_POST[$val]) === '') { continue; }
$where[] = sprintf('(%s like ?)', $val);
$data[] = '%' . addcslashes(trim($_POST[$val]), '\_%') . '%';
}
}
$sql = 'select * from touroku';
if (count($where) === 0) {
$stmt = $pdo->query($sql);
} else {
$stmt = $pdo->prepare($sqk . ' where ' . implode('and', $where));
$stmt->execute($data);
}
$output = '';
foreach ($stmt->fetchAll() as $row) {
$outpu .= sprintf('<tr><td>%s</td><td><img src="upload/%s"></td><td>%s%s</td><td>%s</td><td>%d/%d/%d</td><td>%s</td><td>%s</td><td>%s%s</td><td>%s</td></tr>' . PHP_EOL,
$row['id'], $row["image"], $row["firstname"], $row["lastname"], $row["gender"],
$row["year"], $row["month"], $row["day"], $row["Address"], $row["Tel"],
$row["school"], $row["college"], $row["specialtyl"]);
}
} catch (PDOException $e) {
$errmsg = $e->getMessage();
}

// if (isset($errmsg)) { // エラー処理 }

// if ($output === '') { // 対象データなしの処理 }

echo <<< EOT
<table border="1" width="90%" height="300">
<tr>
<td>id</td>
<td>画像</td>
<td>名前</td>
<td>性別</td>
<td>生年月日</td>
<td>メールアドレス</td>
<td>電話番号</td>
<td>最終学歴</td>
<td>特技</td>
</tr>
</table>
EOT;

?>

  • 質問者:ゆうたん
  • 質問日時:2017-06-22 20:03:05
  • 0

並び替え:

> $stmt = $pdo->prepare($sqk . ' where ' . implode('and', $where));

第一引数が「$sqk」になってるからではないでしょうか。
正しくは「$sql」かと思われます。

  • 回答者:トクメイ (質問から4日後)
  • 0
この回答の満足度
  

関連する質問・相談

Sooda!からのお知らせ

一覧を見る