2016-04-27 57 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

我更新了代码,但这仍然不起作用。感谢您花时间审查:) –

相关问题