我一直在尝试使用PHP连接到MySQL并显示一些数据。我对此完全陌生。我主要从w3schools和谷歌上发现的其他一些网站上阅读了这个主题。 但是我有2个问题,第1个,PHP代码在
之后开始$result = mysql_query("SELECT * FROM Passengers_On_Flight");
显示为纯文本。
另一个问题是,即使没有提交表单也会发生这种情况,这导致我认为if(isset($_POST['submit']))
没有被正确评估的原因。我发现了其他问题,人们有问题,从来没有评估过真,但并不总是评估为真。
我在服务器上安装了PHP -v以确保安装了php5,我也这样做了:http://www.gilesorr.com/papers/PHP/x37.html
两者都表明PHP实际上已安装并正常工作。我已经搜索过,但似乎无法弄清楚问题。
这是我的PHP PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<link rel="stylesheet" type="text/css" href="cobraStyle.css">
<HEAD>
<TITLE>Cobra</TITLE>
</HEAD>
<BODY>
<div id="container">
<div id="header">
<h1>
Cobra Airlines
</h1>
</div>
<div id="navigation">
<ul>
<li><a href="#">Home</a></li>
<li><a href="viewFlights.html">Check Flights</a></li>
<li><a href="#">Administration</a></li>
<li><a href="#">Contact us</a></li>
</ul>
</div>
<div id="content">
<h2>
Flights heading
</h2>
<?php
if($_POST['submit'])
{
$con = mysql_connect("localhost","root","qwerty");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("Cobra_Airlines", $con);
$result = mysql_query("SELECT * FROM Passengers_On_Flight");
echo "<table border='1'>
<tr>
<th>Fligh Number</th>
<th>Departure Date</th>
<th>First Name</th>
<th>Last Name</th>
<th>Passenger Number</th>
</tr>";
while($row = mysql_fetch_array($result)){
echo "<tr>";
echo "<td>" . $row['FlightNum'] . "</td>";
echo "<td>" . $row['Departure_Date'] . "</td>";
echo "<td>" . $row['First_Name'] . "</td>";
echo "<td>" . $row['Last_Name'] . "</td>";
echo "<td>" . $row['PassengerNum'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
}
?>
<p>
<form name="input" action="viewFlights.html" method="post">
Flight Number: <input type="text" name="flight">
<input type="submit" value="submit" name="submit">
</form>
</p>
</div>
<div id="footer">
Copyright © Cobra Air, 2012
</div>
</div>
</BODY>
</HTML>
这是更新的PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<link rel="stylesheet" type="text/css" href="cobraStyle.css">
<HEAD>
<TITLE>Cobra</TITLE>
</HEAD>
<BODY>
<div id="container">
<div id="header">
<h1>
Cobra Airlines
</h1>
</div>
<div id="navigation">
<ul>
<li><a href="#">Home</a></li>
<li><a href="viewFlights.html">Check Flights</a></li>
<li><a href="#">Administration</a></li>
<li><a href="#">Contact us</a></li>
</ul>
</div>
<div id="content">
<h2>
Flights heading
</h2>
<?php
$con = mysql_connect("localhost","root","qwerty");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("Cobra_Airlines", $con);
$result = mysql_query("SELECT * FROM Passengers_On_Flight");
echo
"<table border='1'>
<tr>
<th>Fligh Number</th>
<th>Departure Date</th>
<th>First Name</th>
<th>Last Name</th>
<th>Passenger Number</th>
</tr>";
while($row = mysql_fetch_array($result))
echo "<tr>";
echo "<td>" . $row['FlightNum'] . "</td>";
echo "<td>" . $row['Departure_Date'] . "</td>";
echo "<td>" . $row['First_Name'] . "</td>";
echo "<td>" . $row['Last_Name'] . "</td>";
echo "<td>" . $row['PassengerNum'] . "</td>";
echo "</tr>";
endwhile;
echo "</table>";
mysql_close($con);
?>
<p>
<form name="input" action="viewFlights.php" method="post">
Flight Number: <input type="text" name="flight">
<input type="submit" value="submit" name="submit">
</form>
</p>
</div>
<div id="footer">
Copyright © Cobra Air, 2012
</div>
</div>
</BODY>
</HTML>
答案 0 :(得分:2)
问题是它们是html文件而不是php viewFlights.html
和x37.html
不会解析为PHP,除非你的服务器被告知.html应该是。
将文件名更改为.php
,即viewFlights.php
和x37.php
(并将您的表单操作更新为viewFlights.php)。
您应该将if ($_POST['submit'])
更改为if (isset($_POST['submit']))
以避免和未定义索引错误。
<强>除了... 强>
当你处理这个问题时,我永远无法理解为什么人们会在白色空间不重要的情况下这样做。
echo "<tr>";
echo "<td>" . $row['FlightNum'] . "</td>";
echo "<td>" . $row['Departure_Date'] . "</td>";
echo "<td>" . $row['First_Name'] . "</td>";
echo "<td>" . $row['Last_Name'] . "</td>";
echo "<td>" . $row['PassengerNum'] . "</td>";
echo "</tr>";
刚
echo "<tr>
<td>" . $row['FlightNum'] . "</td>
<td>" . $row['Departure_Date'] . "</td>
<td>" . $row['First_Name'] . "</td>
<td>" . $row['Last_Name'] . "</td>
<td>" . $row['PassengerNum'] . "</td>
</tr>
";
修改强>
回答第二个问题,而(){}已更改为while():endwhile但缺少冒号。需要
while($row = mysql_fetch_array($result)):
答案 1 :(得分:0)
你的意思是什么?如果你试图提取记录,除非它的密码等...不应该没问题吗?
由你$_POST
提交值,你只是推动它在哪里。
您应$_POST
使用if($_POST['flight'])
你错过了一大块编程来拉取记录。
我建议你在编码之前计划这个过程。
另外,你的mysql连接的结构很差,在外部目录中保持一个持久连接,直到你准备关闭它,它使用更少的资源。
(../连接/ config.php中)
$pcon = mysql_pconnect('','','')
mysql_select_db('', $pcon)
别忘了将页面更改为.php扩展名而不是.html !!