2016-04-27 30 views
2

我的php有問題,生成一個表,從SQL數據庫請求數據,並將數據存儲在表中。添加和訪問PHP生成的表中的按鈕ID

表格中每一行的第一個單元格包含一個下拉按鈕,該按鈕鏈接到刪除該行的delete.php腳本。它還鏈接到一個用於修改行的單元格的modif.php腳本。 我的問題是,我需要訪問帶有ID的下拉按鈕,以知道要刪除哪一行。

我真的不知道如何將我的下拉按鈕與ID鏈接,並在我的腳本中訪問它們。

下面的代碼:

<?php 
    $con=mysqli_connect("localhost","root","icare","icare1"); 
    // Check connection 
    if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

    $result = mysqli_query($con,"SELECT * FROM magasin"); 

    echo "<table border='1'> 
    <tr> 
    <th>code</th> 
    <th>ip</th> 
    <th>ads</th> 
    <th>region</th> 
    <th>adress</th> 
    <th>name</th> 
    <th>email</th> 
    <th>number</th> 
    <th>gtc</th> 
    <th>date</th> 
    </tr>"; 

    $indexB = array(); 
    $i = 0; 
    while($row = mysqli_fetch_array($result)) 
    { 
    echo "<tr>"; 
    echo "<td> 
      <div class='dropdown'> 
      <button id=$indexB[$i] class='dropbtn'>▶</button> 
      <div class='dropdown-content'> 
       <a href='modif.php'>Modifier</a> 
       <a href='delete.php'>Supprimer</a> 
      </div> 
      ".$row['code']." 
      </div> 
    </td>"; 

    echo "<td><div>" . $row['ip'] . "</div></td>"; 
    echo "<td><div>" . $row['ads'] . "</div></td>"; 
    echo "<td><div>" . $row['region'] . "</div></td>"; 
    echo "<td><div>" . $row['adress'] . "</div></td>"; 
    echo "<td><div>" . $row['name'] . "</div></td>"; 
    echo "<td><div>" . $row['email'] . "</div></td>"; 
    echo "<td><div>" . $row['number'] . "</div></td>"; 
    echo "<td><div>" . $row['gtc'] . "</div></td>"; 
    echo "<td><div>" . $row['date'] . "</td>"; 
    echo "</tr>"; 
    $i++; 
    } 
    echo "</table>"; 
    mysqli_close($con); 
?> 

這裏是delete.php:

<?php 
    $connection = mysqli_connect("localhost", "root", "icare", "icare1"); 
    if($connection === false){ 
     die("Connection failed " . mysqli_connect_error()); 
    }; 


    //$id = 
    $sql = "DELETE FROM magasin WHERE Code=".$id; 

    //$result = mysqli_query($connection,$sql); 

    if(mysqli_query($connection, $sql)){ 
     echo "Done !"; 
    } else{ 
     echo "Failed : $sql. " . mysqli_error($connection); 
    } 
    mysqli_close($connection); 
?> 

我開始一個indexB []存儲的下拉菜單標識,但我不知道我」米做對了。 最後我想將我的按鈕鏈接到代碼屬性,然後使用代碼屬性刪除與我的SQL查詢行。

我是新來的,所以...對不起,如果我做了或要求一些簡單的愚蠢。

UPDATE: 要mikrafizik:

我想你的答案,但它不工作。我只得到「1」> Supprimer」這seemsi有在href的一個問題,但我只是無法找到爲什麼 我不知道是什麼我忘了,所以如果你看到一些錯誤:。

<?php 
    $con=mysqli_connect("localhost","root","icare","icare1"); 
    // Check connection 
    if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

    $result = mysqli_query($con,"SELECT * FROM magasin"); 

    echo "<table border='1'> 
    <tr> 
    <th>Code</th> 
    <th>Adresse IP</th> 
    <th>Adresse ADS</th> 
    <th>Région</th> 
    <th>Adresse</th> 
    <th>Nom du directeur</th> 
    <th>Mail</th> 
    <th>Téléphone</th> 
    <th>GTC</th> 
    <th>Date d'installation</th> 
    </tr>"; 

$data = mysqli_fetch_array($result); 
?> 

    <table> 
<?php foreach ($data as $key => $row):?> 
<tr> 
<td> 
    <div class='dropdown-content'> 
     <button class='dropbtn'>▶</button> 
      <!-- <a href="modif.php?id=<?=$row['id']?>">Modifier</a> --> 
      <a href="delete.php?id=<?php echo $row['id']?>">Supprimer</a> 
    </div> 
</td> 
<td><div><?php echo $row['AdresseIP'];?></div></td> 
<td><div><?php echo $row['AdresseADS'];?></div></td> 
<td><div><?php echo $row['Region'];?></div></td> 
<td><div><?php echo $row['Adresse'];?></div></td> 
<td><div><?php echo $row['NomDirecteur'];?></div></td> 
<td><div><?php echo $row['Mail'];?></div></td> 
<td><div><?php echo $row['Tel'];?></div></td> 
<td><div><?php echo $row['Gtc'];?></div></td> 
<td><div><?php echo $row['DateInstall'];?></td> 
</tr> 
<?php endforeach; ?> 
</table> 

<?mysqli_close($con);?> 

delete.php:

<?php 
    $connection = mysqli_connect("localhost", "root", "icare", "icare1"); 
    if($connection === false){ 
     die("Connexion échouée " . mysqli_connect_error()); 
    }; 

    $id = $_GET['id']; 
    $sql = "DELETE FROM magasin WHERE Code=".$id; 

    $result = mysqli_query($connection,$sql); 

    if($result){ 
     echo "Enregistrement réussi !"; 
    } else{ 
     echo "Enregistrement échoué : $sql. " . mysqli_error($connection); 
    } 
    mysqli_close($connection); 
?> 
+0

只需添加唯一標識符鏈接的URL從該行刪除。通過鏈接傳遞參數。所以基本上這個網址會看起來像delete.php?id = 1 –

+0

謝謝,我讀了關於在URL中傳遞參數,但不知道如何去做。 –

回答

1

起初,除查詢和形式的建築一樣,

$data = mysqli_fetch_array($result) 

然後

<?php foreach ($data as $key => $row): ?> 
<tr> 
<td> 
    <div class='dropdown-content'> 
      <a href='modif.php?id=<?=$row['id']?>'>Modifier</a> 
      <a href='delete.php?id=<?=$row['id']?>'>Supprimer</a> 
    </div> 
</td> 
</tr> 
<?php endforeach ?> 

而在你modif.php

$id = $_GET['id']; 
+0

非常感謝!我會嘗試的! 這樣劃分更有意義。 –

+0

好吧,這似乎是更好,但我不能得到它的工作。我回答了一下,如果你能看看它的話......好的,謝謝。 –

0

(參與討論Flumble_的回答,我不能因爲我的低代表的意見)

也許<?= ?>都是問題。試着用<?php ?>

更新替換它們:

你也永遠不應該使用短開放標籤(<? ?>):見the answer to this question

此外,當您編寫<?php $row['id'] ?>時,您不打印該值。你必須寫<?php echo $row['id']; ?>。 同樣的事情適用於短打開標籤(但不適用於<?=語法)。

希望這有助於進一步。我會繼續檢查你的代碼。

更新2:

好吧我想我明白了。 mysqli_fetch_array返回一個,而不是整個結果集。所以,你通過行,直到mysqli_fetch_array返回NULL必須循環:

while($data = mysqli_fetch_array($result)) { 

    ?> 
    <tr> 
     <!-- ... --> 
    </tr> 
    <?php 
} 
+0

確定它更好,但不能解決問題:/ –

+0

非常感謝。我會嘗試更改! –

+0

我更新了代碼,但這仍然不起作用。感謝您花時間審查:) –