Modifier des données mysql via formulaire php
16 messages
• Page 1 sur 2 • 1, 2
-

vitalizo - WRInaute passionné

- Messages: 1086
- Inscription: 27 Nov 2005
Modifier des données mysql via formulaire php
re à tous, je continue mon périple dans l'apprentissage de mysql.
La j'en suis à faire des formulaire php pour directement modifier des valeurs dans ma bdd sauf que je bloque.
J'ai suivi un tuto voilà comment ca se passe.
D'abord une page maj_pronos qui me permet de choisir quel données à mettre à jour
Ensuite voila le problème, une page maj_pronos2 qui là rien ne s'affiche
Cette page est censé m'afficher les données inscrites dans ma bdd afin que je les mettent à jour sauf que rien ne s'affiche
Une idée, car je bloque
La j'en suis à faire des formulaire php pour directement modifier des valeurs dans ma bdd sauf que je bloque.
J'ai suivi un tuto voilà comment ca se passe.
D'abord une page maj_pronos qui me permet de choisir quel données à mettre à jour
- Code: Tout sélectionner
<?php
//connection au serveur:
$cnx = mysql_connect( "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "" ) ;
//requête SQL:
$sql = "SELECT *
FROM pronostics
ORDER BY club1" ;
//exécution de la requête:
$requete = mysql_query( $sql, $cnx ) ;
//affichage des données:
while( $result = mysql_fetch_object( $requete ) )
{
echo("<div align=\"center\">".$result->resultat." <a href=\"maj_pronos2.php?idPersonne=".$result->id_personne."\">modifier</a><br>\n") ;
}
?>
Ensuite voila le problème, une page maj_pronos2 qui là rien ne s'affiche
- Code: Tout sélectionner
<?php
//connection au serveur:
$cnx = mysql_connect( "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "" ) ;
//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrement modifier
$id = $_GET["idPersonne"] ;
//requête SQL:
$sql = "SELECT *
FROM pronostics
WHERE id_personne = ".$id ;
//exécution de la requête:
$requete = mysql_query( $sql, $cnx ) ;
//affichage des données:
if( $result = mysql_fetch_object( $requete ) )
{
?><form name="insertion" action="maj_pronos3.php" method="POST">
<input type="hidden" name="id" value="<?php echo($id) ;?>">
<table border="0" align="center" cellspacing="2" cellpadding="2">
<tr align="center">
<td>club1</td>
<td><input type="text" name="club1" value="<?php echo($result->club1) ;?>"></td>
</tr>
<tr align="center">
<td>club2</td>
<td><input type="text" name="club2" value="<?php echo($result->club2) ;?>"></td>
</tr>
<tr align="center">
<td>vainqueur</td>
<td><input type="text" name="vainqueur" value="<?php echo($result->vainqueur) ;?>"></td>
</tr>
<tr align="center">
<td>cote</td>
<td><input type="text" name="cote" value="<?php echo($result->cote) ;?>"></td>
</tr>
<tr align="center">
<td>resultat</td>
<td><input type="text" name="resultat" value="<?php echo($result->resultat) ;?>"></td>
</tr>
<tr align="center">
<td colspan="2"><input type="submit" value="modifier"></td>
</tr>
<tr align="center">
<td colspan="2"><input type="submit" value="modifier"></td>
</tr>
</table>
</form>
<?php
}//fin if
?>
Cette page est censé m'afficher les données inscrites dans ma bdd afin que je les mettent à jour sauf que rien ne s'affiche
Une idée, car je bloque
- fablezouave
- WRInaute discret

- Messages: 109
- Inscription: 20 Déc 2006
salut
Es-tu sûr que ta requète renvoie des résultats ?
Fais un mysql_num_rows( $requete ); pour le savoir
fab
Es-tu sûr que ta requète renvoie des résultats ?
Fais un mysql_num_rows( $requete ); pour le savoir
fab
-

vitalizo - WRInaute passionné

- Messages: 1086
- Inscription: 27 Nov 2005
Euh c'est à dire et à vrai dire j'apprends le php/mysql par des tutos ou des exercices et mysql_num_rows( $requete ); je ne l'ai jamais vu.
Si par "Es-tu sûr que ta requète renvoie des résultats ?", tu entends "est ce que je vois les entrées à modifier sur la page maj_pronos" ma réponse oui.
Tout s'affiche correctement, j'ai toutes les entrées de ma bdd classés par club1 qui s'affiche avec un lien "modifier" juste à cote qui celui me renvoie sur une page vierge alors qu'il devrait m'afficher toutes les valeurs presentes dans cette entrée
Si par "Es-tu sûr que ta requète renvoie des résultats ?", tu entends "est ce que je vois les entrées à modifier sur la page maj_pronos" ma réponse oui.
Tout s'affiche correctement, j'ai toutes les entrées de ma bdd classés par club1 qui s'affiche avec un lien "modifier" juste à cote qui celui me renvoie sur une page vierge alors qu'il devrait m'afficher toutes les valeurs presentes dans cette entrée
- DomicilePC
- WRInaute discret

- Messages: 210
- Inscription: 17 Jan 2005
Bonjour,
essai de récupérer l'id ainsi
essai de récupérer l'id ainsi
- Code: Tout sélectionner
$id = $HTTP_GET_VARS["idPersonne"];
-

vitalizo - WRInaute passionné

- Messages: 1086
- Inscription: 27 Nov 2005
rien
(.
Suffit je viens de me rendre compte d'un truc surement bête.
Apres avoir choisi l'entrée que je voulais modifier, dans barre d'adresse cela donne ceci;
"http://www.aaa.com/bbb/maj_pronos2.php?idPersonne="
ne faudrait-il qu'il y ait:
"http://www.aaa.com/bbb/maj_pronos2.php?idPersonne=club1" ??
Suffit je viens de me rendre compte d'un truc surement bête.
Apres avoir choisi l'entrée que je voulais modifier, dans barre d'adresse cela donne ceci;
"http://www.aaa.com/bbb/maj_pronos2.php?idPersonne="
ne faudrait-il qu'il y ait:
"http://www.aaa.com/bbb/maj_pronos2.php?idPersonne=club1" ??
- DomicilePC
- WRInaute discret

- Messages: 210
- Inscription: 17 Jan 2005
Si
Echo() n'est pas une fonction et les parenthèses ne sont pas nécessaires, elles peuvent même rendre invalide en y passant plus d'un paramètre.
Je retirerais les parenthèses des echo().
Ensuite, si idPersonne peut être club1, c'est qu'il n'est pas numérique, il faut donc mettre autour de $id dans la requête des guillemets simples.
Echo() n'est pas une fonction et les parenthèses ne sont pas nécessaires, elles peuvent même rendre invalide en y passant plus d'un paramètre.
Je retirerais les parenthèses des echo().
Ensuite, si idPersonne peut être club1, c'est qu'il n'est pas numérique, il faut donc mettre autour de $id dans la requête des guillemets simples.
- Code: Tout sélectionner
$sql = "SELECT *
FROM pronostics
WHERE id_personne = '".$id."'" ;
Dernière édition par DomicilePC le Lun Jan 15, 2007 20:14, édité 1 fois.
-

vitalizo - WRInaute passionné

- Messages: 1086
- Inscription: 27 Nov 2005
Petite récap.
J'ai donc enleve toutes les parenthèses des echo
ca donne <?php echo $result->club1 ;?>
J'ai aussi remplacé
Ca s'affiche toujours pas, je pense qu'il y a un souci au niveau de mon adresse comme je l'ai dit plus haut
ca viendrait donc de là :
id_personne n'etant pas numérique, je crois qu'il y a un souci au niveau de cette ligne
une idée?
J'ai donc enleve toutes les parenthèses des echo
ca donne <?php echo $result->club1 ;?>
J'ai aussi remplacé
- Code: Tout sélectionner
$sql = "SELECT *
FROM pronostics
WHERE id_personne = ".$id ;
par
$sql = "SELECT *
FROM pronostics
WHERE id_personne = '".$id."'" ;
Ca s'affiche toujours pas, je pense qu'il y a un souci au niveau de mon adresse comme je l'ai dit plus haut
ca viendrait donc de là :
- Code: Tout sélectionner
{
echo("<div align=\"center\">".$result->club1." <a href=\"maj_pronos2.php?idPersonne=".$result->id_personne."\">modifier</a><br>\n") ;
}
id_personne n'etant pas numérique, je crois qu'il y a un souci au niveau de cette ligne
une idée?
- DomicilePC
- WRInaute discret

- Messages: 210
- Inscription: 17 Jan 2005
Enlèves toute les parenthèses des echo() toutes.
donc
Et si il en reste, retire les
Au fait, tes div, tu les fermes quand?
Ca doit être ça:
tu fais une boucle, tu ouvres un div à chaque fois mais tu ne le fermes pas. Tu te retrouves avec une quantité de div ouverts et jamais fermés.
on aurait donc:
Le </div> remplce le <br>
donc
- Code: Tout sélectionner
echo "<div align=\"center\">".$result->club1." <a href=\"maj_pronos2.php?idPersonne=".$result->id_personne."\">modifier</a><br>\n" ;
Et si il en reste, retire les
Au fait, tes div, tu les fermes quand?
Ca doit être ça:
tu fais une boucle, tu ouvres un div à chaque fois mais tu ne le fermes pas. Tu te retrouves avec une quantité de div ouverts et jamais fermés.
on aurait donc:
- Code: Tout sélectionner
echo "<div align=\"center\">".$result->club1." <a href=\"maj_pronos2.php?idPersonne=".$result->id_personne."\">modifier</a></div>\n" ;
Le </div> remplce le <br>
-

vitalizo - WRInaute passionné

- Messages: 1086
- Inscription: 27 Nov 2005
Je commence à desesperer, j'ai bien enlevé toutes les parenthèses, j'avais oublié de faire la div (je viens de c/c ton morceau de code)
Etant donné que c'est la 1ere fois que je fais ceci.
Une fois l'entrée sélectionné je devrais pas arriver sur une adress du type:
"http://www.aaa.com/bbb/maj_pronos2.php?idPersonne=club1" ??
or là , je tombe sur
""http://www.aaa.com/bbb/maj_pronos2.php?idPersonne="
EDIT
Petit miracle !!
J'ai supprimé la condition if de la maj_pronos2
et j'ai enfin vu quelquechose sur cette foutu page
).
Mais voilà les champs sont vides, surement que if ne marche pas et ne m'affiche pas les éléments déja inscrits sur ma bdd
c'est ca non?
Etant donné que c'est la 1ere fois que je fais ceci.
Une fois l'entrée sélectionné je devrais pas arriver sur une adress du type:
"http://www.aaa.com/bbb/maj_pronos2.php?idPersonne=club1" ??
or là , je tombe sur
""http://www.aaa.com/bbb/maj_pronos2.php?idPersonne="
EDIT
Petit miracle !!
J'ai supprimé la condition if de la maj_pronos2
- Code: Tout sélectionner
if( $result = mysql_fetch_object( $requete ) )
{
et j'ai enfin vu quelquechose sur cette foutu page
Mais voilà les champs sont vides, surement que if ne marche pas et ne m'affiche pas les éléments déja inscrits sur ma bdd
c'est ca non?
- DomicilePC
- WRInaute discret

- Messages: 210
- Inscription: 17 Jan 2005
Ben si,
Pour savoir fait simplement
echo "l'id perso est: ".$result->id_personne;
à la place du lien et de la div, s'il t'affiche rien, c'est que le champ ne s'appelle pas comme ça (ortho)
ou mets des or die("quelque chose de sensé") à tes requêtes
ex:
Des fois on repère des erreurs dans les requçetes comme ça
Pour savoir fait simplement
echo "l'id perso est: ".$result->id_personne;
à la place du lien et de la div, s'il t'affiche rien, c'est que le champ ne s'appelle pas comme ça (ortho)
ou mets des or die("quelque chose de sensé") à tes requêtes
ex:
- Code: Tout sélectionner
$sql = "SELECT *
FROM pronostics
ORDER BY club1" ;
//exécution de la requête:
$requete = mysql_query( $sql, $cnx ) or die("requete club1 failed");
Des fois on repère des erreurs dans les requçetes comme ça
-

vitalizo - WRInaute passionné

- Messages: 1086
- Inscription: 27 Nov 2005
Je suis vraiment fatigué moi.
Sur la base que je veux travailler c'est id et non id_personne.
c'est bon j'ai trouvé mais j'ai vraiment honte de le dire
)
On va dire que c'est une erreur de débutant. Sur la base que je travaille là actuellement, c'est id et non id_personne (qui me sert pour une autre base).
P.S: vraiment dsl pour tout ce temps perdu.
C'est en faisant des erreurs que l'on apprends
Sur la base que je veux travailler c'est id et non id_personne.
c'est bon j'ai trouvé mais j'ai vraiment honte de le dire
On va dire que c'est une erreur de débutant. Sur la base que je travaille là actuellement, c'est id et non id_personne (qui me sert pour une autre base).
P.S: vraiment dsl pour tout ce temps perdu.
C'est en faisant des erreurs que l'on apprends
Dernière édition par vitalizo le Lun Jan 15, 2007 21:48, édité 1 fois.
- code
- WRInaute impliqué

- Messages: 648
- Inscription: 29 Juil 2005
Tu dois prendre les problemes dans l'ordre et progresser dans ton code petit à petit jusqu'à ce que tu trouves l'erreur.
Pour ma part, puisque tu dis que tu ne vois pas l'id passée en paramètre dans la barre d'adresse, c'est que déjà il y a un problème dans la récupération de cet id.
Celui-ci est transmis en GET :
pour le récupérer :
$id = isset($_GET['id']) ? $_GET['id'] : '';
et ensuite dans ta requete :
$sql = "SELECT *
FROM pronostics
WHERE id_personne = '$id' ";
Pour ma part, puisque tu dis que tu ne vois pas l'id passée en paramètre dans la barre d'adresse, c'est que déjà il y a un problème dans la récupération de cet id.
Celui-ci est transmis en GET :
pour le récupérer :
$id = isset($_GET['id']) ? $_GET['id'] : '';
et ensuite dans ta requete :
$sql = "SELECT *
FROM pronostics
WHERE id_personne = '$id' ";
16 messages
• Page 1 sur 2 • 1, 2
Lectures recommandées sur ce thème :
- Modifier le my.cnf de mysql.
- Comment modifier les données de son site dans l'annuR WRI ?
- [PHP-MySQL] : argument is not a valid MySQL ressource
- Exportation et Importation de Ma base de données Mysql
- Dupliquer une base de données MySQL
- retrouver les données utilisateurs mysql
- Manipuler une grosse base de données MySql
- PB d'accent dans mysql en restauration des données
- Ajout massif de données ds une bdd mysql
- Limiter la taille des bases de données. [Mysql]
Consultez la description détaillée des produits ou services de Google suivants : Gmail Notifier
- Positionnement sur data centers Google
Cet outil vous permet d'afficher sur une seule page les résultats Google effectués sur de nombreux data centers (centres de données).
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

