Probleme MySQL/Php
sango69780
Messages postés
44
Date d'inscription
Statut
Membre
Dernière intervention
-
sango69780 Messages postés 44 Date d'inscription Statut Membre Dernière intervention -
sango69780 Messages postés 44 Date d'inscription Statut Membre Dernière intervention -
Bonjours à tous,
je vous expose mon soucis.
J'ai crée en html/php, une sorte de tableau qui se met à jours automatiquement lorsque l'on rajoute un champs dans une table précise de ma base de donnée.
Voici un petit apperçu :
[url]http://sango69780.ifrance.com/images/Forum.jpg[/url]
Mon soucis est le suivant:
J'aimerais, par exemple, que lorsque je clique sur la corbeille (pour supprimer) de la ligne ou est 'Productions Vegetales', que cet enregistrement soit effacé de ma base de donnée. Idem pour voir, j'aimerais que ça affiche l'enregistrement qui correspond à la ligne sur lequel on a cliquer sur le bouton, et de même piur modifier.
Cependant, je ne voie pas du tout comment savoir sur quel bouton on a appuyé, c'est-à-dire, à quel champs il appartient ...
Si je clique sur la corbeille de la ligne 'Productions Vegetales', je ne voie pas comment savoir qu'il s'agit de cette ligne, et non d'une autre.
Je ne sais pas si je me suis bien expliqué.
Bref, si quelqu'un pourrait me donner quelques tuyaux, je suis preneur!
En vous remerciant.
Cordialement.
je vous expose mon soucis.
J'ai crée en html/php, une sorte de tableau qui se met à jours automatiquement lorsque l'on rajoute un champs dans une table précise de ma base de donnée.
Voici un petit apperçu :
[url]http://sango69780.ifrance.com/images/Forum.jpg[/url]
Mon soucis est le suivant:
J'aimerais, par exemple, que lorsque je clique sur la corbeille (pour supprimer) de la ligne ou est 'Productions Vegetales', que cet enregistrement soit effacé de ma base de donnée. Idem pour voir, j'aimerais que ça affiche l'enregistrement qui correspond à la ligne sur lequel on a cliquer sur le bouton, et de même piur modifier.
Cependant, je ne voie pas du tout comment savoir sur quel bouton on a appuyé, c'est-à-dire, à quel champs il appartient ...
Si je clique sur la corbeille de la ligne 'Productions Vegetales', je ne voie pas comment savoir qu'il s'agit de cette ligne, et non d'une autre.
Je ne sais pas si je me suis bien expliqué.
Bref, si quelqu'un pourrait me donner quelques tuyaux, je suis preneur!
En vous remerciant.
Cordialement.
A voir également:
- Probleme MySQL/Php
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Expert php pinterest - Télécharger - Langages
- Php alert - Forum PHP
- Mysql a répondu : documentation connexion impossible : paramètres incorrects. - Forum Bases de données
3 réponses
La réponse à votre question est plus compliquée qui’il n’y paraît si l’on veut être précis.
Elle fait appel à plusieurs notions :
- créer des liens génériques automatiquement avec association de paramètres
- manipulation des données globales de type $_GET[], $_SESSION[]
- manipulation de données type tableau (array[])
- manipulation des variables de session
l’idée proposée est la suivante.
Les informations issues de MySQL qui seront affichées doivent être stockées dans un tableau dynamique.
L’indice de chaque élément de tableau servant par la suite de paramètre.
Les liens générés pour action ultérieur voir, modifier, supprimer doivent être de la forme par exemple
<a href=document.php ?choix=nomAction&objet=indice><image src=nomAction.jpg></a>
nomAction prenant les valeurs suivantes : voir, modifier, supprimer
objet=indice indice prenant la valeur de l’indice correspondant dans le tableau précédemment décrit
ensuite dans le programme document.php il faut intercepter l’action choisi et l’objet sélectionné
par exemple
$actionInternaute = isset($_GET[‘choix’]) ? $_GET[‘choix’] : « valeur par defaut » ; // utliser de l’opérateur ternaire equibvalent de if else
$objetChoisiParInternaute=isset($_GET[‘objet’]) ? $_GET[‘objet’] : NULL ; // mettre 0 à la place de NULL est risqué car 0 est un indice possible dans un tableau
ensuite il faut traiter dans le programme en fonction du contenu de $actionInternaute et $objetChoisiParInternaute
prealablement il faudra stocker dans une variable de session le contenu du tableau dont nous avons évoque la présence plus haut. En effet, entre deux appels de la page, il faut pouvoir conserver des données dur les obkets que l’on manipule.
Remarque, certain diront qu’il suffirait pour eviter de manipuler des variables de session d’utiliser directement e contenu d’un champ identiant unique (Primarey Key en MySql), c’est cela fonctionne mais :
Cela permettrait à l’internaute de lancer une action sur un objet non afficher dans la page puisque’il lui suffirait de construire dans la barre d’adresse une commande du genre
Http://www.votresite.com/document.php ?choix=detruireaobjet=idOBjetDansTableSQL
Et du coup il pourrait detruire un objet de la tbale ne lui appartenant pas.
Voilà un début de réponse.
Après n entre dans un cours de programmation de plusieurs heures, voir de plusieurs journées en fonction du niveau de connaissance initial.
Toutefois il existe de bon tutoriaux un peu partout
Et aussi de très bons ouvrages dont je tairait le nom, le forum n’étant pas un espace de Pub…
Cordianelement
https://www.actonis.fr/
Elle fait appel à plusieurs notions :
- créer des liens génériques automatiquement avec association de paramètres
- manipulation des données globales de type $_GET[], $_SESSION[]
- manipulation de données type tableau (array[])
- manipulation des variables de session
l’idée proposée est la suivante.
Les informations issues de MySQL qui seront affichées doivent être stockées dans un tableau dynamique.
L’indice de chaque élément de tableau servant par la suite de paramètre.
Les liens générés pour action ultérieur voir, modifier, supprimer doivent être de la forme par exemple
<a href=document.php ?choix=nomAction&objet=indice><image src=nomAction.jpg></a>
nomAction prenant les valeurs suivantes : voir, modifier, supprimer
objet=indice indice prenant la valeur de l’indice correspondant dans le tableau précédemment décrit
ensuite dans le programme document.php il faut intercepter l’action choisi et l’objet sélectionné
par exemple
$actionInternaute = isset($_GET[‘choix’]) ? $_GET[‘choix’] : « valeur par defaut » ; // utliser de l’opérateur ternaire equibvalent de if else
$objetChoisiParInternaute=isset($_GET[‘objet’]) ? $_GET[‘objet’] : NULL ; // mettre 0 à la place de NULL est risqué car 0 est un indice possible dans un tableau
ensuite il faut traiter dans le programme en fonction du contenu de $actionInternaute et $objetChoisiParInternaute
prealablement il faudra stocker dans une variable de session le contenu du tableau dont nous avons évoque la présence plus haut. En effet, entre deux appels de la page, il faut pouvoir conserver des données dur les obkets que l’on manipule.
Remarque, certain diront qu’il suffirait pour eviter de manipuler des variables de session d’utiliser directement e contenu d’un champ identiant unique (Primarey Key en MySql), c’est cela fonctionne mais :
Cela permettrait à l’internaute de lancer une action sur un objet non afficher dans la page puisque’il lui suffirait de construire dans la barre d’adresse une commande du genre
Http://www.votresite.com/document.php ?choix=detruireaobjet=idOBjetDansTableSQL
Et du coup il pourrait detruire un objet de la tbale ne lui appartenant pas.
Voilà un début de réponse.
Après n entre dans un cours de programmation de plusieurs heures, voir de plusieurs journées en fonction du niveau de connaissance initial.
Toutefois il existe de bon tutoriaux un peu partout
Et aussi de très bons ouvrages dont je tairait le nom, le forum n’étant pas un espace de Pub…
Cordianelement
https://www.actonis.fr/
Bonjour,
Lorsque tu affiche ton tableau, tu dois certainement boucler sur une requete de sélection sur ta base afin d'afficher les différents thèmes.
Dans ta requête, si ce n'est pas fais, je te conseille de récupérer l'identifiant du thème, et de l'associé aux boutons de chaque ligne.
A partir de là tu as deux solutions, la plus simple est de faire un mini formulaire pour chaque ligne incluant deux boutons submit (l'un pour visionner, l'autre pour supprimer). Ainsi quand tu clique sur l'un des boutons, un script de traitement (visionner ou supprimer) est appellé (à développer donc).
L'autre solution un peu plus technique consiste à faire appel à l'ajax via les objets XmlHttpRequest de javascript :
Pour chaque bouton tu lui associe une action onclick="mafonction(mon_identifiant)". Cette fonction javascript doit faire appel à un script php de traitement qui s'effectuera donc en arriere plan (transparent pour l'utilisateur) et qui raffraichira ensuite ta page selon que l'utilisateur aura cliqué sur voir ou supprimer.
Lorsque tu affiche ton tableau, tu dois certainement boucler sur une requete de sélection sur ta base afin d'afficher les différents thèmes.
Dans ta requête, si ce n'est pas fais, je te conseille de récupérer l'identifiant du thème, et de l'associé aux boutons de chaque ligne.
A partir de là tu as deux solutions, la plus simple est de faire un mini formulaire pour chaque ligne incluant deux boutons submit (l'un pour visionner, l'autre pour supprimer). Ainsi quand tu clique sur l'un des boutons, un script de traitement (visionner ou supprimer) est appellé (à développer donc).
L'autre solution un peu plus technique consiste à faire appel à l'ajax via les objets XmlHttpRequest de javascript :
Pour chaque bouton tu lui associe une action onclick="mafonction(mon_identifiant)". Cette fonction javascript doit faire appel à un script php de traitement qui s'effectuera donc en arriere plan (transparent pour l'utilisateur) et qui raffraichira ensuite ta page selon que l'utilisateur aura cliqué sur voir ou supprimer.
Merci beaucoup de vos deux réponses!
Je suis débutant complet en PHP, mais j'ai compris le principes de ce que vous me dites, je pense, que c'est le plus important !
Je vais donc réfléchir dessus car, c'est vrai, je n'avais vraiment aucune idée de comment on pouvait faire ceci!
Je vous remercie encore une fois.
Cordialement.
Je suis débutant complet en PHP, mais j'ai compris le principes de ce que vous me dites, je pense, que c'est le plus important !
Je vais donc réfléchir dessus car, c'est vrai, je n'avais vraiment aucune idée de comment on pouvait faire ceci!
Je vous remercie encore une fois.
Cordialement.