2017-07-30 46 views
0

我是新來的PHP,需要一些幫助,請。我想要一個簡單的php表內while循環,加或減

我想創建一個簡單的PHP while循環。 循環內我想能夠添加或減去值。

我的代碼似乎正在做我想做的,除了我不知道要在$count變量中放什麼。

目的是具有一個表,該表內添加或減去的5

值這是我的代碼。

<?php 

    if ($result->num_rows > 0) { 

     while ($row = $result->fetch_assoc()) { 

      echo "<tr>"; 
      echo "<td>" . $row["id"] . "</td>"; 
      echo "<td>" . $row["userName"] . "</td>"; 
      echo "<td>" . $row["email"] . "</td>"; 
      echo "<td>" . $row["balance"] . "</td>"; 

      $count = $row["id"]; 

      ?> 
      <td> 
       <form name="form" method="post" action=""> 
        <input type="submit" name="add" value="+"> 
        <input type="submit" name="subtract" value="-"> 
        <?php 

        if (isset($_POST['add'])) { 
         $sql2 = "UPDATE users SET balance = balance + 5 where id = $count "; 
         $result2 = $conn->query($sql2); 
        } 
        if (isset($_POST['subtract'])) { 
         $sql2 = "UPDATE users SET balance = balance - 5 where id = $count"; 
         $result2 = $conn->query($sql2); 
        } 

        echo $row["id"]; 
        ?> 

       </form> 
      </td> 


      </tr> 

      <?php 
     } 
    } else { 
     echo "0 results"; 
    } 

    ?> 

回答

0

您必須將行id發回到php腳本,而不僅僅是操作'add'或'subtract'。您可以通過您要更新的標識來標識該行。該代碼將是這個樣子:

if (isset($_POST['id'], $_POST['add'])) { 
    $stmt = $conn->prepare('UPDATE users SET balance = balance + 5 WHERE id = ?'); 
    if (!$stmt) { 
     die('Prepare failed: '.$conn->error); 
    } 
    $stmt->bindParam('d', $_POST['id']); 
    $result = $stmt->execute(); 
    if (!$result) { 
     die('Execute failed: '.$stmt->error); 
    } 
} 
if (isset($_POST['id'], $_POST['substract'])) { 
    // ... 
} 

您while循環之前添加此代碼,並從while循環中刪除現有的查詢的東西。

+0

嘿,那裏。感謝你的回答。仍然掙扎了一下,但會與你提供的東西一起工作。 –