:: Easy-Script.com :: Index du Forum

Votre bannière ici !

 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 RSS : Les 20 dernières discussions des forums d'Easy-Script.nom RSS   ProfilProfil   Messages PrivésMessages Privés   ConnexionConnexion 

Poster un nouveau sujet  Répondre au sujet
AIDE: Modification des infos d'une table
Karaskal


Inscrit le: 17 Mar 2006
Messages: 5
Répondre en citant
bonjour
je suis nouveau sur le forum,
j ai besoin d'un coup de main.

j'ai donc une table qui comprend 4 champs avec l'id.

Les visiteurs y deposent les informations et enregistre (l id s'auto incrmeent)

Ensuite tout le monde peut consulter ces données
celle ci apparaissent sous forme d'un tableau ou chaque ligne de ce tableau correspondent a un numero d'id.

Ce que j'aimerai , c'est pouvoir modifier une ligne.
Cependant je ne s'est pas trop comment m'y prendre ( rajouter une colonne ds le tableau avec un lien vers un formulaire de modif)

si quelqun pouvai m'aider, me conseiller..
merci
Voir le profil de l'utilisateurEnvoyer un message privé
Redox
Modérateurs
Modérateurs

Inscrit le: 07 Sep 2004
Messages: 974
Répondre en citant
Salut et bienvenue sur les forums

Le plus simple, je pense, est que lorsque les membres consultent leur donnée, tu affiches ces données dans les champs d'un formulaire (une cellule de chaque ligne de ta table correspondra à un champs, à l'exception de l'id bien sûr, donc il y aura 3 champs). Et la soumission de ce formulaire permettra de modifier les données, du membre en question, dans ta bdd (requête UPDATE sur ta bdd pour la mise à jour)

Pour t'aider dans la conception de ton script, voici un autre topic présent sur ces forums et dont le sujet est similaire au tien !

Et enfin, un petit lien sur la requête UPDATE au cas où tu ne saurais pas comment l'utiliser !

Voir le profil de l'utilisateurEnvoyer un message privé
deja merci
Karaskal


Inscrit le: 17 Mar 2006
Messages: 5
Répondre en citant
merci pour la rapidité de reponse., les liens et explications.

Tu m'as donné une idée, ce que j'aimerai, c'es pouvoir editer une ligne.
Toin idée est bonne mais le probleme c'est que j'ai plus de 1000 entrée listée (1000 ligne). Donc le "tableau formulaire" ca me parai lourd

ce que jaimerai : click ds le tableau, dans la ligne correspondante -> ca me balance sur une page formulaire pour editer le sinfos de cet ID.

Ce que je n'arrive pas a faire faire,c es un lien dans chaque ligne du tableau et ainsi lier ma page de formulaire d'update avec l'ID correspondante.

Si tu connai un script qui fonctionne un peu pareil, je suis interesser, apres je me charge de le decortiquer.


merci a lavance
Voir le profil de l'utilisateurEnvoyer un message privé
Redox
Modérateurs
Modérateurs

Inscrit le: 07 Sep 2004
Messages: 974
Répondre en citant
Dans ta page où tu affiches toutes les lignes de ta table dans un tableau je suppose que tu affiches chaque ligne à l'aide d'une boucle après avoir fait un petit select dans ta bdd ! Donc, il te suffit de rajouter une cellule pour mettre un lien Editer qui sera de la forme:

Rq: Remplace les " dans les codes que je te donne par des " (double quote) satané de BBcode

PHP:
<?php

echo '<a href="edit.php?id='.$id.'">Editer</a>';

//en supposant que la variable $id contient l'id en cours (dans la boucle) provenant de la table
?>


Et dans ta page edit.php, tu récupères la variable id passé dans l'url pour faire un select sur ta table avec un clause where (pour sélectionner seulement les données de l'id en question) et tu peux ainsi afficher les données dans les champs d'un formulaire... et la suite de l'histoire tu la connais déjà

> Exemple schématique de ta page edit.php:

PHP:
<?php

//On récupère l'id dans l'url
$id $_GET['id'];

//Requête sur ta table de la forme
$query "SELECT champ1, champ2 FROM ta_table WHERE id = ".$id;
mysql_query($query);

//Et il te reste plus qu'à afficher les données dans les champs d'un formulaire

?>


Voir le profil de l'utilisateurEnvoyer un message privé
oki
Karaskal


Inscrit le: 17 Mar 2006
Messages: 5
Répondre en citant
j ai essayer de suivre ton conseil, mais je n'arrive pa a faire fonctionner le lien vers edit.php mon pb viendrait des " ...?
peut etre ma méthode d'affichage tableau n'est pas bonne? ou pas adaptée a ce genre de requete?

voici le script de ma page d'affichage de résultats:

____________________________________________________
Code:
<html>
<head><title>bdd</title><head>
<body>
<table align="center" cellspacing="0" cellpadding="0" border="1" width="80%">
<tr>
<td bgcolor="black"><font color="white">CUBEX</td>
<td bgcolor="black"><font color="white">CUBEY</td>
<td bgcolor="black"><font color="white">SYSTEME</td>
<td bgcolor="black"><font color="white">RESSOURCES</td>
<td bgcolor="black"><font color="white">LOCATAIRE</td>
<td bgcolor="black"><font color="white">  </td>
</tr>
<?php
$db = mysql_connect("sql.free.fr",".......","..........");
mysql_select_db("karaskal073_db",$db);
$sql="SELECT * FROM guestbook ORDER BY cubex";
$res=mysql_query($sql, $db);
while ($ligne = mysql_fetch_object ($res))
{
     print "<tr>";
     print "<td>$ligne->cubex</td>";
     print "<td>$ligne->cubey</td>";
     print "<td>$ligne->sys</td>";
     print "<td>$ligne->ress</td>";
     print "<td>$ligne->prop</td>";
     print "<td>echo '<a href="edit.php?id='.$ligne[id].'">Editer</a>';</td>";
     print "</tr>";
}
mysql_free_result ($res);
?>
</table>
</body>
</html>


____________________________________________________


si tu peu m ' aider? merci
Voir le profil de l'utilisateurEnvoyer un message privé
Redox
Modérateurs
Modérateurs

Inscrit le: 07 Sep 2004
Messages: 974
Répondre en citant
Apparemment, tu débutes vraiment dans le PHP ! Donc je serais toi, j'irais faire un tour sur ce site pour lire les tutos sur le coté droit...

En attendant, voici à quoi doit ressembler le code de ta page où tu affiches ton tableau (je te donne juste la partie PHP, pour HTML je pense que ça ira):

PHP:
<?php 

//Connexion bdd
$db mysql_connect("sql.free.fr",".......",".........."); 
mysql_select_db("karaskal073_db",$db); 

//Requête sur ta table en supposant qu'il y a 4 champs
$sql 'SELECT id, ton_champ1, ton_champ2, ton_champ3 FROM guestbook ORDER BY cubex'
$res mysql_query($sql$db); 

//On fait une boucle pour afficher tous les résultats dans un tableau
while ($ligne mysql_fetch_array($res)) 

echo
'<tr>
      <td>'
.$ligne[ton_champ1].'</td>
      <td>'
.$ligne[ton_champ2].'</td>
      <td>'
.$ligne[ton_champ3].'</td>
      <td><a href="edit.php?id='
.$ligne[id].'">Editer</a></td>
     </tr>'
;

?>


Voir le profil de l'utilisateurEnvoyer un message privé
merci bcp
Karaskal


Inscrit le: 17 Mar 2006
Messages: 5
Répondre en citant
le php, je li et je le comprend, mais jai du mal a lecrire ...c un peu comme l'anglais.

bon, ca y es mes liens fonctionnent vers mon edit.php marche:)

Cependant, mon formulaire de modification est vide (les champs sont vides) et que je les rempli (comme pour modifier) il ne me modifie pa l'id en question mais me crée une autre ligne.

je suppose qu il ne recupere pa l'id de l'url... . Pourtant mon script me parait juste ( pour une fois lol)

Code:

<html>
<head><title>xxx</title><head>
<body>
<?php
$db = mysql_connect("sql.free.fr","k......","..........");
mysql_select_db("karaskal073_db",$db);
$id = $_GET['id'];

$retour = mysql_query('SELECT cubex, cubey, sys, ress, prop FROM guestbook WHERE id ='.$id);
while ($donnees = mysql_fetch_array($retour))
?>

<h1>Modifier la bdd</h1>
   
<form name="Modifier_bdd" method="post" action="ajoutimp.php">
<p>
    <input name="id" type="text" value="<?php echo $donnees['id']; ?>">
</p>
<p>cube x :
    <input name="cubex" type="text" value="<?php echo $donnees['cubex']; ?>">
</p>
<p>cube y :
    <input type="cubey" name="textfield3" value="<?php echo $donnees['cubey']; ?>">
</p>
<p>systeme :
    <input type="sys" name="textfield2" value="<?php echo $donnees['sys']; ?>">
</p>
<p>ressources :
    <input type="ress" name="textfield" value="<?php echo $donnees['ress']; ?>">
</p>
<p>locataire :</p>
<p>    <input type="prop" value="<?php echo $donnees['prop']; ?>">
</p>
<p>
    <input type="submit" name="Submit" value="Modifier">   
</p>
</form>
<?php   
mysql_close();
?>
</body>
</html>




voila, deja merci bien pour ce que tu as deja fait et jespere pas tro abuser mici
Voir le profil de l'utilisateurEnvoyer un message privé
Redox
Modérateurs
Modérateurs

Inscrit le: 07 Sep 2004
Messages: 974
Répondre en citant
Re,

Il n'y a pas besoin de mettre de while ! Et l'action de ton formulaire se fait sur ton fichier ajoutimp.php qui, je suppose, permet d'ajouter une entrée dans ta bdd ! Donc normal...

Voir le profil de l'utilisateurEnvoyer un message privé
c est encore moi
Karaskal


Inscrit le: 17 Mar 2006
Messages: 5
Répondre en citant
je recupere bien les données dans le formulaire de mon edit.php, ce pendan qd je modifie ces données, , celles ci ne se modifient pas ds ma base de donnée... en faite juste la variable 'cubex' est mise a jour, c est tres etrange!


voici la source de edit.php

Code:

<html>
<head><title>xxx</title><head>
<body>
<?php
$db = mysql_connect("sql.free.fr","K....","....");
mysql_select_db("karaskal073_db",$db);
$id = $_GET['id'];

$retour = mysql_query('SELECT id, cubex, cubey, sys, ress, prop FROM guestbook

WHERE id ='.$id);
$donnees = mysql_fetch_array($retour)
?>

<h1>Modifier la bdd</h1>
   
<form name="Modifier_bdd" method="post" action="ajoutimp.php">
<p>cube x :
    <input name="cubex" type="text" value="<?php echo $donnees['cubex']; ?>">
</p>
<p>cube y :
    <input type="cubey" name="text" value="<?php echo $donnees['cubey']; ?>">
</p>
<p>systeme :
    <input type="sys" name="text" value="<?php echo $donnees['sys']; ?>">
</p>
<p>ressources :
    <input type="ress" name="text" value="<?php echo $donnees['ress']; ?>">
</p>
<p>locataire :
    <input type="prop" value="<?php echo $donnees['prop']; ?>">
</p>
<p>
    <input type="submit" name="Submit" value="Modifier">   
</p>
</form>
<?php   
mysql_close();
?>
</body>
</html>





et voici la source d emon ajoutimp.php (fichier qui envoie vers la base de donnée)

Code:

<html>
<head><title>Atelier PHP Gestion de formulaire : ajoutimp.php</title><head>
<body>
<?php
$db = mysql_connect("localhost","k...","........");
mysql_select_db("karaskal073_db",$db);
$sql="INSERT INTO guestbook (cubex, cubey, sys, ress, prop) VALUES ('$cubex', '$cubey', '$sys', '$ress', '$prop')";
mysql_query($sql, $db);
print("Merci d'avoir rempli la BDD !") ;
print("<a href=impressions.html>retour</a>");
?>
</body>
</htm>


qu est ce qui se passe doc?
Voir le profil de l'utilisateurEnvoyer un message privé
Redox
Modérateurs
Modérateurs

Inscrit le: 07 Sep 2004
Messages: 974
Répondre en citant
C'est bien ce que je te disais, le code de ta page sur laquelle tu soumets ton formulaire permet d'ajouter une entrée dans ta bdd et non de faire la MAJ ! C'est pas INSERT INTO qu'il te faut utiliser mais UPDATE pour modifier des valeurs dans ta bdd !

Et au passage, il n'y a besoin de simple quote autour de tes variables lors de l'ajout des données dans le INSERT INTO ... VALUES ...
Voir le profil de l'utilisateurEnvoyer un message privé
Annonces && Topic Scooping
AIDE: Modification des infos d'une table
Vous pouvez poster de nouveaux sujets dans ce forum
Vous pouvez répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
Toutes les heures sont au format GMT + 2 Heures  
Page 1 sur 1  

  
  
 Poster un nouveau sujet  Répondre au sujet  


Powered by phpBB © 2001, 2002 phpBB Group
Traduction par : phpBB-fr.com
Design by Vjacheslav Trushkin
phpBB SEO

Anti Bot Question MOD - phpBB MOD against Spam Bots
Inscriptions / messages bloqués: 2668 / 609