8791 sujets

Développement web côté serveur, CMS

bonjour,
voila g un problem avec la récupération d'id
en fait je recuper le id et tout les champ de ma table perso_modif
et j'aimerais les enregistrer sur une autre table perso_modif_modif avec le meme id de la table perso_modif
mais voila tout s'enregistre sauf le id ou il le recupere pas
donc l'idée est de faire un select pour recupere le id, nom_mod....
envoyer l'id_mod avec un hidden et le recupere dans une autre page modif.php pour l'enregistrer sur une autre table
voila le code :

<?php

$idconn= mysql_connect("localhost","root") or die("erreur de connexion au serveur");
if($idconn)
{
print"oui";
$db= mysql_select_db("test",$idconn) or die("erreur de connexion a la base de donnee");
echo "ok";
}
else{

echo "non";
}



$rech=$_REQUEST['nom'];

$sql="SELECT id_mod, nom_mod, prenom_mod, job_mod, ville_mod FROM perso_modif WHERE perso_modif.nom_mod='".$rech."'";
$RegLog=mysql_query($sql);
while($resultat=mysql_fetch_row($RegLog))
{

?>

<div style="margin:30 px;">
<form action="modif.php" method="POST" style="margin:30px;">

<div>NOm:<div style="margin-left:12px;"><?php echo $resultat[1] ?></div><input type="text" name="nom_u" value="modifier" /></div>
<div>Prenom:<?php echo $resultat[2] ?></div><input type="text" name="prenom_u" value="modifier" /></div>
<div>job<?php echo $resultat[3] ?></div><input type="text" name="job_u" value="modifier" /></div>
<div>ville<?php echo $resultat[4] ?></div><input type="text" name="ville_u" value="modifier" /></div>
<div><input type="hidden" name="id_mod" value="$id_mod" /> </div>
<div><input type="submit" name="sub" value="valider" /></div>

</form>
</div>
<?php

}


et je recupere les renseignement dans une autre fichier pour les enregistrer sur la table perso_modif_modif.php

<?php

$idconn= mysql_connect("localhost","root") or die("erreur de connexion au serveur");
if($idconn)
{
print"oui";
$db= mysql_select_db("test",$idconn) or die("erreur de connexion a la base de donnee");
echo "ok";
}
else{

echo "non";
}


$id_mod=$_REQUEST['id_mod'];
$nom_m=$_REQUEST['nom_u'];
$prenom_m=$_REQUEST['prenom_u'];
$job_m=$_REQUEST['job_u'];
$ville_m=$_REQUEST['ville_u'];



$sql="INSERT INTO perso_modif_modif (id_modif_modif, nom_u, prenom_u, job_u, ville_u) VALUES ('$id_mod','$nom_m','$prenom_m','$job_m','$ville_m')";
echo $sql;
$RegLog=mysql_query($sql);




?>


merci pour votre aide
car ca commencer a me casser la tete
Modifié par timo (08 Jul 2008 - 01:27)
Alors, je vais me contenter d'un copier coller, parce que TOUT est encore valable :

Alors, déjà tu va te faire gronder par un modo pour pas avoir vu les règles du forum, ensuite

<div><input type="hidden" name="id_mod" value="$id_mod" /> </div>


$id_mod n'est pas défini
Modifié par Yasashii (07 Jul 2008 - 21:55)
Alors je reprends du début !

Hello timo et bienvenue parmi nous Smiley smile ,

En tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace).

upload/1-code.gif

Je te remercie par avance de bien vouloir éditer ton message afin de le rendre conforme à cette règle. Smiley cligne

D'ailleurs, je rappelle que le lien qui apparaît en bandeau tout en haut du forum ("Nouveau sur le forum ?...") est important. Il contient des pistes de recherche, des indications sur les règles de vie de la communauté, etc.
Il serait donc courtois de ta part de bien vouloir en prendre connaissance.

Bonne continuation Smiley smile .
a votre avis comment je peu le définir je croyais que juste en le recuperon dans un select et le transmetre avec un
<input type="hidden" name="id_mod">
je pourais l'utilser pour l'enregistrer ds une autre table
merci pour vos reponse
La logique est bonne et le premier code aussi.

Mais la valeur n'est pas récupérée.

à rajouter :
$id_mod = $resultat[0];

Modifié par Yasashii (07 Jul 2008 - 22:05)
merci pour ta réponse mais ca marche pas
j'ai bien remplacer
$id_mod=$_REQUEST['id_mod']

par
$id_mod=$resultat[0]
mais il m'affiche comme erreur Notice: Undefined variable: resultat
Modifié par timo (07 Jul 2008 - 22:16)
C'est dans le premier fichier qu'il fallait ajouter le code

tu as ceci :
<input type="hidden" name="id_mod" value="$id_mod" />


Cependant si tu regarde ta source sur la première page tu verra que

value="message d'erreur"


Tu transmet donc à te seconde page un message d'erreur.

Tu doit donc rajouter :
<?php
$id_mod=$resultat[0];
?>

avant
<input type="hidden" name="id_mod" value="$id_mod" />



EDIT : et personnellement j'utiliserais plutôt $_POST à la place de $_REQUEST, mais c'est personnel
Modifié par Yasashii (07 Jul 2008 - 22:21)
encore moi ;(

je n'est plus le messege d'erreur main dans la bdd il met toujour 0 pour le id_modif_modif, j'ai fais un echo apres le insert pour voir ce qui ce passe et voila ce qu'il m'affiche
INSERT INTO perso_modif_modif (id_modif_modif, nom_u, prenom_u, job_u, ville_u) VALUES ('$id_mod','modifier','modifier','modifier','modifier')

il prend pas de numero pour le id_mod, c bizare

oui pour info pendant la creation de ma table perso_modif_modif j'ai mis mon
id_modif_modif en index et pas en clé primaire pour eviter qu'il le donne automatiquement
Modifié par timo (07 Jul 2008 - 22:30)
Au temps pour moi :

<input type="hidden" name="id_mod" value="<?php echo $id_mod; ?>" />


Pour les modifier, si tu veux les éviter, enlève les value="modifier"
En passant tu pourrais sécuriser un peu ton script :

- en remplaçant les $_REQUEST par des $_POST (ou éventuellement un $_GET pour 'nom').

- en vérifiant que tes variables existent avant de t'en servir dans une requête
$rech = isset($_GET['nom']) ? htmlspecialchars($_GET['nom']) : '';

[b]ou[/b]

$rech = isset($_POST['nom']) ? htmlspecialchars($_POST['nom']) : '';

if ($rech != '') {...

- en vérifiant que tu as des résultats avant de faire la boucle while
if (mysql_num_rows($RegLog) > 0) {

- en évitant les injections SQL à l'aide de mysql_real_escape_string.


Par ailleurs, est-ce que tu considères que ce sujet est [Résolu] ? Smiley cligne
oui absolumet c'est résolu

grace a ton aide j'ai réussi à l'instant d'aficher les 2 table et de pouvoir refuser ou valider la modif la table
si valide alor update et delete en meme temp des donné de la table modif
sinon suprimer les donnée sellectioné des deux table

je suis content

merci encore
timo a écrit :
sujet resolu
Ma dernière réponse contenait un lien vers [Résolu] (<-- Ceci est un lien ! Merci de le cliquer Smiley lol !) .

Il y est expliqué que :
a écrit :
5- Editer les messages, marquer comme [Résolu]
...
Nous vous invitons à ajouter un tag [Résolu] lorsque la réponse à votre problème a été trouvée, cela facilitera les recherches futures. Pour cela : allez sur votre premier message (celui qui débute le sujet), puis cliquez sur le bouton "éditer", en haut à droite du post, celui à côté du bouton "citer" et pour finir, modifiez le titre du sujet en ajoutant [Résolu]

Merci d'avance Smiley smile .