2016-08-03 5 views
-1

Ich versuche, den Code zu verstehen, und ich bin verwirrt, um den Code an dieser Stelle unten zu verstehen. in der ersten Beispiel Ich möchte Daten aus der Datenbank abrufen und sie als Dropdown-Liste anzeigen, aber leider zeigt es nichts an, und im zweiten Beispiel funktioniert alles gut (Daten abrufen als Dropdown-Liste anzeigen) Das Problem ist, dass ich den Code im zweiten Beispiel nicht verstehen kann, sieht es viel komplizierter als das erste Beispiel aus. Also möchte ich mein erstes Beispiel korrigieren und danach kann ich das zweite Beispiel basierend auf dem ersten Beispiel neu erstellen.Code-Implementierung in PHP-Mysql

erste Tabelle ist Abteilung (ID, persondepartment, Beschreibung) Zweite Tischplatte (personboard, Beschreibung) ps: das für mein Projekt ist so nicht ich kümmern uns um Sicherheit

Erstes Beispiel - funktioniert nicht

<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> 

Zweites Beispiel - Arbeits

<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

Sie könnten in die aktualisierten (und Weise sicherer) '' mysqli'' Bibliothek oder '' pdo'' zu suchen. Die alte MySQL-Implementierung ist nur für Legacy-Code-Basen und weit, weit überholt. –

+0

Im zweiten Beispiel iterieren Sie über die Ergebnisse, aber im ersten Beispiel wiederholen Sie eine SQL-Abfrage und verpassen die eigentliche DB-Abfrage: $ result = mysql_query ($ sql); Die Idee ist, einen SQL-Befehl auszuführen, die Ergebnisse zu erhalten und über die Ergebnisse zu iterieren. Zweitens sollte WHILE als PHP-Code in Kleinbuchstaben geschrieben werden. – Nitin

+0

$ con = mysqli_connect ("localhost", "data_datab", "passwort", "daten"); – Shkolla

Antwort

2

Versuchen

$getalldepartments = "SELECT * FROM department"; 

zu ändern:

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

und prüfen verwenden mysqli statt veraltet mysql Erweiterung.


richtige Version mit 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

oder PDO, die noch besser wäre. – alzee

+0

vereinbart =) arbeitet daran ... – spirit

+0

Nein, es zeigt nichts an ( – Shkolla