PoMmZz
Messages postés28Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention 2 mai 2008
-
25 avril 2008 à 16:10
gibozsec
Messages postés318Date d'inscriptionmardi 27 mai 2003StatutMembreDernière intervention11 mars 2010
-
2 mai 2008 à 12:59
Bonjour à tous,
Voila j'ai un petit prob de script
dans mon fichier client.php j'ai ca:
<?php//-----------------------------------------------------
// Vérification 1 : est-ce qu'on veut ajouter un client ?
//-----------------------------------------------------
if (isset($_POST['nom'])) //AND isset($_POST['prenom']))
{
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
// On vérifie si c'est une modification de client ou pas
if ($_POST['id_cli'] == 0)
{
// Ce n'est pas une modification, on crée une nouvelle entrée dans la table
mysql_query("INSERT INTO client VALUES('', '" . $nom . "', '" . $prenom . "')");
}
else
{
// C'est une modification, on met juste à jour le nom et le prenom
mysql_query("UPDATE client SET nom='" . $nom . "', prenom='" . $prenom . "' WHERE id='" . $_POST['id_cli'] . "'");
}
}
if (isset($_GET['supprimer_client'])) // Si on demande de supprimer un client
{
mysql_query('DELETE FROM client WHERE id=\'' . $_GET['supprimer_client'] . '\'');
}
?>
Modifier |
Supprimer |
Num_client |
Nom |
Prenom |
<?php
$retour = mysql_query('SELECT * FROM client ORDER BY nom ASC');
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les les clients
{
?>
----
<?php
}// Fin de la boucle qui liste les clients
?>
dans un fichier add_client.php j'ai :
<?php
if (isset($_GET['modifier_client'])) // Si on demande de modifier un client
{
// On récupère les infos de la correspondante
$retour = mysql_query('SELECT * FROM client WHERE id=\'' . $_GET['modifier_client'] . '\'');
$donnees = mysql_fetch_array($retour);
// On place le nom et le prenom dans des variables simples
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$id_cli = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
}
else // C'est qu'on rajoute un nouveau client
{
// Les variables $nom et $prenom sont vides, puisque c'est une nouveau client
$nom = '';
$prenom = '';
$id_cli = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
}
?>
je ne comprend pas pourquoi qd je clique sur supprimer il ne supprime pas ma ligne dans le tableau alors qu'il me donne dans l'url clients.php?supprimer_client=2 et meme chose pour le modifer et ajouter il ne veux pas executer mes requetes... pourtant il veux bien afficher mes données de ma base....
Je susi peut etre pas clair mais c'est aps facile d'expliquer par forum :) desoler :)Si quelqu'un voit un erreur qu'il me le dise merci :)
ps: c'est juste un test biensur ma base client ne va pas contenir qu'un nom prenom et id :D
gibozsec
Messages postés318Date d'inscriptionmardi 27 mai 2003StatutMembreDernière intervention11 mars 2010 25 avril 2008 à 16:47
Je ne vois pas les connexions à la db dans ton script. Puisque tu dis que les données du select sont affichées j'imagine que tu ne l'a pas posté mais que tu fais la connexion ?
Est ce que tu peux donner la structure de la table 'client' pour voir si les requêtes sont correctes ?
PoMmZz
Messages postés28Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention 2 mai 2008 1 mai 2008 à 14:52
<?php
if (isset($_GET['modifier_client'])) // Si on demande de modifier un client
{
// On récupère les infos de la correspondante
$retour = mysql_query('SELECT * FROM client WHERE id=\'' . $_GET['modifier_client'] . '\'');
$donnees = mysql_fetch_array($retour);
// On place le nom et le prenom dans des variables simples
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$id_cli = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
}
else // C'est qu'on rajoute un nouveau client
{
// Les variables $nom et $prenom sont vides, puisque c'est une nouveau client
$nom = '';
$prenom = '';
$id_cli = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
}
?>
gibozsec
Messages postés318Date d'inscriptionmardi 27 mai 2003StatutMembreDernière intervention11 mars 2010 1 mai 2008 à 18:05
Ton code récupère des infos et initialise des variables. Il n'y a pas d'INSERT ou d'UPDATE. De plus tu parles d'input qui ne se remplissent pas et je ne vois pas d'input.
if (isset($_POST['nom'])) //AND isset($_POST['prenom']))
{
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
// On vérifie si c'est une modification de client ou pas
if ($_POST['id_cli'] == 0)
{
// Ce n'est pas une modification, on crée une nouvelle entrée dans la table
mysql_query("INSERT INTO client VALUES('', '" . $nom . "', '" . $prenom . "')");
}
else
{
// C'est une modification, on met juste à jour le nom et le prenom
mysql_query("UPDATE client SET nom='" . $nom . "', prenom='" . $prenom . "' WHERE id='" . $_POST['id_cli'] . "'");
}
}
il verifie si id_cli est a 1 si il est a 0 c'est un new enregistrement si pas c'est une update
les input je les ai pas mis en copiant le cade car l prob viens du php jpense :)
Ce lien renvoi sur la page add_client.php en lui passant en paramètre l'id du client à modifier (et uniquement cet id).
Dans la page add_client tu récupère cet id, mais aussi des donées en POST (nom et prénom). D'ou viennent elles ?
Tu me dis que l'update (ou l'insert) est fait dans le 1er fichier (client.php). Comment le lien est fait entre ces deux pages ? Pourquoi add_client ne fait pas l'insert ou l'update ?
En fait j'ai du mal à voir à quoi te sert add_client.php. C'est une page intermédiaire dans laquelle tu affiche les inputs pour ajouter/modifier le client et qui repasse ces valeurs à client.php ?
Si c'est bien ça, il est possible que tu n'arrive pas à afficher les noms et prénoms parce que tu essaye de lire en POST des données qui, apparement, n'y sont pas. Puisque tu fais un select, essaye de lire les données depuis le resultat de ta requête pour afficher les infos dans tes inputs.
PoMmZz
Messages postés28Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention 2 mai 2008 2 mai 2008 à 11:09
Enfaite c'est pas compliquer dans le add_client add client y'a les input.
et dans le clients.php y'a un tableau avec tout les clients... Sur la drotie du tableau j'ai mis des images a chaque ligne un e pour supprimer et l'autre pour editer.
Qd je clique sur surpprimer, ben il execute le
if (isset($_GET['supprimer_client'])) // Si on demande de supprimer un client
{
mysql_query('DELETE FROM client WHERE id=\'' . $_GET['supprimer_client'] . '\'');
}
quand je clique sur modifier, il verifie si id cli existe a ce moment la si il exite
<td class="imgtab2"><?php echo '[add_clients.php?modifier_client=' . $donnees['id'] . ' '; ?>]</td>
lui dit d'executer le
if (isset($_GET['modifier_client'])) // Si on demande de modifier un client ...
et qd je clique sur mon input submit ma form execute action="client.php"
et la il sais si c'est un modifier ou un nouveau client par rapport à l id si il est a 1 ou pas.
et dans mon add client si je clique juste sur le lien ajouter client la il devrait executer le insert into car c'est un nouveau client.
gibozsec
Messages postés318Date d'inscriptionmardi 27 mai 2003StatutMembreDernière intervention11 mars 2010 2 mai 2008 à 12:59
Donc si j'ai bien compris (corrige moi si je me trompe) :
Le lien "modifier" redirige vers le fichier add_client.php.
Ce fichier ne reçoit que l'id du client en paramètre (href="add_clients.php?modifier_client=' . $donnees['id'] . '), récupère les infos du client en base de données (SELECT * FROM client WHERE id=\'' . $_GET['modifier_client']) et affiche un formulaire pour modifier les infos.
Ce formulaire utilise client.php pour faire la modification en base de données. Client.php modifie le client puis affiche la liste de tous les clients.
---------------------------------
Ce qui semble étrange, comme je l'ai déjà dis, c'est que dans add_client.php tu essaye de récupèrer les nom et prénom en POST :
et ensuite créer tes input en leur donnant comme value, les variables nom, prénom, id_cli (ce que tu fais déjà j'imagine).
--------------------
Au passage, tu peux jetter un oeil à la syntaxe sql :
INSERT INTO table (liste_des_champs) VALUES (liste_des_valeurs)
ON DUPLICATE KEY UPDATE champ1=valeur1, champ2=valeur2...
Ca permet de faire un ajout et, si les données qu'on essaye d'entrer existent déjà, de faire une modification. En utilisant ça, tu peux te passer de vérifier s'il s'agit d'un ajout ou d'une modification.