Afficher plusieurs enregistrements après requête et n'en modifier qu'un seul

Eléphanteau du PHP | 41 Messages

08 août 2007, 20:17

Hello,

Je cherche un moyen de modifier une seule ligne d'un jeu d'enregistrement.

Voici la situation:
Je dispose d'une table PRODUIT qui contient les différents produit existant sur le marché.
Je dispose d'une table PRODUIT_CATALOGUE qui contient les produits qui sont présent dans la table PRODUIT ainsi que le fournisseur.
(Donc ma table PRODUIT_CATALOGUE peut contenir plusieurs fois le même enregistrement de PRODUIT.

Ce que j'ai pour l'instant:
Un formulaire qui affiche les produits après avoir fait une recherche. Il retourne les résultats sur la même page.

Ce que je cherche à faire:
Après avoir fait la recherche d'un produit sur PRODUIT, il se peut que le résultat contienne plusieurs lignes (ma recheche se base sur un %LIKE%).
Je voudrais pouvoir sélectionner une ligne afin de l'ajouter dans la table PRODUIT_CATALOGUE.
En récupérant cette ligne, je devrais pouvoir récupérer ces différents valeurs et y ajouter un fournisseur.

J'utilise cette méthode pour le formulaire de recherche:

Code : Tout sélectionner

<form method="post" action="<?php echo($_SERVER['PHP_SELF']); ?>">
Voici mon code qui affiche les données

Code : Tout sélectionner

<!-- ************************************************************************************************* Affichage de la liste - Rechercher ****************************************************************************************************--> <div class="SELECT_div"> Voici la liste des types disponibles : <br /> <?php $result=$connexion->query($query); $result->setFetchMode(PDO::FETCH_OBJ);//on dit que le resultat soit récupérable sous forme d'objet while($lig=$result->fetch()){//on récupère le liste des types echo $lig->PRO_LABEL.' ';//on affiche les types echo $lig->PRO_AUTEUR.' ';//on affiche les types echo $lig->PRO_TITRE.' ';//on affiche les types echo $lig->TYP_LABEL.'<br />';//on affiche les types } $result->closeCursor();//on ferme le curseur des résultats ?> </div> <!-- Fin Affichage de la liste - Rechercher ----------------------------------------------------- -->
Je pense que je bloque car le formulaire renvoie des données vers la même page (nécessaire pour réafficher les anciennes valeurs de recherche si elles ne sont pas toutes remplies). Je ne peux pas renvoyer l'ID d'une ligne de résultat vers un autre formulaire.

Quelqu'un aurait-il une idée de la marche à suivre?

Merci de votre aide.

Je crois avoir trouvé la solution. J'ajoute un lien qui contient l'identifiant du produit.

Code : Tout sélectionner

while($lig=$result->fetch()){//on récupère le liste des types echo $lig->PRO_ID.' ';//on affiche les types echo $lig->PRO_LABEL.' ';//on affiche les types echo $lig->PRO_AUTEUR.' ';//on affiche les types echo $lig->PRO_TITRE.' ';//on affiche les types echo $lig->TYP_LABEL.' ';//on affiche les types echo "<a href='2modif.php?reference=".$lig->PRO_ID."'>Ajouter au catalogue</a>";//<a href="2modif.php?reference=val2send">test</a> echo "<br />"; }