使用控制结构仅在特定情况下显示表单
display a form just in a particular case using control structure
我是 PHP 的初学者,我在一个拼车网站上工作,我想在用户帐户中显示一个表格,只有当他还没有进入他的车时,这是我的代码,不幸的是它没有'不工作,我的屏幕上没有任何错误。如果可以,请你帮助我 !!
<div id="edit-settings" class="tab-pane">
<?php $user_id=$_SESSION['user']['id'];
$res = $db->query('SELECT COUNT(*) FROM car where $user_id');
$get_total = $res->fetchColumn();
if($get_total==0){
echo 'please enter a car by filling the form below'; ?>
<form action="car.php" method="post">
<br />
<label class="control-label" for="inputEmail">
Brand *
</label>
<input class="span4" type="text" placeholder="Brand *" name="brand" maxlength="64" required="">
<br />
<br />
<label class="control-label" for="inputEmail">
Model *
</label>
<input class="span4" type="text" placeholder="Model *" name="model" maxlength="64" required="">
<br /><br />
<label class="control-label" for="inputEmail">
Confort *
</label>
<select id="lst_confort" class="span4" name="confort">
<option value="Basique">Basic</option>
<option value="Normal">Normal</option>
<option value="Confortable">Confortable</option>
<option value="Luxe">Luxary</option>
</select>
<br /><br />
<label class="control-label" for="inputEmail">
Color *
</label>
<select id="lst_confort" class="span4" name="couleur">
<option value="0" selected> choose a color</option>
<option value="0"> white</option>
<option value="1">black</option>
<option value="2">blue</option>
<option value="3"> Red</option>
<option value="4"> Orange </option>
<option value="5"> Green</option>
<option value="6"> Yellow </option>
</select>
<br /><br />
<label class="control-label" for="inputEmail">
Nb places *
</label>
<select name="places" id="lst_NbPlaces" class="span2" required="">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
</select>
<br />
<br />
<button type="submit" class="btn btn-success">
Submit</button>
<br />
<br />
<br />
<label class="text-info">
* required field
</label>
</form>
<?php } else {
echo "You have already entered car !";
}
?>
您的查询有误:
SELECT COUNT(*) FROM car where $user_id
这是在单引号中,所以它被解释为你在上面看到的; $user_id
被视为文字文本,而不是变量。那不是一个有效的查询。我怀疑你的意思是
$res = $db->query('SELECT COUNT(*) FROM car where user_id = ' . $user_id);
(根据需要更改 user_id
以匹配您的列名称。)
请注意,这 非常 容易受到 SQL 注入的攻击,因此在现实世界中使用是完全不安全的。
另外,以后您可以尝试查看数据库错误和日志来确定是哪里出了问题。
您的查询有语法错误:
$res = $db->query('SELECT COUNT(*) FROM car where $user_id');
^---
你没有比较,所以实际上你在做
SELECT COUNT(*) ... WHERE true
并且正在计算 table 中的所有记录。一旦您让一个用户进入汽车,所有用户都被视为拥有汽车。也许你想要更像
的东西
$res = $db->query('SELECT COUNT(*) FROM car where user = $user_id');
^^^^^^^
我是 PHP 的初学者,我在一个拼车网站上工作,我想在用户帐户中显示一个表格,只有当他还没有进入他的车时,这是我的代码,不幸的是它没有'不工作,我的屏幕上没有任何错误。如果可以,请你帮助我 !!
<div id="edit-settings" class="tab-pane">
<?php $user_id=$_SESSION['user']['id'];
$res = $db->query('SELECT COUNT(*) FROM car where $user_id');
$get_total = $res->fetchColumn();
if($get_total==0){
echo 'please enter a car by filling the form below'; ?>
<form action="car.php" method="post">
<br />
<label class="control-label" for="inputEmail">
Brand *
</label>
<input class="span4" type="text" placeholder="Brand *" name="brand" maxlength="64" required="">
<br />
<br />
<label class="control-label" for="inputEmail">
Model *
</label>
<input class="span4" type="text" placeholder="Model *" name="model" maxlength="64" required="">
<br /><br />
<label class="control-label" for="inputEmail">
Confort *
</label>
<select id="lst_confort" class="span4" name="confort">
<option value="Basique">Basic</option>
<option value="Normal">Normal</option>
<option value="Confortable">Confortable</option>
<option value="Luxe">Luxary</option>
</select>
<br /><br />
<label class="control-label" for="inputEmail">
Color *
</label>
<select id="lst_confort" class="span4" name="couleur">
<option value="0" selected> choose a color</option>
<option value="0"> white</option>
<option value="1">black</option>
<option value="2">blue</option>
<option value="3"> Red</option>
<option value="4"> Orange </option>
<option value="5"> Green</option>
<option value="6"> Yellow </option>
</select>
<br /><br />
<label class="control-label" for="inputEmail">
Nb places *
</label>
<select name="places" id="lst_NbPlaces" class="span2" required="">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
</select>
<br />
<br />
<button type="submit" class="btn btn-success">
Submit</button>
<br />
<br />
<br />
<label class="text-info">
* required field
</label>
</form>
<?php } else {
echo "You have already entered car !";
}
?>
您的查询有误:
SELECT COUNT(*) FROM car where $user_id
这是在单引号中,所以它被解释为你在上面看到的; $user_id
被视为文字文本,而不是变量。那不是一个有效的查询。我怀疑你的意思是
$res = $db->query('SELECT COUNT(*) FROM car where user_id = ' . $user_id);
(根据需要更改 user_id
以匹配您的列名称。)
请注意,这 非常 容易受到 SQL 注入的攻击,因此在现实世界中使用是完全不安全的。
另外,以后您可以尝试查看数据库错误和日志来确定是哪里出了问题。
您的查询有语法错误:
$res = $db->query('SELECT COUNT(*) FROM car where $user_id');
^---
你没有比较,所以实际上你在做
SELECT COUNT(*) ... WHERE true
并且正在计算 table 中的所有记录。一旦您让一个用户进入汽车,所有用户都被视为拥有汽车。也许你想要更像
的东西 $res = $db->query('SELECT COUNT(*) FROM car where user = $user_id');
^^^^^^^