私は PHP/MySQL を初めて使用し、最適なツールセットや適切なデバッグ方法を知りません。
これが私が取り組んでいるコードスニペットです。主な問題が 2 つあります。
1: エスケープ シーケンスが機能していないことに気付きました。ページ表示では \n はすべて無視されます。
2: コードが while ループに入っていないため、結果が表示されません。phpMyAdmin で同じクエリを実行すると、1 つの結果が得られます。
これは出力です:
I'm in your db!echoinside post結果テーブルがあります name: outside post
<?php
$mysqli = new mysqli("****", "*****", "******", "******");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
echo "I'm in your db!";
echo "echo";
if( $_POST["submit"] ) {
echo "inside post";
if (!($stmt = $mysqli->prepare("SELECT Cust_name FROM SERVICE_TICKET WHERE Ticket_num=?"))) {
echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
if (!$stmt->bind_param("i", $_POST['ticket'])) {
echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
}
if (!$stmt->execute()) {
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}
if (!$stmt->bind_result($Cust_name)) {
echo "Binding output parameters failed: (" . $stmt->errno . ") " . $stmt->error;
}
else {
echo "We have a result";
echo "<table><br/>";
echo "table exists";
printf("<br/>\n\n\n\n\nname: %s", $Cust_name);
while ($stmt->fetch()){
echo "in while loop";
echo "<tr>\n<td>".$Cust_name."</td>\n</tr>";
}
echo "</table>";
}
}
echo "outside post";
?>
フォームの html を追加します。
<head>
<title>Bicycle Store Service Ticket</title>
<link rel="stylesheet" type="text/css" href="web.css" />
</head>
<body>
<h1>ACME BICYCLE SHOP</h1>
<h3 align="center">GET IN GEAR!</h3>
<form action="search_service.php" method="post">
<h3>CHECK A SERVICE TICKET</h3>
<h4>Ticket Number: <input type="text" ticket="ticket">
<input type="submit" name="submit" value="Search">
</form>
<p><a href="index.html">HOME</a></p>
</body>
</html>
どんなアドバイスもとても役に立ちます。