Php 我的动态下拉菜单不显示mysql数据库中的信息?
我试图创建一个动态下拉菜单,当用户选择他的状态月份,以及它搜索mysql数据库的年份时,可以提取与状态、月份和年份相关的正确信息。当我点击提交按钮时,什么也没有发生,我也没有在屏幕上收到任何错误 如果您能给我提供任何建议,或者网站上可能有我需要的信息,我将不胜感激。如果我应该用其他方式做,请让我知道Php 我的动态下拉菜单不显示mysql数据库中的信息?,php,html,mysql,web-applications,Php,Html,Mysql,Web Applications,我试图创建一个动态下拉菜单,当用户选择他的状态月份,以及它搜索mysql数据库的年份时,可以提取与状态、月份和年份相关的正确信息。当我点击提交按钮时,什么也没有发生,我也没有在屏幕上收到任何错误 如果您能给我提供任何建议,或者网站上可能有我需要的信息,我将不胜感激。如果我应该用其他方式做,请让我知道 <?php error_reporting(E_ALL); ini_set('display_errors', '1'); require_once('members/c
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
require_once('members/connectvars.php');
// Connect to the database
$dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if (!$dbc) {
trigger_error('Could not connect to MySQL: ' . mysqli_connect_error());
if($_POST)
{
$state = $_POST['state'];
$month = $_POST['month'];
$year = $_POST['year'];
$query = mysql_query("SELECT * FROM triathlons WHERE state = '".$state."' month ='".$month."' year = '".$year."' ") or die(mysql_error());
$num = mysql_num_rows($query);
echo "$num results found!<br>";
while($result = mysql_fetch_assoc($query))
{
$day = $result['day'];
$date = $result['date'];
$city= $result['city'];
$racename= $result['racename'];
$park= $result['park'];
$website= $result['website'];
echo "<b> day</b> : $day<br>
<b>Last Name : </b> $date<br>
<b>city : </b>$city<br>
<b>state : </b>$state <br><br>";
}
}
}
?>
<form method="POST" id="filtermainpage" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<label for="state">State:</label>
<select name="state" id="state1">
<option selected="selected" value="">All States</option>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
<option value="AR">Arkansas</option>
<option value="CA">California</option>
<option value="CO">Colorado</option>
<option value="CT">Connecticut</option>
<option value="DC">D.C.</option>
<option value="DE">Delaware</option>
<option value="FL" >Florida</option>
<option value="GA">Georgia</option>
<option value="HI">Hawaii</option>
<option value="ID">Idaho</option>
<option value="IL">Illinois</option>
<option value="IN">Indiana</option>
<option value="IA">Iowa</option>
<option value="KS">Kansas</option>
<option value="KY">Kentucky</option>
<option value="LA">Louisiana</option>
<option value="ME">Maine</option>
<option value="MD">Maryland</option>
<option value="MA">Massachusetts</option>
<option value="MI">Michigan</option>
<option value="MN">Minnesota</option>
<option value="MS">Mississippi</option>
<option value="MO">Missouri</option>
<option value="MT">Montana</option>
<option value="NE">Nebraska</option>
<option value="NV">Nevada</option>
<option value="NH">New Hampshire</option>
<option value="NJ">New Jersey</option>
<option value="NM">New Mexico</option>
<option value="NY">New York</option>
<option value="NC">North Carolina</option>
<option value="ND">North Dakota</option>
<option value="OH">Ohio</option>
<option value="OK">Oklahoma</option>
<option value="OR">Oregon</option>
<option value="PA">Pennsylvania</option>
<option value="RI">Rhode Island</option>
<option value="SC">South Carolina</option>
<option value="SD">South Dakota</option>
<option value="TN">Tennessee</option>
<option value="TX">Texas</option>
<option value="UT">Utah</option>
<option value="VT">Vermont</option>
<option value="VA">Virginia</option>
<option value="WA">Washington</option>
<option value="WV">West Virginia</option>
<option value="WI">Wisconsin</option>
<option value="WY">Wyoming</option>
</select>
</p>
<br
<br
<label for="month">Month:</label>
<select name="month" id="month1">
<option selected="selected" value="0">All Months</option>
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<label for="year">Year:</label>
<select name="year" id="year1">
<option value="2013">2013</option>
<option value="2012">2012</option>
<option value="2011">2011</option>
</select>
</label>
</p>
<p>
<input type="submit" name="submit" id="button" value="submit">
</p>
</form>
第一个if可能应该在检查post是否发送之前关闭。否则,当您成功连接到数据库时,将不会发生任何事情。因此:
if (!$dbc) {
trigger_error('Could not connect to MySQL: ' . mysqli_connect_error());
}
else if ($_POST) {
$state = $_POST['state'];
$month = $_POST['month'];
$year = $_POST['year'];
[...]
我建议你开始使用PDO类
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
require_once('members/connectvars.php');
// Connect to the database
require_once('databaseConnection.php'),
if(!empty($_POST)) {
$state = $_POST['state'];
$month = $_POST['month'];
$year = $_POST['year'];
$req = $db->prepare('
SELECT *
FROM triathlons
WHERE state = :st
AND month = :mnth
AND year = :yr');
$req->bindParam(':st', $state, PDO::PARAM_STR);
$req->bindParam(':mnth', $month, PDO::PARAM_INT);
$req->bindParam(':yr', $year, PDO::PARAM_INT);
$req->execute();
$num = $req->rowCount();
echo $num . ' results found !<br />';
while($result = $req->fetch()) {
$day = $result['day'];
$date = $result['date'];
$city = $result['city'];
$racename = $result['racename'];
$park = $result['park'];
$website = $result['website'];
echo '<br />Day : ' . $day,
'<br />Last Name : ' . $date,
'<br />City : ' . $city,
'<br />Website : ' . $website . '<br />';
}
}
?>
<form method="POST" id="filtermainpage" action="#">
<label for="state">State : </label>
<select name="state" id="state1">
<option selected="selected" value="">All States</option>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
<option value="AR">Arkansas</option>
<option value="CA">California</option>
<option value="CO">Colorado</option>
<option value="CT">Connecticut</option>
<option value="DC">D.C.</option>
<option value="DE">Delaware</option>
<option value="FL" >Florida</option>
<option value="GA">Georgia</option>
<option value="HI">Hawaii</option>
<option value="ID">Idaho</option>
<option value="IL">Illinois</option>
<option value="IN">Indiana</option>
<option value="IA">Iowa</option>
<option value="KS">Kansas</option>
<option value="KY">Kentucky</option>
<option value="LA">Louisiana</option>
<option value="ME">Maine</option>
<option value="MD">Maryland</option>
<option value="MA">Massachusetts</option>
<option value="MI">Michigan</option>
<option value="MN">Minnesota</option>
<option value="MS">Mississippi</option>
<option value="MO">Missouri</option>
<option value="MT">Montana</option>
<option value="NE">Nebraska</option>
<option value="NV">Nevada</option>
<option value="NH">New Hampshire</option>
<option value="NJ">New Jersey</option>
<option value="NM">New Mexico</option>
<option value="NY">New York</option>
<option value="NC">North Carolina</option>
<option value="ND">North Dakota</option>
<option value="OH">Ohio</option>
<option value="OK">Oklahoma</option>
<option value="OR">Oregon</option>
<option value="PA">Pennsylvania</option>
<option value="RI">Rhode Island</option>
<option value="SC">South Carolina</option>
<option value="SD">South Dakota</option>
<option value="TN">Tennessee</option>
<option value="TX">Texas</option>
<option value="UT">Utah</option>
<option value="VT">Vermont</option>
<option value="VA">Virginia</option>
<option value="WA">Washington</option>
<option value="WV">West Virginia</option>
<option value="WI">Wisconsin</option>
<option value="WY">Wyoming</option>
</select>
<br />
<br />
<label for="month">Month:</label>
<select name="month" id="month1">
<option selected="selected" value="0">All Months</option>
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<label for="year">Year:</label>
<select name="year" id="year1">
<option value="2013">2013</option>
<option value="2012">2012</option>
<option value="2011">2011</option>
</select>
<p>
<input type="submit" name="submit" id="button" value="submit">
</p>
</form>
顺便说一下,您可以将数据库标识符放在databaseConnection.php文件中安全性:请不要只在sql中使用$\u POST['foo'],验证它们是否是您期望的值,因为这会使您的系统遭受多起攻击
现在,当您提交到同一页面时,表单中的操作是可选的
if(!$dbc)触发器_错误后还缺少},因此在if条件后添加}或删除{,因为if中的指令只有一行,大括号是可选的。我不明白。if($\u POST)在if(!$dbc)中.这是一个错误还是只有我不明白。好的,我会确保做到的,谢谢
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
require_once('members/connectvars.php');
// Connect to the database
require_once('databaseConnection.php'),
if(!empty($_POST)) {
$state = $_POST['state'];
$month = $_POST['month'];
$year = $_POST['year'];
$req = $db->prepare('
SELECT *
FROM triathlons
WHERE state = :st
AND month = :mnth
AND year = :yr');
$req->bindParam(':st', $state, PDO::PARAM_STR);
$req->bindParam(':mnth', $month, PDO::PARAM_INT);
$req->bindParam(':yr', $year, PDO::PARAM_INT);
$req->execute();
$num = $req->rowCount();
echo $num . ' results found !<br />';
while($result = $req->fetch()) {
$day = $result['day'];
$date = $result['date'];
$city = $result['city'];
$racename = $result['racename'];
$park = $result['park'];
$website = $result['website'];
echo '<br />Day : ' . $day,
'<br />Last Name : ' . $date,
'<br />City : ' . $city,
'<br />Website : ' . $website . '<br />';
}
}
?>
<form method="POST" id="filtermainpage" action="#">
<label for="state">State : </label>
<select name="state" id="state1">
<option selected="selected" value="">All States</option>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
<option value="AR">Arkansas</option>
<option value="CA">California</option>
<option value="CO">Colorado</option>
<option value="CT">Connecticut</option>
<option value="DC">D.C.</option>
<option value="DE">Delaware</option>
<option value="FL" >Florida</option>
<option value="GA">Georgia</option>
<option value="HI">Hawaii</option>
<option value="ID">Idaho</option>
<option value="IL">Illinois</option>
<option value="IN">Indiana</option>
<option value="IA">Iowa</option>
<option value="KS">Kansas</option>
<option value="KY">Kentucky</option>
<option value="LA">Louisiana</option>
<option value="ME">Maine</option>
<option value="MD">Maryland</option>
<option value="MA">Massachusetts</option>
<option value="MI">Michigan</option>
<option value="MN">Minnesota</option>
<option value="MS">Mississippi</option>
<option value="MO">Missouri</option>
<option value="MT">Montana</option>
<option value="NE">Nebraska</option>
<option value="NV">Nevada</option>
<option value="NH">New Hampshire</option>
<option value="NJ">New Jersey</option>
<option value="NM">New Mexico</option>
<option value="NY">New York</option>
<option value="NC">North Carolina</option>
<option value="ND">North Dakota</option>
<option value="OH">Ohio</option>
<option value="OK">Oklahoma</option>
<option value="OR">Oregon</option>
<option value="PA">Pennsylvania</option>
<option value="RI">Rhode Island</option>
<option value="SC">South Carolina</option>
<option value="SD">South Dakota</option>
<option value="TN">Tennessee</option>
<option value="TX">Texas</option>
<option value="UT">Utah</option>
<option value="VT">Vermont</option>
<option value="VA">Virginia</option>
<option value="WA">Washington</option>
<option value="WV">West Virginia</option>
<option value="WI">Wisconsin</option>
<option value="WY">Wyoming</option>
</select>
<br />
<br />
<label for="month">Month:</label>
<select name="month" id="month1">
<option selected="selected" value="0">All Months</option>
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<label for="year">Year:</label>
<select name="year" id="year1">
<option value="2013">2013</option>
<option value="2012">2012</option>
<option value="2011">2011</option>
</select>
<p>
<input type="submit" name="submit" id="button" value="submit">
</p>
</form>
try {
$pdo_options = array();
//Optional
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$pdo_options[PDO::MYSQL_ATTR_INIT_COMMAND] = "SET NAMES utf8";
$db = new PDO('mysql:host='.DB_HOST.';
dbname=' . DB_NAME,
DB_USER,
DB_PASSWORD,
$pdo_options);
}
catch (Exception $e) {
die('Error : ' . $e->getMessage());
}