J'aurais besoin de votre aide.
Dans ma table commande, j'aimerais, via un tableau, faire des modifications, sans que tous les champs ne soit changer (càd que les champs que je n'ai pas changer ne soit pas écraser par "rien").
J'ai donc décidé de préremplir mes champs en allant récupérer ce qu'il y a dans ma base de données.
Seulement, quand je clique sur modifier, il me dit que les index de chaque champs sont indéfinis
" Notice: Undefined index: name_client in ..." il me le fait pour chaque champs
Voici quelques bouts de code.
ceci est pas page d'affichage des commandes avec la possibilité de les changer.
Code : Tout sélectionner
<?php
session_start();
//on vérifie si l'utilisateur est un admin et s'il est connecté
if (!isset($_SESSION['id']))
{
// l'utilisateur est renvoyé vers la page index
header('refresh:0;url=index.php');
}
elseif ($_SESSION['admin'] == 0)
{
// l'utilisateur est renvoyé vers la page index
header('refresh:0;url=index.php');
}
include_once('lib/php/fonction.php');
include_once('meta_header.php');
include_once('nav.php');
?>
<title>admin</title>
</head>
<body>
<div id="content">
<div>
<?php
$conetenu="";
//on se connecte
$connection = connectBD();
if($connection)
{
//requête de sélection
$requête = 'SELECT * FROM orders';
$resultats = $connection->query($requête);
if($resultats->rowCount()>0)
{
//création d'une table
echo '
<table class="profil" >
<td class="noir" >N° de commande <b>(id)</b></td>
<td class="noir">ID du Client <b>(id_client)</b></td>
<td class="noir" id="name_client">nom du client <b>(name_client)</b></td>
<td class="noir">Type de commande </td>
<td class="noir">Description de la commande <span style="color:#17212F;">jdbfbqjhqbfjhqerbvjhbeqjhbezlJHBFHKEBF<span> </td>
<td class="noir">Niveau de la commande <span style="color:#17212F;">jdbfbqjhqbfjFHKEBF<span> </td>
<td class="noir">Valeur Briefing </td>
<td class="noir">Valeur envoi C.H. </td>
<td class="noir">Valeur accord C.H. </td>
<td class="noir">Valeur Design </td>
<td class="noir">Valeur Production </td>
<td class="noir">Valeur Livraison </td>
<td class="noir">Valeur Facture </td>
<td class="noir">Facture </td>
<td class="noir">Date </td>
<td class="noir">Modifier </td>
<td class="noir">Effacer </td>';
//boucle pour récupérer les données
foreach ($resultats as $key)
{
$name_client = $key['name_client'];
//affichage de la commande
echo '<form method="GET"><tr>
<legend>
<td>'.$key['id'].'</td>
<td>'.$key['id_client'].' </td>
<td>'.$key['name_client'].'
<label id="name_client" for="name_client"></label>
<input id="name_client" style="" type="text" name="name_client" value="'.$name_client.'" >
</td>
<td>'.$key['orderType'].'
<select id="orderType" name="orderType" tabindex="3">
<option value="'.$key['orderType'].'" selected>'.$key['orderType'].'</option>
<option value="web">WEB</option>
<option value="print">PRINT</option>
<option value="strategie">STRATEGIE</option>
<option value="design">DESIGN</option>
<option value="all">PACKAGE : WEB - PRINT - STRATEGIE - DESIGN</option>
</select>
</td>
<td>'.$key['orderDescr'].' <textarea id="orderDescr" name="orderDescr" spellcheck="true" rows="3" cols="50" >'.$key['orderDescr'].'</textarea></td>
<td>'.$key['orderLevel'].'
<select id="orderLevel" name="orderLevel" tabindex="3">
<option value="'.$key['orderLevel'].'" selected>'.$key['orderLevel'].'</option>
<option value="Briefing">Briefing</option>
<option value="EnvoiCH">Envoi du cahier des charges</option>
<option value="AcceptCH">Acceptation du cahier des charges</option>
<option value="design">Réalisation du design/visuel</option>
<option value="production">En production</option>
<option value="livraison">Facturation</option>
</select>
</td>
<td>'.$key['briefingValue'].'%
<input type="text" id="briefingValue" name="briefingValue" value="'.$key['briefingValue'].'" maxlength="200" placeholder=" %" style=" ">
</td>
<td>'.$key['envoiChValue'].'%
<input type="text" id="envoiChValue" name="envoiChValue" value="'.$key['envoiChValue'].'" maxlength="200" placeholder=" %" style="">
</td>
<td>'.$key['okChValue'].'%
<input type="text" id="okChValue" name="okChValue" value="'.$key['okChValue'].'" maxlength="200" placeholder=" %" style="">
</td>
<td>'.$key['designValue'].'%
<input type="text" id="designValue" name="designValue" value="'.$key['designValue'].'" maxlength="200" placeholder=" %" style="">
</td>
<td>'.$key['prodValue'].'%
<input type="text" id="prodValue" name="prodValue" value="'.$key['prodValue'].'" maxlength="200" placeholder=" %" style=" ">
</td>
<td>'.$key['livraisonValue'].'%
<input type="text" id="livraisonValue" name="livraisonValue" value="'.$key['livraisonValue'].'" maxlength="200" placeholder=" %" style="">
</td>
<td>'.$key['facturValue'].'%
<input type="text" id="facturValue" name="facturValue" value="'.$key['facturValue'].'" maxlength="200" placeholder=" %" style="">
</td>
<td>'.$key['facturationData'].'
<input type="text" name="facturationData" value="'.$key['facturationData'].'" placeholder="facture" id="facturationData">
</td>
<td>'.$key['date'].'</td>
<td><a alt="modifier" href="adminTRTchange.php?action=2&id='.$key['id'].'"" ><img syle="float:right;" src="img/change.png"></a> </td>
<td><a alt="Supprimer" href="orderTRT.php?action=1&id='.$key['id'].'"" ><img syle="float:right;" src="img/delete.png"></a> </td>
</legend>
</tr>';
}
echo'</table>
</form>';
}
}
else{
$contenu = '<erreur>Erreur : Impossible de se connecter à la BD, veuillez contacter votre administrateur!</erreur>';
}
?>
</div>
<!--fin de la DIV content -->
</div>
<?php
include_once('script_js.php');
?>
<script type="text/javascript">
</script>
</body>
</html>Code : Tout sélectionner
<?php
//on lance la session
session_start();
include_once('lib/php/fonction.php');
include_once('meta_header.php');
//quand on appuie sur inscrire
if(isset($_GET['action']) && isset($_GET['id'])){
//le contenu est vide
$contenu="";
//on récupère les données entrées par l'administrateur
$id = $_GET['id'];
$name_client = $_GET['name_client'];
$orderType = $_POST['orderType'];
$orderDescr = $_POST['orderDescr'];
$orderLevel = $_POST['orderLevel'];
$briefingValue = $_POST['briefingValue'];
$envoiChValue = $_POST['envoiChValue'];
$okChValue = $_POST['okChValue'];
$designValue = $_POST['designValue'];
$prodValue = $_POST['prodValue'];
$livraisonValue = $_POST['livraisonValue'];
$facturValue = $_POST['facturValue'];
$facturationData = $_POST['facturationData'];
if($_GET['action'] == 2){
//on se connecte
$connection = connectBD();
$req = $connection->query('SELECT * FROM orders WHERE id ="'.$id.'"');
if($donnee=$req->fetch())
{
echo '<red>Le numéro de commande existe!</red>';
//on se connecte
$connection = connectBD();
// si on se connecte
if($connection){
try{
//on tente d'executer les requetes suivantes dans une transaction
//on lance la transaction
$connection->beginTransaction();
//si connection on prépare la requête
$connection->exec('UPDATE orders SET name_client = "'.$name_client.'" WHERE id='.$_GET['id']);
$connection->exec('UPDATE orders SET orderType = '.$orderType.' WHERE id='.$_GET['id']);
$connection->exec('UPDATE orders SET orderDescr = "'.$orderDescr.'" WHERE id='.$_GET['id']);
$connection->exec('UPDATE orders SET orderLevel = "'.$orderLevel.'" WHERE id='.$_GET['id']);
$connection->exec('UPDATE orders SET briefingValue = "'.$briefingValue.'" WHERE id='.$_GET['id']);
$connection->exec('UPDATE orders SET envoiChValue = "'.$envoiChValue.'" WHERE id='.$_GET['id']);
$connection->exec('UPDATE orders SET okChValue = "'.$okChValue.'" WHERE id='.$_GET['id']);
$connection->exec('UPDATE orders SET designValue = "'.$designValue.'" WHERE id='.$_GET['id']);
$connection->exec('UPDATE orders SET prodValue = "'.$prodValue.'" WHERE id='.$_GET['id']);
$connection->exec('UPDATE orders SET livraisonValue = "'.$livraisonValue.'" WHERE id='.$_GET['id']);
$connection->exec('UPDATE orders SET facturValue = "'.$facturValue.'" WHERE id='.$_GET['id']);
$connection->exec('UPDATE orders SET facturationData = "'.$facturationData.'" WHERE id='.$_GET['id']);
//si jusque là tout va bien, on valide la transaction
$connection->commit();
unset( $connection );
$contenu = $name_client.'<red>Votre commande '.$_GET['id'].' a été modifiée avec succès!</red>';
echo $name_client;
//on renvoie à la page pour remplir le formulaire de commentaire
//header('refresh:3; url=order.php');
}//si erreur
catch(PDOException $e){
//on annule la transaction
$connection->rollback;
//on affiche les erreurs
$contenu = '<red> Erreur: Erreur lors de la requête, veuillez contacter votre administrateur!</red></br>';
$contenu .= '<red>Erreur: '.$e->getMessage().'</red></br>';
$contenu .= '<red>Erreur:'.$e->getCode().'</red></br>';
//on quitte, on arrête l'execution q'il y a du code après
exit();
}
}else{
$contenu = '<red>ERREUR : Impossible de se connecter à la BD, Veuillez contacter votre administrateur!</red><br>';
}
}else{
echo "<red>cette commande n\'existe pas dans la base de données!</red>";
}
}
?>
<title>adminTRTorder</title>
<div id="content">
<?php
echo $contenu;
?>
</div>
<?php
}
?>Est ce dû au fait que mes champs soient dans un foreach ou soit des $key['value']?????
Merci beaucoup pour votre intéret et votre aide!!
Fatiha