[php] Pb retour POST
Résolu
Yull Master
Messages postés
46
Date d'inscription
Statut
Membre
Dernière intervention
-
ilan27 Messages postés 394 Date d'inscription Statut Membre Dernière intervention -
ilan27 Messages postés 394 Date d'inscription Statut Membre Dernière intervention -
Bonjour et merci à tout ceux qui tenterons de m'aider...
Je suis débutant en HTML/PHP et rencontre un souci sur la mise à jour d'une de mes tables SQL.
J'explique en gros ce que je souhaite faire.
Je me suis créer une page me permettant de mettre mes liens favoris dessus.
Je me suis donc dit pourquoi ne pas me faire une p'tite interface me permettant d'ajouter ou de mettre à jour en ligne mes liens.
Le problème est donc que je dois effectuer la mise à jour de plusieurs champs sur plusieurs lignes de ma table SQL.
J’ai donc concocté ce qui suit mais malheureusement il y a un problème au niveau du retour de mes POST.
Je ne sais pas si je suis bien clair mais bon, je réexpliquerai si besoin ai...
Voici donc le code de ma page qui va lire dans ma table les liens déjà enregistré (ca ca marche)
Voici maintenant ma page qui est sensé sauvegarder les modifications de mes liens
le message d'erreur renvoyé est :
Notice: Undefined index: Chemin in c:\documents and settings\garnier\mes documents\web\saveliens.php on line 38
Notice: Undefined index: Nom in c:\documents and settings\garnier\mes documents\web\saveliens.php on line 39
Notice: Undefined index: Numlien in c:\documents and settings\garnier\mes documents\web\saveliens.php on line 40
J'espère avoir fait ma demande d'aide correctement et remercies par avance tout ceux qui m'aiderons a résoudre mon problème et a améliorer mon code.
cdt
Yull
Je suis débutant en HTML/PHP et rencontre un souci sur la mise à jour d'une de mes tables SQL.
J'explique en gros ce que je souhaite faire.
Je me suis créer une page me permettant de mettre mes liens favoris dessus.
Je me suis donc dit pourquoi ne pas me faire une p'tite interface me permettant d'ajouter ou de mettre à jour en ligne mes liens.
Le problème est donc que je dois effectuer la mise à jour de plusieurs champs sur plusieurs lignes de ma table SQL.
J’ai donc concocté ce qui suit mais malheureusement il y a un problème au niveau du retour de mes POST.
Je ne sais pas si je suis bien clair mais bon, je réexpliquerai si besoin ai...
Voici donc le code de ma page qui va lire dans ma table les liens déjà enregistré (ca ca marche)
<form method="POST" action="Saveliens.php"> <table style="border-collapse: collapse;"> <tr><th style="border: 0px;" VALIGN="top" ALIGN="center"> <? include("Conect.php"); if (isset($_SESSION['Login'])) { $numla = $_SESSION['Login']; } else { include("VLog2.php"); } $retourla = mysql_query("SELECT Chemin_liens, Nom_liens, Num_liens, Ind_liens FROM liens, individu WHERE Ind_liens='$numla' AND Num_ind='$numla'"); $nb=0; while ($donneesla = mysql_fetch_array($retourla)) { $nb++; ?> <table style="border-collapse: collapse;"> <tr><th style="border: 0px;" VALIGN="top" ALIGN="center"> <input type="hidden" name="Numlien'.$nb.'" tabindex="10" value="<?echo $donneesla['Num_liens'];?>" /> <input type="text" name="Chemin'.$nb.'" tabindex="20" value="<?echo $donneesla['Chemin_liens'];?>" /> <input type="text" name="Nom'.$nb.'"tabindex="30" value="<?echo $donneesla['Nom_liens'];?>" /></th></tr> </table> </th></tr> <? } ?> <br /></h5> <tr><th style="border: 0px;" VALIGN="top" ALIGN="center"> <p><br /><input type="submit" value="Modifier"></p></th></tr> </table> </form>
Voici maintenant ma page qui est sensé sauvegarder les modifications de mes liens
include("Conect.php"); if (isset($_SESSION['Login'])) { $numsl = $_SESSION['Login']; } else { include("VLog2.php"); } $Chemin = $_POST['Chemin']; ------------------------> ligne 38 $Nom = $_POST['Nom']; ------------------------> ligne 39 $Numlien = $_POST['Numlien']; ------------------------> ligne 40 $retoursl = mysql_query("SELECT COUNT(*) AS nb_sliens FROM liens WHERE Ind_liens='$numsl'"); $donneessl = mysql_fetch_array($retoursl); $totalDessliens = $donneessl['nb_sliens']; for ($inb=1;$inb<$totalDessliens;$inb++){ $var=$Numlien.$inb; $var2=$Chemin.$inb; $var3=$Nom.$inb; mysql_query("UPDATE liens SET Chemin_liens='.$var2.', Nom_liens='.$var3.' WHERE Ind_liens='$numsl' AND Num_liens='.$$var.'"); } echo " <html><head> </head> <body> <table wight=\"500\" align=\"center\"><tr><td> <p> <br><br><br><br> Vos liens favoris ont été mise à jour. <br> <br> Merci.<br> Yull.<br> </p> </td></td></table> </body></html>"; ?> <a href="javascript:window.close();">Fermer</a>
le message d'erreur renvoyé est :
Notice: Undefined index: Chemin in c:\documents and settings\garnier\mes documents\web\saveliens.php on line 38
Notice: Undefined index: Nom in c:\documents and settings\garnier\mes documents\web\saveliens.php on line 39
Notice: Undefined index: Numlien in c:\documents and settings\garnier\mes documents\web\saveliens.php on line 40
J'espère avoir fait ma demande d'aide correctement et remercies par avance tout ceux qui m'aiderons a résoudre mon problème et a améliorer mon code.
cdt
Yull
A voir également:
- [php] Pb retour POST
- Easy php - Télécharger - Divers Web & Internet
- Retour à la ligne excel formule - Guide
- Brouillon post instagram - Guide
- Post it windows - Télécharger - Agendas & Calendriers
- Retour à la ligne chatgpt - Forum PHP
20 réponses
Hello,
Normal puisque ton formulaire contient les champs: Numlien'.$nb.', Chemin'.$nb.', Nom'.$nb.'
Y'a pas de chemin, numlien et nom tout court !
Normal puisque ton formulaire contient les champs: Numlien'.$nb.', Chemin'.$nb.', Nom'.$nb.'
Y'a pas de chemin, numlien et nom tout court !
Je viens de tester en mettant
et j'ai toujours des erreurs :
Notice: Undefined index: Chemin'.1.' in c:\documents and settings\garnier\mes documents\web\saveliens.php on line 39
Notice: Undefined index: Nom'.1.' in c:\documents and settings\garnier\mes documents\web\saveliens.php on line 40
Notice: Undefined index: Numlien'.1.' in c:\documents and settings\garnier\mes documents\web\saveliens.php on line 41
Apres j'utilise peu etre une mauvaise synthaxe...
en tout cas merci de ton aide
$nb=0; $nb++; $Chemin = $_POST["Chemin'.$nb.'"]; ------------------------>ligne 39 $Nom = $_POST["Nom'.$nb.'"];------------------------>ligne 40 $Numlien = $_POST["Numlien'.$nb.'"];------------------------>ligne 41
et j'ai toujours des erreurs :
Notice: Undefined index: Chemin'.1.' in c:\documents and settings\garnier\mes documents\web\saveliens.php on line 39
Notice: Undefined index: Nom'.1.' in c:\documents and settings\garnier\mes documents\web\saveliens.php on line 40
Notice: Undefined index: Numlien'.1.' in c:\documents and settings\garnier\mes documents\web\saveliens.php on line 41
Apres j'utilise peu etre une mauvaise synthaxe...
en tout cas merci de ton aide
Salut, tu as une erreur de codage là:
<input type="hidden" name="Numlien'.$nb.'" tabindex="10" value="<?echo $donneesla['Num_liens'];?>" />
tu n'es plus dans le php la balise ?> est qqs lignes plus haut
et tu utilises une variable php $nb dans dans le HTML il ne comprend pas
il faut:
idem pour Chemin
cela va te creer des noms dynamiquement Numlien1 Numlien2 etc.... Chemin1 Chemin2 etc...
et pour récuperer les valeurs postées par le POST c'est un peu plus compliqué, il faut explorer l'array $_POST
et par une fonction substr($_POST,0,7)=="Numlien") tu récupéres chaque valeur de champ que tu utilises ensuite comme tu veux.
<input type="hidden" name="Numlien'.$nb.'" tabindex="10" value="<?echo $donneesla['Num_liens'];?>" />
tu n'es plus dans le php la balise ?> est qqs lignes plus haut
et tu utilises une variable php $nb dans dans le HTML il ne comprend pas
il faut:
<input type="hidden" name="<?php echo 'Numlien'.$nb ; ?>" tabindex="10" value="<?php echo $donneesla['Num_liens'];?>"
idem pour Chemin
cela va te creer des noms dynamiquement Numlien1 Numlien2 etc.... Chemin1 Chemin2 etc...
et pour récuperer les valeurs postées par le POST c'est un peu plus compliqué, il faut explorer l'array $_POST
et par une fonction substr($_POST,0,7)=="Numlien") tu récupéres chaque valeur de champ que tu utilises ensuite comme tu veux.
RE,
Merci Alain42 pour ta reponse. Parcontre comme je suis debutant, je vois pas trop comment récupérer les valeurs de l'array $POST.
doit-je utiliser un foreach et faire un truc du genre :
bref comme tu peu le voir je suis un peu perdu et cherche a utiliser des choses que je ne maitrise pas vraiment donc si tu pouvais me donner un exemple (si c'est pas trop lourd a faire) cela serai simpa.
en tout cas merci pour votre aide ^^
Merci Alain42 pour ta reponse. Parcontre comme je suis debutant, je vois pas trop comment récupérer les valeurs de l'array $POST.
doit-je utiliser un foreach et faire un truc du genre :
foreach($_POST as $var) { $var = substr($_POST['Numlien'],0,7)=="Numlien"); $var2 = substr($_POST['Chemin'],0,7)=="Chemin"); $var3 = substr($_POST['Nom'],0,7)=="Nom"); } mysql_query("UPDATE liens SET Chemin_liens='.$var2.', Nom_liens='.$var3.' WHERE Ind_liens='$numsl' AND Num_liens='.$$var.'");
bref comme tu peu le voir je suis un peu perdu et cherche a utiliser des choses que je ne maitrise pas vraiment donc si tu pouvais me donner un exemple (si c'est pas trop lourd a faire) cela serai simpa.
en tout cas merci pour votre aide ^^
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
le $_POST est un array avec comme cle le nom du champ poste et la valeur celle du champ
il faut faire un truc du genre:
astuce:
print_r($array_numlien); te permet de voir ce qu'il contient
ensuite tu parcours ces deux array (par une boucle) pour les rentrer dans ta base
il faut faire un truc du genre:
foreach($_POST as $cle=>$valeur){ // et tu mets ça dans un array if( substr($cle,0,7)=="Numlien"){ // si le nom du champ commence par "Numlie" $index=substr($cle,7); // tu retrouves le numéro du lien et ça te servira de cle pour l'array $array_numlien[$index]=$valeur; } if( substr($cle,0,5)=="Chemin"){ // si le nom du champ commence par "Numlie" $index=substr($cle,5); // tu retrouves le numéro du chemin et ça te servira de cle pour l'array $array_chemin[$index]=$valeur; } }
astuce:
print_r($array_numlien); te permet de voir ce qu'il contient
ensuite tu parcours ces deux array (par une boucle) pour les rentrer dans ta base
Merci Alain42 pour ta reponse des plus complete et des plus rapide.
Je teste ca et ferai un retour des que j'ai finis.
En tout cas c'est vraiment gentil, la communoté de comment ca marche est tres simpa et tres reactive.
c'est la premiere fois que je demandai de l'aide et je ne suis pas decus.
Merci encore de m'avoir maché le travail, je vous dirai si je suis parvenu a mes fin ou si d'autres problemes (que je ne saurai resoudre) se profilent.
cdt
Yull
Je teste ca et ferai un retour des que j'ai finis.
En tout cas c'est vraiment gentil, la communoté de comment ca marche est tres simpa et tres reactive.
c'est la premiere fois que je demandai de l'aide et je ne suis pas decus.
Merci encore de m'avoir maché le travail, je vous dirai si je suis parvenu a mes fin ou si d'autres problemes (que je ne saurai resoudre) se profilent.
cdt
Yull
Suite aux conseils d'Alain42 voici ce que j'ai fait
Voici l'erreur qui m'es affiché apres execution
Fatal error: Maximum execution time of 30 seconds exceeded in c:\documents and settings\garnier\mes documents\web\saveliens2.php on line 64
au passage vois les resultats de mes array
Array ( [1] => 1 [2] => 3 [3] => 4 [4] => 7 [5] => 8 [6] => 9 [7] => 10 [8] => 11 [9] => 12 [10] => 13 [11] => 14 )
Array ( [1] => http://v0.battle-arenas.net/ [2] => http://www77.hattrick.org [3] => https://lobby.ogame.gameforge.com/fr_FR/ [4] => http://www.villajuifacrew.com [5] => www.google.fr [6] => www.msn.fr [7] => www.yahoo.fr [8] => www.psg.fr [9] => www.lequipe.fr [10] => www.allpsg.com [11] => http://www.lesiteduzero.fr )
Array ( [1] => Battle-Arenas [2] => Hattrick [3] => Ogame [4] => --VJC-- [5] => Google [6] => MSN [7] => Yahoo [8] => PSG [9] => L'Equipe [10] => test [11] => Le site du zero )
Merci a ceux qui pourrons m'eclairer sur le probleme que je rencontre ^^
foreach($_POST as $cle=>$valeur){ // et tu mets ça dans un array if( substr($cle,0,7)=="Numlien"){ // si le nom du champ commence par "Numlien" $index=substr($cle,7); // tu retrouves le numéro du lien et ça te servira de cle pour l'array $array_numlien[$index]=$valeur; } if( substr($cle,0,6)=="Chemin"){ // si le nom du champ commence par "Chemin," $index=substr($cle,6); // tu retrouves le numéro du Chemin et ça te servira de cle pour l'array $array_chemin[$index]=$valeur; } if( substr($cle,0,3)=="Nom"){ // si le nom du champ commence par "Nom," $index=substr($cle,3); // tu retrouves le numéro du Nom et ça te servira de cle pour l'array $array_nom[$index]=$valeur; } } while ($var = $array_numlien AND $var2 = $array_chemin AND $var3 = $array_nom ) { mysql_query("UPDATE liens SET Chemin_liens='.$var2.', Nom_liens='.$var3.' WHERE Ind_liens='$numsl' AND Num_liens='.$var.'"); }-------->Ligne 64
Voici l'erreur qui m'es affiché apres execution
Fatal error: Maximum execution time of 30 seconds exceeded in c:\documents and settings\garnier\mes documents\web\saveliens2.php on line 64
au passage vois les resultats de mes array
Array ( [1] => 1 [2] => 3 [3] => 4 [4] => 7 [5] => 8 [6] => 9 [7] => 10 [8] => 11 [9] => 12 [10] => 13 [11] => 14 )
Array ( [1] => http://v0.battle-arenas.net/ [2] => http://www77.hattrick.org [3] => https://lobby.ogame.gameforge.com/fr_FR/ [4] => http://www.villajuifacrew.com [5] => www.google.fr [6] => www.msn.fr [7] => www.yahoo.fr [8] => www.psg.fr [9] => www.lequipe.fr [10] => www.allpsg.com [11] => http://www.lesiteduzero.fr )
Array ( [1] => Battle-Arenas [2] => Hattrick [3] => Ogame [4] => --VJC-- [5] => Google [6] => MSN [7] => Yahoo [8] => PSG [9] => L'Equipe [10] => test [11] => Le site du zero )
Merci a ceux qui pourrons m'eclairer sur le probleme que je rencontre ^^
Bonjour, moi je suis resté sur ton premier code que je comprenais mieux. Je l'ai arrangé alors essaye le comme ça; dis moi s'il marche mieux:
(il faut faire attention à ne pa mélanger php et mysql dans tes requetes, car tu mets une variables php sans avoir préalablement fermé les guillemets, et il y avait une faute de frappe)
Et de plus, tu mets un UPDATE, alors que je pense que tu veux créer un enregistrement, non le mettre à jour? il faut dans ce cas: "insert into la_table value('premier_champ', 'deuxieme'....))". Et je n'ai pas compris ton histoire de $nb...
include("Conect.php");
if (isset($_SESSION['Login']))
{
$numsl = $_SESSION['Login'];
}
else
{
include("VLog2.php");
}
$Chemin = $_POST['Chemin']; ------------------------> ligne 38
$Nom = $_POST['Nom']; ------------------------> ligne 39
$Numlien = $_POST['Numlien']; ------------------------> ligne 40
$retoursl = mysql_query("SELECT COUNT(*) AS nb_sliens FROM liens WHERE Ind_liens='".$numsl."');
$donneessl = mysql_fetch_array($retoursl);
$totalDessliens = $donneessl['nb_sliens'];
for ($inb=1;$inb<$totalDessliens;$inb++){
$var=$Numlien.$inb;
$var2=$Chemin.$inb;
$var3=$Nom.$inb;
mysql_query("UPDATE liens SET Chemin_liens='".$var2."', Nom_liens='".$var3."' WHERE Ind_liens='".$numsl."' AND Num_liens='".$var.'");
}
echo "
<html><head>
</head>
<body>
<table wight=\"500\" align=\"center\"><tr><td>
<p>
<br><br><br><br>
Vos liens favoris ont été mise à jour. <br>
<br>
Merci.<br>
Yull.<br>
</p>
</td></td></table>
</body></html>";
?>
<a href="javascript:window.close();">Fermer</a>
Et dans la première page:
<form method="POST" action="Saveliens.php">
<table style="border-collapse: collapse;">
<tr><th style="border: 0px;" VALIGN="top" ALIGN="center">
<?
include("Conect.php");
if (isset($_SESSION['Login']))
{
$numla = $_SESSION['Login'];
}
else
{
include("VLog2.php");
}
$retourla = mysql_query("SELECT Chemin_liens, Nom_liens, Num_liens, Ind_liens FROM liens, individu WHERE Ind_liens='".$numla."' AND Num_ind='".$numla."');
$nb=0;
while ($donneesla = mysql_fetch_array($retourla))
{
$nb++;
?>
<table style="border-collapse: collapse;">
<tr><th style="border: 0px;" VALIGN="top" ALIGN="center">
<input type="hidden" name="Numlien'.$nb.'" tabindex="10" value="<?echo $donneesla['Num_liens'];?>" />
<input type="text" name="Chemin'.$nb.'" tabindex="20" value="<?echo $donneesla['Chemin_liens'];?>" />
<input type="text" name="Nom'.$nb.'"tabindex="30" value="<?echo $donneesla['Nom_liens'];?>" /></th></tr>
</table>
</th></tr>
<?
}
?>
<br /></h5>
<tr><th style="border: 0px;" VALIGN="top" ALIGN="center">
<p><br /><input type="submit" value="Modifier"></p></th></tr>
</table>
</form>
(il faut faire attention à ne pa mélanger php et mysql dans tes requetes, car tu mets une variables php sans avoir préalablement fermé les guillemets, et il y avait une faute de frappe)
Et de plus, tu mets un UPDATE, alors que je pense que tu veux créer un enregistrement, non le mettre à jour? il faut dans ce cas: "insert into la_table value('premier_champ', 'deuxieme'....))". Et je n'ai pas compris ton histoire de $nb...
include("Conect.php");
if (isset($_SESSION['Login']))
{
$numsl = $_SESSION['Login'];
}
else
{
include("VLog2.php");
}
$Chemin = $_POST['Chemin']; ------------------------> ligne 38
$Nom = $_POST['Nom']; ------------------------> ligne 39
$Numlien = $_POST['Numlien']; ------------------------> ligne 40
$retoursl = mysql_query("SELECT COUNT(*) AS nb_sliens FROM liens WHERE Ind_liens='".$numsl."');
$donneessl = mysql_fetch_array($retoursl);
$totalDessliens = $donneessl['nb_sliens'];
for ($inb=1;$inb<$totalDessliens;$inb++){
$var=$Numlien.$inb;
$var2=$Chemin.$inb;
$var3=$Nom.$inb;
mysql_query("UPDATE liens SET Chemin_liens='".$var2."', Nom_liens='".$var3."' WHERE Ind_liens='".$numsl."' AND Num_liens='".$var.'");
}
echo "
<html><head>
</head>
<body>
<table wight=\"500\" align=\"center\"><tr><td>
<p>
<br><br><br><br>
Vos liens favoris ont été mise à jour. <br>
<br>
Merci.<br>
Yull.<br>
</p>
</td></td></table>
</body></html>";
?>
<a href="javascript:window.close();">Fermer</a>
Et dans la première page:
<form method="POST" action="Saveliens.php">
<table style="border-collapse: collapse;">
<tr><th style="border: 0px;" VALIGN="top" ALIGN="center">
<?
include("Conect.php");
if (isset($_SESSION['Login']))
{
$numla = $_SESSION['Login'];
}
else
{
include("VLog2.php");
}
$retourla = mysql_query("SELECT Chemin_liens, Nom_liens, Num_liens, Ind_liens FROM liens, individu WHERE Ind_liens='".$numla."' AND Num_ind='".$numla."');
$nb=0;
while ($donneesla = mysql_fetch_array($retourla))
{
$nb++;
?>
<table style="border-collapse: collapse;">
<tr><th style="border: 0px;" VALIGN="top" ALIGN="center">
<input type="hidden" name="Numlien'.$nb.'" tabindex="10" value="<?echo $donneesla['Num_liens'];?>" />
<input type="text" name="Chemin'.$nb.'" tabindex="20" value="<?echo $donneesla['Chemin_liens'];?>" />
<input type="text" name="Nom'.$nb.'"tabindex="30" value="<?echo $donneesla['Nom_liens'];?>" /></th></tr>
</table>
</th></tr>
<?
}
?>
<br /></h5>
<tr><th style="border: 0px;" VALIGN="top" ALIGN="center">
<p><br /><input type="submit" value="Modifier"></p></th></tr>
</table>
</form>
Merci ilan27 de te pencher sur mon probleme ^^
Je souhaite bien faire un update de mes champs et non pas un insert.
je viens d'essayer avec ton code et il me retourne les meme erreur qu'au debut
Notice: Undefined index: Chemin in c:\documents and settings\garnier\mes documents\web\saveliens2.php on line 38
Notice: Undefined index: Nom in c:\documents and settings\garnier\mes documents\web\saveliens2.php on line 39
Notice: Undefined index: Numlien in c:\documents and settings\garnier\mes documents\web\saveliens2.php on line 40
en tout cas merci de consacrer du temps pour mon soucis c'est vraiment tres gentil ^^
Je souhaite bien faire un update de mes champs et non pas un insert.
je viens d'essayer avec ton code et il me retourne les meme erreur qu'au debut
Notice: Undefined index: Chemin in c:\documents and settings\garnier\mes documents\web\saveliens2.php on line 38
Notice: Undefined index: Nom in c:\documents and settings\garnier\mes documents\web\saveliens2.php on line 39
Notice: Undefined index: Numlien in c:\documents and settings\garnier\mes documents\web\saveliens2.php on line 40
en tout cas merci de consacrer du temps pour mon soucis c'est vraiment tres gentil ^^
Ok, mais c'est quoi ce $nb ? parce qu'il contient des caractères de variables des ' etc...
Et puis un moment c'est $nb, et un autre c'est $inb...
Et puis un moment c'est $nb, et un autre c'est $inb...
ah oué désolé...$nb est une variable que j'incremente puisque j'effectu la maj de plusieurs lignes de ma table en une fois.
En gros j'ai une page qui me permet de mettre a jour mes liens favoris sur ma page d'accueil web.
un liens est composé dans ma bdd d'un numeros, d'un nom et d'un chemin.
il faut donc que je parvienne a mettre a jour ses 3 infos et ceux pour chacun des liens que j'ai et en une fois.
un liens est composé dans ma bdd d'un numeros, d'un nom et d'un chemin.
il faut donc que je parvienne a mettre a jour ses 3 infos et ceux pour chacun des liens que j'ai et en une fois.
Je vois comment ça marche, c bon, mais dans ce cas, tu n'as pas de variable $_POST['Chemin'] ou autre, puisqu'ils sont toujours avec un nombre...
et puis il faut dans ton formulaire que tu insère $nb comme ceci parce que c du php:
<?php echo $nb; ?>
et puis il faut dans ton formulaire que tu insère $nb comme ceci parce que c du php:
<?php echo $nb; ?>
heu...nop, la variable $_POST['Chemin'] est une chaine de caractere et non un numero.
cette chaine contient par exemple le nouveau chemin du lien que je doit mettre a jour dans ma bdd.
cette chaine contient par exemple le nouveau chemin du lien que je doit mettre a jour dans ma bdd.
Oui, mais moi je ne vois pas qu'un seul lien a mettre a jour, tu m'as dit toi-même
qu'il y en avait plusieurs à la fois. °_°
D'où les nombres que tu rajoutes (je pense) à la fin de chemin... non?
qu'il y en avait plusieurs à la fois. °_°
D'où les nombres que tu rajoutes (je pense) à la fin de chemin... non?
Bonsoir,
j'en reviens à la suite du post 7:
le codewhile (while ($var = $array_numlien AND $var2 = $array_chemin AND $var3 = $array_nom ) AND $var2 = $array_chemin AND $var3 = $array_nom )
est une boucle infinie par ce que while ($var = $array_numlien est toujours vrai , tu copies un array dans un autre array
il faut faire une boucle qui parcours l'array
On suppose que $array_numlien et $array_chemin $array_nom ont le même nombre d'éléments et les mêmes clefs (ce qui est verifié dans l'affichage par print_r)
donc on va parcourir un des array et reupere en même temps les valeurs des autres ayant la même clef
foreach($array_numlien as $cle=>$value){
$numlien=$value; // recup numero lien
$chemin_lien=$array_chemin[$cle];
$nom_lien=$array_nom[$cle];
// on UPDATE dans la base c'est ce que j'ai cru comprendre dans un post plus haut
$query=UPDATE liens SET Chemin_liens='.$chemin_lien.', Nom_liens='.$nom_lien.' WHERE Num_liens='.$numlien.' ";
mysql_query($query) or die (mysql_error());
}
Rajoutes une deuxième condition dans WHERE si tu veux
j'en reviens à la suite du post 7:
le codewhile (while ($var = $array_numlien AND $var2 = $array_chemin AND $var3 = $array_nom ) AND $var2 = $array_chemin AND $var3 = $array_nom )
est une boucle infinie par ce que while ($var = $array_numlien est toujours vrai , tu copies un array dans un autre array
il faut faire une boucle qui parcours l'array
On suppose que $array_numlien et $array_chemin $array_nom ont le même nombre d'éléments et les mêmes clefs (ce qui est verifié dans l'affichage par print_r)
donc on va parcourir un des array et reupere en même temps les valeurs des autres ayant la même clef
foreach($array_numlien as $cle=>$value){
$numlien=$value; // recup numero lien
$chemin_lien=$array_chemin[$cle];
$nom_lien=$array_nom[$cle];
// on UPDATE dans la base c'est ce que j'ai cru comprendre dans un post plus haut
$query=UPDATE liens SET Chemin_liens='.$chemin_lien.', Nom_liens='.$nom_lien.' WHERE Num_liens='.$numlien.' ";
mysql_query($query) or die (mysql_error());
}
Rajoutes une deuxième condition dans WHERE si tu veux
Merci Alain42, je n'ai plus d'erreur qui s'affiche cepandant l'update ne s'effectus pas.
voici le resultat de mes print array
Array ( [1] => 1 [2] => 3 [3] => 4 [4] => 7 [5] => 8 [6] => 9 [7] => 10 [8] => 11 [9] => 12 [10] => 13 [11] => 14 )
Array ( [1] => Battle-Arenas [2] => Hattrick [3] => Ogame [4] => --VJC-- [5] => Google [6] => MSN [7] => Yahoo [8] => PSG [9] => L Equipe [10] => test [11] => Le site du zero )
Array ( [1] => http://v0.battle-arenas.net/ [2] => http://www77.hattrick.org [3] => https://lobby.ogame.gameforge.com/fr_FR/ [4] => http://www.villajuifacrew.com [5] => https://www.google.fr/?gws_rd=ssl [6] => https://www.msn.com/fr-fr/?redirfallthru=http%3a%2f%2fwww.msn.fr%2fmeteo%2f%3f [7] => https://fr.yahoo.com/ [8] => https://www.psg.fr/ [9] => https://www.lequipe.fr/ [10] => https://www.psg.fr/ [11] => http://www.lesiteduzero.fr )
Je te remet aussi le code :
-----------------------------------------------------------------------
@ilan27 : D'où les nombres que tu rajoutes (je pense) à la fin de chemin... non?
ou en effet le $nb est la pour ca ^^
Merci bcp pour la precieuse aide que vous m'apportez, je sais que j'ai un peu du mal vus que j'ai appris HTML/PHP/SQL en solo mais vous me permettez de comprendre encore bcp de choses. ^^
voici le resultat de mes print array
Array ( [1] => 1 [2] => 3 [3] => 4 [4] => 7 [5] => 8 [6] => 9 [7] => 10 [8] => 11 [9] => 12 [10] => 13 [11] => 14 )
Array ( [1] => Battle-Arenas [2] => Hattrick [3] => Ogame [4] => --VJC-- [5] => Google [6] => MSN [7] => Yahoo [8] => PSG [9] => L Equipe [10] => test [11] => Le site du zero )
Array ( [1] => http://v0.battle-arenas.net/ [2] => http://www77.hattrick.org [3] => https://lobby.ogame.gameforge.com/fr_FR/ [4] => http://www.villajuifacrew.com [5] => https://www.google.fr/?gws_rd=ssl [6] => https://www.msn.com/fr-fr/?redirfallthru=http%3a%2f%2fwww.msn.fr%2fmeteo%2f%3f [7] => https://fr.yahoo.com/ [8] => https://www.psg.fr/ [9] => https://www.lequipe.fr/ [10] => https://www.psg.fr/ [11] => http://www.lesiteduzero.fr )
Je te remet aussi le code :
<form method="POST" action="Saveliens2.php"> <table style="border-collapse: collapse;"> <tr><th style="border: 0px;" VALIGN="top" ALIGN="center"><img src="images/H.jpg" border= "0"/></th></tr> <tr><th style="border: 0px;" VALIGN="top" ALIGN="center"> <h5> <? include("Conect.php"); if (isset($_SESSION['Login'])) { $numla = $_SESSION['Login']; } else { include("VLog2.php"); } $retourla = mysql_query("SELECT Chemin_liens, Nom_liens, Num_liens, Ind_liens FROM liens, individu WHERE Ind_liens='$numla' AND Num_ind='$numla'"); $nb=0; while ($donneesla = mysql_fetch_array($retourla)) { $nb++; ?> <table style="border-collapse: collapse;"> <tr><th style="border: 0px;" VALIGN="top" ALIGN="center"> <input type="hidden" name="<?php echo 'Numlien'.$nb ; ?>" tabindex="10" value="<?echo $donneesla['Num_liens'];?>" /> <input type="text" name="<?php echo 'Chemin'.$nb ; ?>" tabindex="20" value="<?echo $donneesla['Chemin_liens'];?>" /> <input type="text" name="<?php echo 'Nom'.$nb ; ?>"tabindex="30" value="<?echo $donneesla['Nom_liens'];?>" /></th></tr> </table> </th></tr> <? } ?> <br /></h5> <tr><th style="border: 0px;" VALIGN="top" ALIGN="center"> <p><br /><input type="submit" value="Modifier"></p></th></tr> <tr><th style="border: 0px;" VALIGN="top" ALIGN="center"><img src="images/B.jpg" border= "0"/></th></tr> </table> </form>
-----------------------------------------------------------------------
<? include("Conect.php"); if (isset($_SESSION['Login'])) { $numsl = $_SESSION['Login']; } else { include("VLog2.php"); } foreach($_POST as $cle=>$valeur){ // et tu mets ça dans un array if( substr($cle,0,7)=="Numlien"){ // si le nom du champ commence par "Numlien" $index=substr($cle,7); // tu retrouves le numéro du lien et ça te servira de cle pour l'array $array_numlien[$index]=$valeur; } if( substr($cle,0,6)=="Chemin"){ // si le nom du champ commence par "Chemin," $index=substr($cle,6); // tu retrouves le numéro du Chemin et ça te servira de cle pour l'array $array_chemin[$index]=$valeur; } if( substr($cle,0,3)=="Nom"){ // si le nom du champ commence par "Nom," $index=substr($cle,3); // tu retrouves le numéro du Nom et ça te servira de cle pour l'array $array_nom[$index]=$valeur; } } print_r($array_numlien); print_r($array_nom); print_r($array_chemin); foreach($array_numlien as $cle=>$value){ $numlien=$value; // recup numero lien $chemin_lien=$array_chemin[$cle]; $nom_lien=$array_nom[$cle]; // on UPDATE dans la base c'est ce que j'ai cru comprendre dans un post plus haut mysql_query("UPDATE liens SET Chemin_liens='.$chemin_lien.', Nom_liens='.$nom_lien.' WHERE Num_liens='.$numlien.' AND Ind_liens='.$numsl.' ") or die (mysql_error()); } echo " <html><head> </head> <body> <table wight=\"500\" align=\"center\"><tr><td> <p> <br><br><br><br> Vos liens favoris ont été mise à jour. <br> <br> Merci.<br> Yull.<br> </p> </td></td></table> </body></html>"; ?>
@ilan27 : D'où les nombres que tu rajoutes (je pense) à la fin de chemin... non?
ou en effet le $nb est la pour ca ^^
Merci bcp pour la precieuse aide que vous m'apportez, je sais que j'ai un peu du mal vus que j'ai appris HTML/PHP/SQL en solo mais vous me permettez de comprendre encore bcp de choses. ^^
C'est bon j'ai trouvé d'ou venais l'erreur !!!
c'etait de ma requette ou les variables etaient mal inscrites
'.$numlien.' au lieu de '".$numlien."'
tout est donc ok. L'update ce passe parfaitement.
Je tiens a remercier une derniere fois tout ceux qui m'on aidé pour mon probleme et un remerciment particulier a Alain42 qui y a passer bcp de temps et m'a resolu le probleme.
Je suis vraiment tres content d'avoir decouvers commentcamarche.net, les gens y sont tres simpa et patient.^^
Je tenterai desormai a mon tours d'aider un peu ceux qui s'y connaissent encore moin que moi.
Encore Merci a tous
c'etait de ma requette ou les variables etaient mal inscrites
'.$numlien.' au lieu de '".$numlien."'
tout est donc ok. L'update ce passe parfaitement.
Je tiens a remercier une derniere fois tout ceux qui m'on aidé pour mon probleme et un remerciment particulier a Alain42 qui y a passer bcp de temps et m'a resolu le probleme.
Je suis vraiment tres content d'avoir decouvers commentcamarche.net, les gens y sont tres simpa et patient.^^
Je tenterai desormai a mon tours d'aider un peu ceux qui s'y connaissent encore moin que moi.
Encore Merci a tous