2016-05-12 44 views
-2

テーブルの最後の2つの別々の列に削除と編集ボタンを追加する際に問題があります。PHP - mySQL:テーブルに削除ボタンを追加する

ここは、私が現在データベースから情報を引き出すために使用しているコードです。

 <?php 
     echo "<table style='border: solid 1px black;'>"; 
     echo "<tr><th>Asset ID</th><th>Device</th><th>Brand</th><th>Model</th><th>CPU</th><th>RAM</th><th>Storage</th><th>Screen Size</th><th>Serial Number</th><th>Price</th><th>Last Image</th><th>Comment</th><th>Action</th></tr>"; 

     class TableRows extends RecursiveIteratorIterator { 
      function __construct($it) { 
       parent::__construct($it, self::LEAVES_ONLY); 
      } 

      function current() { 
       return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>"; 
      } 

      function beginChildren() { 
       echo "<tr>"; 
      } 

      function endChildren() { 
       echo "</tr>" . "\n"; 
      } 
     } 

     $servername = "localhost"; 
     $username = ""; 
     $password = ""; 
     $dbname = "laptoplease"; 

     try { 
      $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 
      $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
      $stmt = $conn->prepare("SELECT * FROM laptoplist"); 
      $stmt->execute(); 

      // set the resulting array to associative 
      $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); 
      foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) { 
       echo $v; 
      } 
     } 
     catch(PDOException $e) { 
      echo "Error: " . $e->getMessage(); 
     } 
     $conn = null; 
     echo "</table>"; 
     ?> 
+0

なぜ私はこのためにイテレータを使用しようとしていますか? – Mikey

+0

私はこれまでPHP/mySQLでコード化したことがなく、これが正しい方法だと考えました。 – Razargh

答えて

0

物事を単純にしてください。

<?php 
$servername = "localhost"; 
$username = "hsfcadmin"; 
$password = "G7qMtJats6bQsRLp"; 
$dbname = "laptoplease"; 

try { 
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $stmt = $conn->query("SELECT * FROM laptoplist"); // no need to use prepare statement 
    $laptops = $stmt->fetchAll(PDO::FETCH_ASSOC); 
} catch(PDOException $e) { 
    echo "Error: " . $e->getMessage(); 
} 
?> 


<table style="border: solid 1px black;"> 
    <tr> 
     <th>Asset ID</th> 
     <th>Device</th> 
     <th>Brand</th> 
     <th>Model</th> 
     <th>CPU</th> 
     <th>RAM</th> 
     <th>Storage</th> 
     <th>Screen Size</th> 
     <th>Serial Number</th> 
     <th>Price</th> 
     <th>Last Image</th> 
     <th>Comment</th> 
     <th>Action</th> 
    </tr> 
<?php if ($laptops) : foreach ($laptops as $laptop) : ?> 
    <tr> 
     <td style="width:150px; border:1px solid black;"><?= $laptop['asset_id'] ?></td> 
     <td style="width:150px; border:1px solid black;"><?= $laptop['device'] ?></td> 
     <td style="width:150px; border:1px solid black;"><?= $laptop['brand'] ?></td> 
     <td style="width:150px; border:1px solid black;"><?= $laptop['model'] ?></td> 
     <td style="width:150px; border:1px solid black;"><?= $laptop['cpu'] ?></td> 
     <td style="width:150px; border:1px solid black;"><?= $laptop['ram'] ?></td> 
     <td style="width:150px; border:1px solid black;"><?= $laptop['storage'] ?></td> 
     <td style="width:150px; border:1px solid black;"><?= $laptop['screen_size'] ?></td> 
     <td style="width:150px; border:1px solid black;"><?= $laptop['serial_number'] ?></td> 
     <td style="width:150px; border:1px solid black;"><?= $laptop['price'] ?></td> 
     <td style="width:150px; border:1px solid black;"><?= $laptop['last_image'] ?></td> 
     <td style="width:150px; border:1px solid black;"><?= $laptop['comment'] ?></td> 
     <td style="width:150px; border:1px solid black;"> 
      <button>Delete</button> 
      <button>Edit</button> 
     </td> 
    </tr> 
<?php endforeach; endif ?> 
</table> 

ヘッダーに基づいてテーブルの列の名前を推測しています。

インラインスタイルを使用する代わりに、外部スタイルシートを使用する方が良いでしょう。

関連する問題