php mysql where 子句不读取变量
php mysql where clause not reading variable
我这里开始火了
mysql_query
无法识别我的变量 $d1
即使我尝试重命名它
这是代码..
html:
<form action ="manageVessel.php" method ="POST">
<select onchange ="this.form.submit();" class ="form-control" name ="ViewPositionCertificates">
<option>Choose a Position </option>
<?php
$ViewPCertificates = mysql_query("SELECT * FROM table_cmsjob") or die("error" . mysql_error());
while ($rwViewPCertificates = mysql_fetch_array($ViewPCertificates)) {
?>
<option value =" <?php echo $rwViewPCertificates['jobName']; ?> "> <?php echo $rwViewPCertificates['jobName']; ?></option>
<?php } ?>
</select>
</form>
php:
<?php if (isset($_POST['ViewPositionCertificates'])) { ?>
<table class = "table table-bordered">
<tr class ="bg-primary">
<td> List of Certificates </td>
</tr>
<?php
$d1 = $_POST['ViewPositionCertificates'];
echo $_POST['ViewPositionCertificates'];
$ViewCertificatesFP = mysql_query("SELECT * FROM table_cmsjobassigning WHERE jobName = '$d1' ") or die("error" . mysql_error());
while ($rwViewCertificatesFP = mysql_fetch_array($ViewCertificatesFP)) {
echo "<tr>";
echo "<td>" . $rwViewCertificatesFP['Certificate'] . "</td>";
echo "</tr>";
}
?>
</table>
<?php } ?>
MYSQL WHERE 子句在我使用字符串时工作正常
mysql_query("SELECT * FROM table_cmsjobassigning WHERE jobName = 'MASTER' ") or die("error" . mysql_error());
但是当我使用变量将 $_POST['ViewPositionCertificates']
赋值给变量时 MYSQL WHERE 子句没有任何帮助?
<?php if (isset($_POST['ViewPositionCertificates'])) { ?>
<table class = "table table-bordered">
<tr class ="bg-primary">
<td> List of Certificates </td>
</tr>
<?php
$d1 = $_POST['ViewPositionCertificates'];
echo $_POST['ViewPositionCertificates'];
$ViewCertificatesFP = mysql_query("SELECT * FROM table_cmsjobassigning WHERE jobName = '".$d1."' ") or die("error" . mysql_error());
while ($rwViewCertificatesFP = mysql_fetch_array($ViewCertificatesFP)) {
echo "<tr>";
echo "<td>" . $rwViewCertificatesFP['Certificate'] . "</td>";
echo "</tr>";
}
?>
</table>
<?php } ?>
更改 select 查询语法使用单引号。
尝试更改您的查询方法,这可能会有所帮助...
$ViewCertificatesFP = mysql_query("SELECT * FROM table_cmsjobassigning WHERE jobName = '".$d1."' ") or die("error" . mysql_error());
试试这个:
mysql_query("SELECT * FROM table_cmsjobassigning WHERE jobName = ".$_POST['ViewPositionCertificates'])
不能在单引号内写变量,如果写的话PHP会认为是字符串。
所以您的查询将是
$ViewCertificatesFP = mysql_query("SELECT * FROM table_cmsjobassigning WHERE jobName = $d1 ") or die("error" . mysql_error());
如需更多帮助,请阅读PHP
中的变量插值
这样试试..
$ViewCertificatesFP = mysql_query("SELECT * FROM table_cmsjobassigning WHERE jobName = '".mysql_real_escape_string(trim($d1))."' ") or die("error" . mysql_error());
或
$ViewCertificatesFP = mysql_query("SELECT * FROM table_cmsjobassigning WHERE jobName = '".addslashes(trim($d1))."' ") or die("error" . mysql_error());
<option value ="<?php echo $rwViewPCertificates['jobName']; ?>"> <?php echo $rwViewPCertificates['jobName']; ?></option> // remove xtra spaces from here......
从 value
属性中删除空格
我这里开始火了
mysql_query
无法识别我的变量 $d1
即使我尝试重命名它
这是代码..
html:
<form action ="manageVessel.php" method ="POST">
<select onchange ="this.form.submit();" class ="form-control" name ="ViewPositionCertificates">
<option>Choose a Position </option>
<?php
$ViewPCertificates = mysql_query("SELECT * FROM table_cmsjob") or die("error" . mysql_error());
while ($rwViewPCertificates = mysql_fetch_array($ViewPCertificates)) {
?>
<option value =" <?php echo $rwViewPCertificates['jobName']; ?> "> <?php echo $rwViewPCertificates['jobName']; ?></option>
<?php } ?>
</select>
</form>
php:
<?php if (isset($_POST['ViewPositionCertificates'])) { ?>
<table class = "table table-bordered">
<tr class ="bg-primary">
<td> List of Certificates </td>
</tr>
<?php
$d1 = $_POST['ViewPositionCertificates'];
echo $_POST['ViewPositionCertificates'];
$ViewCertificatesFP = mysql_query("SELECT * FROM table_cmsjobassigning WHERE jobName = '$d1' ") or die("error" . mysql_error());
while ($rwViewCertificatesFP = mysql_fetch_array($ViewCertificatesFP)) {
echo "<tr>";
echo "<td>" . $rwViewCertificatesFP['Certificate'] . "</td>";
echo "</tr>";
}
?>
</table>
<?php } ?>
MYSQL WHERE 子句在我使用字符串时工作正常
mysql_query("SELECT * FROM table_cmsjobassigning WHERE jobName = 'MASTER' ") or die("error" . mysql_error());
但是当我使用变量将 $_POST['ViewPositionCertificates']
赋值给变量时 MYSQL WHERE 子句没有任何帮助?
<?php if (isset($_POST['ViewPositionCertificates'])) { ?>
<table class = "table table-bordered">
<tr class ="bg-primary">
<td> List of Certificates </td>
</tr>
<?php
$d1 = $_POST['ViewPositionCertificates'];
echo $_POST['ViewPositionCertificates'];
$ViewCertificatesFP = mysql_query("SELECT * FROM table_cmsjobassigning WHERE jobName = '".$d1."' ") or die("error" . mysql_error());
while ($rwViewCertificatesFP = mysql_fetch_array($ViewCertificatesFP)) {
echo "<tr>";
echo "<td>" . $rwViewCertificatesFP['Certificate'] . "</td>";
echo "</tr>";
}
?>
</table>
<?php } ?>
更改 select 查询语法使用单引号。
尝试更改您的查询方法,这可能会有所帮助...
$ViewCertificatesFP = mysql_query("SELECT * FROM table_cmsjobassigning WHERE jobName = '".$d1."' ") or die("error" . mysql_error());
试试这个:
mysql_query("SELECT * FROM table_cmsjobassigning WHERE jobName = ".$_POST['ViewPositionCertificates'])
不能在单引号内写变量,如果写的话PHP会认为是字符串。
所以您的查询将是
$ViewCertificatesFP = mysql_query("SELECT * FROM table_cmsjobassigning WHERE jobName = $d1 ") or die("error" . mysql_error());
如需更多帮助,请阅读PHP
中的变量插值这样试试..
$ViewCertificatesFP = mysql_query("SELECT * FROM table_cmsjobassigning WHERE jobName = '".mysql_real_escape_string(trim($d1))."' ") or die("error" . mysql_error());
或
$ViewCertificatesFP = mysql_query("SELECT * FROM table_cmsjobassigning WHERE jobName = '".addslashes(trim($d1))."' ") or die("error" . mysql_error());
<option value ="<?php echo $rwViewPCertificates['jobName']; ?>"> <?php echo $rwViewPCertificates['jobName']; ?></option> // remove xtra spaces from here......
从 value
属性中删除空格