Cette question peut sembler similaire, mais veuillez comprendre mon problème. Dans ma page de mise à jour, je me suis trompé avec la méthode $_GET. Dans ma première page, j'ai donné un lien pour modifier le tableau comme celui-ci

Index.php

<?php
include_once("db.php");

    $result1 = mysqli_query($connect, "SELECT * FROM mrinsert WHERE userid='{$_SESSION['user_id']}'");
?>
 <?php 

        while($res = mysqli_fetch_array($result1)) {         
            echo "<tr>";
            echo "<td>".$res['bugta']."</td>";
            echo "<td>".$res['releaseta']."</td>";
            echo "<td>".$res['ccota']."</td>";    
            echo "<td><a href=\"mredit.php?mrinsertid=$res[mrinsertid]\">Edit</a> | <a href=\"mrdelete.php?mrinsertid=$res[mrinsertid]\" onClick=\"return confirm('Are you sure you want to delete?')\">Delete</a></td>";        
        }
        ?>

Ma page mredit.php s'affichant avec des valeurs existantes en utilisant mrinsertid. mais lorsque vous essayez de mettre à jour les valeurs, cela donne une erreur à cet endroit:

<?php
//getting id from url


$mrinsertid = $_GET['mrinsertid']; //ERROR Undefined index 

 //selecting data associated with this particular id
$result = mysqli_query($connect, "SELECT * FROM mrinsert WHERE mrinsertid=$mrinsertid"); //WARNING in this line

while($res = mysqli_fetch_array($result))
{
    $releaseta=$res['releaseta'];
    $keyta=$res['keyta'];
    $programleadsta=$res['programleadsta']; 
    $ccota=$res['ccota']; 
    $nextmilestonesta=$res['nextmilestonesta'];
    $bugta=$res['bugta'];
    $risksta=$res['risksta'];
    $summaryta=$res['summaryta'];

    ?>

Mon tout mredit.php:

<?php
// including the database connection file
include_once("db.php");

if(isset($_POST['update']))
{    
    $mrinsertid = mysqli_real_escape_string($connect,$_POST['mrinsertid']);
    $releaseta= mysqli_real_escape_string($connect,$_POST['releaseta']);    
    $keyta= mysqli_real_escape_string($connect,$_POST['keyta']);
    $programleadsta= mysqli_real_escape_string($connect,$_POST['programleadsta']);
    $ccota= mysqli_real_escape_string($connect,$_POST['ccota']);
    $nextmilestonesta= mysqli_real_escape_string($connect,$_POST['nextmilestonesta']);          
    $bugta= mysqli_real_escape_string($connect,$_POST['bugta']);
    $risksta= mysqli_real_escape_string($connect,$_POST['risksta']);
    $summaryta= mysqli_real_escape_string($connect,$_POST['summaryta']);







    // checking empty fields
    if(empty($releaseta) || empty($keyta) || empty($programleadsta)||empty($ccota) || empty($nextmilestonesta) || empty($bugta)|| empty($riskta) || empty($summaryta)) {            
        if(empty($releaseta)) {
            echo "<font color='red'>release field is empty.</font><br/>";
        }

        if(empty($keyta)) {
            echo "<font color='red'>Akey field is empty.</font><br/>";
        }

        if(empty($programleadsta)) {
            echo "<font color='red'>program field is empty.</font><br/>";
        }        
        if(empty($ccota)) {
            echo "<font color='red'>cco field is empty.</font><br/>";
        }

        if(empty($nextmilestonesta)) {
            echo "<font color='red'>nextmilestone field is empty.</font><br/>";
        }

        if(empty($bugta)) {
            echo "<font color='red'>bug field is empty.</font><br/>";
        } 
        if(empty($risksta)) {
            echo "<font color='red'>risk field is empty.</font><br/>";
        }

        if(empty($summaryta)) {
            echo "<font color='red'>summary field is empty.</font><br/>";
        } 
    } else {    
        //updating the table
        $result = mysqli_query($connect, "UPDATE mrinsert SET releaseta='$releaseta',keyta='$keyta',programleadsta='$programleadsta',ccota='$ccota',nextmilestonesta='$nextmilestonesta',bugta='$bugta',risksta='$risksta',summaryta='$summaryta' WHERE mrinsertid='$mrinsertid'");

        //redirectig to the display page. In our case, it is index.php
        header("Location: index.php");
    }
}

?>
<?php
//getting id from url


$mrinsertid = $_GET['mrinsertid'];

 //selecting data associated with this particular id
$result = mysqli_query($connect, "SELECT * FROM mrinsert WHERE mrinsertid=$mrinsertid");

while($res = mysqli_fetch_array($result))
{
    $releaseta=$res['releaseta'];
    $keyta=$res['keyta'];
    $programleadsta=$res['programleadsta']; 
    $ccota=$res['ccota']; 
    $nextmilestonesta=$res['nextmilestonesta'];
    $bugta=$res['bugta'];
    $risksta=$res['risksta'];
    $summaryta=$res['summaryta'];

    ?>

<html>
<head>    
    <title>Edit Data</title>
</head>
 <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
  <style>
  .wrap {
    position:relative;
    width:50px;
}
.wrap button {
    border:5px solid;
    position:absolute;
    top:50px;
    border-color:black;
    border-radius: 50%;
    margin-left:20px;
    display:block;
  height: 50px;
  width: 50px;
  background-color:green;

  }
  </style>
<body>
    <a href="index.php">Home</a>
    <br/>

    <form name="form1" method="post" action="mredit.php">

    <input type="text" name="mrinsertid" value=<?php echo $_GET['mrinsertid'];?> >
    <input type="submit" name="update" value="update">

<div id="MRtableDIV">
<table border="2">
<tr style="background-color:#80bfff">
<th style="width:8%"><center>Release</center></th>
<th style="width:5%"><center>Status</center></th>
<th style="width:6%"><center>Key</center></th>
<th style="width:15%"><center>Program Leads</center></th>
<th style="width:6%"><center>CCO Dates</center></th>
<th style="width:6%"><center>Next Milestones</center></th>
<th style="width:10%"><center>Bug Projection</center></th>
<th style="width:14%"><center>Risks</center></th>
<th style="width:20%"><center>Summary</center></th>
<tr>
<tr>
 <tr>
    <td><textarea name="releaseta" id="ReleaseTA" style="width:100%;height:200px;resize:none;background-color:#e6f2ff""><?php echo $res['releaseta'];?></textarea></td>
    <td>
    <div class="wrap">
    <button id="button1" value = "button" style= "color:white" onclick="setColor('button1', '#101010')";></button>
    </div>
    <textarea name="" id="StatusTA" style="width:100%;height:200px;resize:none;background-color:#e6f2ff"></textarea>
    </td>
    <td><textarea name="keyta" id="KeyTA" style="width:100%;height:200px;resize:none;background-color:#e6f2ff"><?php echo $res['keyta'];?></textarea></td>
    <td><textarea name="programleadsta" id="ProgramLeadsTA"  style="width:100%;height:200px;;resize:none;background-color:#e6f2ff"><?php echo $res['programleadsta'];?></textarea></td>
    <td><textarea name="ccota" id="CCOTA" style="width:100%;height:200px;resize:none;background-color:#e6f2ff"><?php echo $res['ccota'];?></textarea></td>
    <td><textarea name="nextmilestonesta" id="NextMilestonesTA" style="width:100%;height:200px;resize:none;background-color:#e6f2ff"><?php echo $res['nextmilestonesta'];?></textarea></td>
    <td><textarea name="bugta" id="BugTA" style="width:100%;height:200px;resize:none;background-color:#e6f2ff"><?php echo $res['bugta'];?></textarea></td>
    <td><textarea name="risksta" id="RisksTA" style="width:100%;height:200px;resize:none;background-color:#e6f2ff"><?php echo $res['risksta'];?></textarea></td>
    <td><textarea name="summaryta" id="SummaryTA" style="width:100%;height:200px;resize:none;background-color:#e6f2ff"><?php echo $res['summaryta'];?></textarea></td>
  </tr>
</tr>
</table>
</div>
    </form>
</body>
</html>
<?php
}
?>
0
arun aesthetix 25 nov. 2017 à 13:26

3 réponses

Meilleure réponse

Essayez ceci

Je viens de supprimer le { } et d'ajouter directement ".$_SESSION['user_id']; et de stocker la requête dans la variable qui s'appelle $result1.

$result1 = "SELECT * FROM mrinsert WHERE user_id=".$_SESSION['user_id'];
    $result = mysqli_query($conn, $result1);

    if (mysqli_num_rows($result) > 0) {
        // output data of each row
        while($res = mysqli_fetch_array($result)){
                echo "<tr>";
                echo "<td>".$res['bugta']."</td>";
                echo "<td>".$res['releaseta']."</td>";
                echo "<td>".$res['ccota']."</td>";    
                echo "<td><a href='mredit.php?mrinsertid=".$res['mrinsertid']."'>Edit</a></td>"; 
        }
    } 
    else {
        echo "0 results";
    }
    mysqli_close($conn);

mredit.php

echo $mrinsertid = $_GET['mrinsertid']; 
0
Naren Verma 25 nov. 2017 à 11:31

Le problème est que lors du premier appel de "mredit.php", vous utilisez une requête GET puisque vous avez cliqué sur un lien <a href>. Dans ce cas, votre $_GET['mrinsertid'] sera défini sur la valeur définie dans l'URL. Dans votre deuxième appel de "myedit.php", vous utilisez une requête POST telle que définie dans votre formulaire avec l'attribut method="post". Par conséquent, la valeur n'est pas dans $_GET[] mais dans $_POST[] à la place.

Il existe plusieurs solutions pour résoudre ce problème:

  1. Utilisez $_REQUEST au lieu de $_GET. Le $_REQUEST tableau est une fusion du {{ X3}}, $_POST et $_COOKIE, donc peu importe si la valeur provient de l'URL ou d'un formulaire HTML (envoi via une requête POST).
  2. Remplacez l'attribut method= de votre balise <form> par GET pour l'envoyer en tant que requête GET. Cependant, vous ne le faites généralement pas car les formulaires HTML doivent être envoyés via une requête POST pour diverses raisons.
  3. Ajoutez la valeur mrinsertid à l'URL dans l'attribut action= de votre balise <form>. De cette façon, la valeur de mrinsertid est dans $_GET, mais les données du formulaire seront toujours dans $_POST.
0
Progman 25 nov. 2017 à 13:57

Supprimez la partie action du formulaire et cela fonctionnera correctement. Entre les deux, n'oubliez pas de convertir la valeur en entier avant de l'utiliser. Utilisez également des instructions de préparation chaque fois que vous le pouvez.

0
Pradeesh Kumar 25 nov. 2017 à 10:29
47484894