2016-04-27 10 views
2

テーブルを生成し、SQLデータベースからデータを要求し、テーブルにデータを格納するPHPに問題があります。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 []ドロップダウンIDを保存するために始めたが、私は「はわからないんだけどそれは正しいことです。 最後に、自分のボタンをcode属性にリンクし、code属性を使用してSQLクエリでその行を削除したいとします。

私はこれを初めて使っています...申し訳ありません。

UPDATE:mikrafizikへ :

私はあなたの答えをしようとしたが、それは動作しません。 。。私はそれはHREFに問題があるseemsiが、私はただ、なぜ見つけることができない「1」> Supprimer」を取得 私は私が忘れてしまったのか分からないので、あなたは間違って何か見た場合:

<?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に一意の識別子を追加します。リンクにパラメータを渡します。ですから、基本的には、URLはdelete.phpのように見えますか?id = 1 –

+0

ありがとう、私はURLでパラメータを渡すことについて読んでいますが、それを行う方法を知らなかった。 –

答えて

1

、その

$data = mysqli_fetch_array($result) 

等分割クエリとフォームの建物

そして、あなたのmodif.phpに

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

ありがとう!私はそれを試してみよう! このように分割する方が意味があります。 –

+0

これは良くなっているようですが、うまく動作しません。あなたがそれを見ることができるなら、私はそれについて答えました...まあ、ありがとう。 –

0

(私は私のために、低担当者のコメントすることはできませんことを懸念Flumble_の答え、)

はたぶん<?= ?>は問題です。 <?php ?>

UPDATEとそれらを交換してみてください:

また、短いオープンタグ(<? ?>)を使用しないでください: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

コードを更新しましたが、これはまだ動作しません。レビューをする時間を割いていただきありがとうございます:) –

関連する問題