未从数据库获取单选按钮

时间:2019-02-21 00:15:33

标签: php mysql

我知道有人已经回答了这个问题,但是由于某种原因,他们给定的语法对我不起作用。我试图从数据库中获取一个单选按钮值,并将其显示在一个单选按钮中。我看了很多关于此的教程和红线,但仍然无法正常工作。 你们能仔细检查一下我的代码有什么问题吗?谢谢。

这就是我获取value的方式。

<label>2-3 meters
    <input type="radio" name="meter" value="2-3 Meters"
       <?php 
       if($ssh== "2-3 Meters"){
          echo "checked"; }
       ?>>
</label>

<label>1-2 meters
    <input type="radio" name="meter" value="1-2 Meters"
       <?php 
       if($ssh== "1-2 Meters"){
          echo "checked"; }
       ?>>
</label>

<label>< 1 meter
    <input type="radio" name="meter" value="< 1 Meter"
       <?php 
       if($ssh== "< 1 Meter"){
          echo "checked"; }
       ?>>
</label>

这是我的PHP

<?php

$con=mysqli_connect("localhost", "root", "", "db");

$edit=$_GET['id'];
$select="SELECT * FROM table WHERE id='$edit'";
$run=mysqli_query($con,$select);
$row=mysqli_fetch_array($run);

$id = "";
$ssh = "";

if(isset($_GET['ssh'])){
  $ssh = $_GET['ssh'];
}

?>

1 个答案:

答案 0 :(得分:1)

您的$_GET['ssh']正在通过URL传递并且正在被编码,例如:

当您在1-2 Meters上检索给定值1-2%20Meters(?ssh = 1-2米)时,它看起来像PHP(?ssh = 1-2%20Meters)。使用$_GET['ssh']。请注意%20字符插入空格,因为空格不是有效的URL字符,所以会发生这种情况。参见:What's valid and what's not in a URI query?

因此,您应先对其进行解码,然后再分配给$ssh变量。

if(isset($_GET['ssh'])){
  $ssh = urldecode($_GET['ssh']);
}

要从数据库中获取值并循环播放单选按钮,应该为:

<?php
while($row=mysqli_fetch_array($run)){
?>
     <label><?php echo $row['title']; //whatever row name is on your database ?>
       <input type="radio" name="meter" value="<?php echo $row['title']; ?>"
       <?php 
       if($ssh == $row['title']){
          echo "checked"; }
       ?>>
     </label>
<?php } ?>

查看文档:{​​{3}}