如何从mysql数据库中获取数据?

时间:2014-01-10 12:30:27

标签: php html mysql

我在从db获取值时遇到问题。我刚接触php

我使用复选框从数据库中获取值。只应打印选中的值。

<form method="POST" action="gradoviexport.php"  id="searchform">
<div id="GRADOVI BIH">
<h3>GRADOVI BOSNE I HERCEGOVINE</h3><hr/>
<input type="checkbox" name="gradovi[]" value="sarajevo"> Sarajevo
<input type="checkbox" name="gradovi[]" value="banovici"> Banovići 
<input type="checkbox" name="gradovi[]" value="banjaluka">  Banja Luka
<input type="checkbox" name="gradovi[]" value="bihac">  Bihać
<input type="checkbox" name="gradovi[]" value="bileca"> Bileća
</div>
<div id="snimi">
<input type="submit" name="submit" value="EXPORT">
</div>
</form>

如果选中萨拉热窝,我想从数据库中打印值。它不必只检查一个值如果检查了所有值,它应该打印所有值。

$con=mysqli_connect("$host","$username","$password", "$database");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

 //connecting to db     
$variable=$_POST['grad'];
foreach ($variable as $variablename)
{
$sql_select="SELECT * FROM `clanovi` WHERE `GRAD` = $variablename " ;
$queryRes = mysql_query($sql_select);
print"$sql_select";

}
echo "<table border='5'>
<tr>
<th>IME</th>
<th>PREZIME</th>
<th>FIRMA</th>
<th>ADRESA</th>
<th>TELEFON</th>
<th>FAX</th>
<th>MOBITEL</th>
<th>EMAIL </th>
<th>WEB_STRANICA </th>
<th>GRAD </th>
<th>KATEGORIJA </th>

</tr>";

while($row = mysqli_fetch_array($queryRes))
{
echo "<tr>";
echo "<td>" . $row['IME'] . "</td>"; 
echo "<td>" . $row['PREZIME'] . "</td>";
echo "<td>" . $row['FIRMA'] . "</td>";
echo "<td>" . $row['ADRESA'] . "</td>";
echo "<td>" . $row['TELEFON'] . "</td>";
echo "<td>" . $row['FAX'] . "</td>";
echo "<td>" . $row['MOBITEL'] . "</td>";
echo "<td>" . $row['EMAIL'] . "</td>";
echo "<td>" . $row['WEB_STRANICA'] . "</td>";
echo "<td>" . $row['GRAD'] . "</td>";
echo "<td>" . $row['KATEGORIJA'] . "</td>";


echo "</tr>";
}
echo "</table>";

mysqli_close($con);

2 个答案:

答案 0 :(得分:0)

假设您已将gradovi []数组值发布到已提交的页面。

提交页面

$grad = array();
$grad = $_POST['gradovi']; //get array value
$grad = implode(',',$grad); //convert it into comma separated string
//Insert it into data base

从数据库获取

//fetch the gradovi field from the db like below

echo $row['gradovi']; // print all values

$grad = explode(',',$row['gradovi']);
foreach($grad as $check) {
echo $check; //print one by one
}

答案 1 :(得分:0)

代码中的错误很少。

  1. POST数据没有转义字符串。使用mysqli_real_escape_string
  2. 您的while循环中存在错误。您重新定义了mysql查询结果。
  3. 固定代码:

    //connecting to db     
    $variable=$_POST['grad'];
    foreach($variable as $key => $val) {
        $variable[$key] = mysql_escape_string($val);
    }
    $sql_select="SELECT * FROM `clanovi` WHERE `GRAD` IN ('" . implode("','", $variable) . "')" ;
    $queryRes = mysql_query($sql_select);
    print"$sql_select";