1

私はPHPmySQLを初めて使用するので、気楽に行ってください。1つのページにテーマパークのリストを作成しています。テーマパークの1つをクリックすると、新しいページにそのパークに関する情報が読み込まれます。テーマパークIDをあるページから次のページに渡すのが難しく、何が間違っているのか理解できません。助けてください。

リストページのコード:

    <?php

try
{
$pdo = new PDO('mysql:host=localhost;dbname=danville_tpf', 'username',
'password');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec('SET NAMES "utf8"');
}
catch (PDOException $e)
{
$output = 'Unable to connect to the database server.';
include 'output.html.php';
exit();
}


$output = 'Theme Park Database initialized';
include 'output.html.php';

try
{
$sql = 'SELECT park_id, name, town, state, country
FROM tpf_parks ORDER BY name ASC';
$result = $pdo->query($sql);
}
catch (PDOException $e)
{
$error = 'Error fetching parks: ' . $e->getMessage();
include 'error.html.php';
exit();
}

$output = 'Parks Loaded';
include 'output.html.php';

foreach ($result as $row)
{
$parklist[] = array(
'park_id' => $row['park_id'],
'name' => $row['name'],
'town' => $row['town'],
'state' => $row['state'],
'country' => $row['country']

);
}
include 'parks.html.php';

parks.html.phpは次のとおりです。

 <?php foreach ($parklist as $park): ?>


<a href="paging.php?park_id=<?php echo $park['park_id'];?>">

<h2><?php echo $park['name']; ?></h2>

<h3><?php echo $park['town'] , ', ', $park['state'] , ', ', $park['country']      ; ?></h3>

<hr>

</a>

<?php endforeach; ?>

詳細を読み込むコンテンツページは次のとおりです。

<?php

try
{
$pdo = new PDO('mysql:host=localhost;dbname=danville_tpf', 'username',
'pasword');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec('SET NAMES "utf8"');
}
catch (PDOException $e)
{
$output = 'Unable to connect to the database server.';
include 'output.html.php';
exit();
}


$output = 'Theme Park Database initialized';
include 'output.html.php';

try
{
$park_id = $_GET['park_id'];
$query="SELECT * FROM tpf_parks WHERE park_id = $park_id";
$result = $pdo->query($sql);
}
catch (PDOException $e)
{
$error = 'Error fetching park details: ' . $e->getMessage();
include 'error.html.php';
exit();
}
?>

コンテンツページのURLの最後にpaging.php?park_id = 2が表示され、番号がpark_idと一致するため、park_idが渡されていると思いますが、クエリから次のようなエラーが発生します。

「パークの詳細のフェッチ中にエラーが発生しました:SQLSTATE [42000]:構文エラーまたはアクセス違反:1065クエリが空でした」

私は何を間違えましたか?助けてください。ダン

4

1 に答える 1

1

$sql問題は、存在していないように見える変数を使用している次の行です。

$result = $pdo->query($sql);

次のことを試してください。

$park_id = $_GET['park_id'];
$query="SELECT * FROM tpf_parks WHERE park_id = $park_id";
$result = $pdo->query($query);

に置き換えたことに注意して$sqlください$query

于 2013-03-24T22:23:32.490 に答える