2016-08-03 28 views
-1

我想了解代码,我很困惑,以了解下面这一点的代码。在第一个例子我想从数据库中获取数据并将它们显示为下拉列表,但不幸的是它没有显示任何内容,而在第二个示例中,一切正常(获取数据显示为下拉列表)问题是我不能理解第二个例子中的代码,它看起来比第一个例子复杂得多。所以我想纠正我的第一个例子,之后我可以根据第一个例子重新构建第二个例子。在php-mysql中的代码实现

第一个表是部门(ID,persondepartment,说明) 第二台板(personboard,说明) PS:这是我的项目,所以我不有关安全

第一例护理 - 不工作

<td>Department</td> 
     <td> 
      <select name='persondepartment' ID="dept"> 
      <option ID="0">-- Select Department --</option> 
      <?php 
      mysql_connect('localhost', 'data_datab', 'password'); 
      mysql_select_db ("data"); 

      $getalldepartments = "SELECT * FROM department"; 
       WHILE ($viewdepartments = mysql_fetch_array(
        $getalldepartments)){ 
      ?> 
      <option ID="<?php echo $viewdepartments['ID'];?> 
      "> <?php echo $viewdepartments ['persondepartment'] ?></option> 
      <?php } ?> 
     </select> 
     </td> 

第二个示例 - 工作

<td>Board</td> 
    <td> 
<?php 
mysql_connect('localhost', 'data_datab', 'password'); 
mysql_select_db ("data"); 

$sql = "SELECT * FROM board"; 
$result = mysql_query($sql); 

echo "<select name='personboard'>"; 
while ($row = mysql_fetch_array($result)) { 
echo "<option value='" . $row['personboard'] . "'>" . $row['personboard'] . "</option>"; 
} 
?> 
</td> 
+0

你可能要考虑的更多,更新的(和方式更加安全)''mysqli''库或''pdo''。旧的mysql实现仅适用于遗留代码库,远远落后。 –

+0

在第二个示例中,您正在迭代结果,但在第一个示例中,您正在重复一个sql查询并且缺少实际的数据库查询:$ result = mysql_query($ sql);.这个想法是运行一个sql命令,获取结果并遍历结果。其次,如果用作PHP代码,WHILE应该是小写的。 – Nitin

+0

$ con = mysqli_connect(“localhost”,“data_datab”,“password”,“data”); – Shkolla

回答

2

尝试改变

$getalldepartments = "SELECT * FROM department"; 

到:

$getalldepartments = mysql_query("SELECT * FROM department"); 

,并考虑使用mysqli代替过时mysql扩展。


正确的版本与PDO

<td>Department</td> 
<td> 
    <select name="persondepartment" id="dept"> 
     <option value="0">-- Select Department --</option> 
<?php 
     try { 
      $pdo = new PDO('mysql:host=localhost;dbname=data', 'data_datab', 'password'); 
     } catch (PDOException $e) { 
      echo '<option value="">' . $e->getMessage() . '</option>'; 
     } 

     $getalldepartments = $pdo->query("SELECT * FROM department"); 
     while ($viewdepartments = $getalldepartments->fetch(PDO::FETCH_ASSOC)) { 
?> 
     <option value="<?= $viewdepartments['ID']; ?>"><?= $viewdepartments['persondepartment']; ?></option> 
<?php 
     } 
?> 
    </select> 
</td> 
+0

或PDO会更好。 – alzee

+0

已同意=)正在处理它... – spirit

+0

不,它没有显示任何内容;( – Shkolla