Et moi alors ? =D

Résolu/Fermé
Musp Messages postés 5 Date d'inscription mercredi 30 juillet 2008 Statut Membre Dernière intervention 30 juillet 2008 - 30 juil. 2008 à 15:27
Musp Messages postés 5 Date d'inscription mercredi 30 juillet 2008 Statut Membre Dernière intervention 30 juillet 2008 - 30 juil. 2008 à 16:32
Bonjour à tous !
J'ai vu vos réponses et après avoir perdu quelques touffes de cheveux je viens vous demander conseil !
J'ai aussi un problème :

En fait avec une variable aléatoire, un nombre aléatoire de formulaires se créent.
Je voudrais récupérer leur valeur respective à tous et je les met donc dans un tableau.
Ensuite j'essaie de récupérer leur valeur et de les mettre dans la base de données : un véritable échec.
J'ai essayé tout ce que je pouvais mais c'est au delà de mes moyens on dirait ... Un petit coup de pouce ? :p

Voilà mon code source :

echo '
<p><br />Ajouter '.$nbpart.' partie(s) supplémentaires (lien) : </p>
<p><form method="post" action="parties.php?tag='.$id.'&part='.$nbpart.'"></p>
<p><input name="'.$nbpart.'" type="hidden" /></p>
';

while ($i < $nbpart)
{
echo' <p>'.$ii.'<sup>ère</sup>Partie :
<input name="name['.$i.']" id="name[$i]" type="text" /><br /><br /></p>';
$i++;
$ii++;
}


Donc ici c'est là qu'on choisit le nombre de formulaires et qu'on transmet par tableau.


while ($i < $nbpart)
{
$name.$i = $_POST['name['.$i.']']

// modification de la derniere id

$req = mysql_query("INSERT INTO streaming ( id, valeur, reader, cate, tc ) VALUES ( '$id', '$name.$i', '$reader', '$cate', 'tag')") or die(mysql_error());

echo 'Partie '.$i.' ajoutée avec succ&eagrave;s';

$i++;
$id++;
}


Pourriez-vous m'aider à envoyer les valeurs et à les récupérer dans la base de données please ?
Merci :) !

6 réponses

X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
30 juil. 2008 à 15:52
ça c'est faux:

$name.$i = $_POST['name['.$i.']']

Fait ça:

${"name{$i}"} = $_POST['name['.$i.']'];


Modifie aussi cette ligne:
<input name="name['.$i.']" type="text" />
Id sert à rien. Y a que name qui compte.

Commence par faire un echo de tes valeurs avant d'insérer dans une BD. Parce que tenter d'insérer quelque chose de faux, c'est une perte de temps. Une fois que les valeurs affichent toute bien, là tu fais une inséretion. Alors mets en commentaire ta requête SQL et modifie ca
echo 'Partie '.$i.' ajoutée avec succ&eagrave;s';

pour

echo 'Partie '.$i.' ajoutée avec succ&eagrave;s' et test lala '.${"name{$i}"};

Une fois que dans ton echo tu vois exactement toute les bonnes valeurs défiles avec la bonne position, tu peux considérer que tout a été bien fait jusque là et que tu es prêt pour insérer dans une BD.
0
Musp Messages postés 5 Date d'inscription mercredi 30 juillet 2008 Statut Membre Dernière intervention 30 juillet 2008
30 juil. 2008 à 15:59
Merci pour ta réponse !
J'ai fait comme tu as dit pour l'echo, malheureusement je ne reçois pas la valeur de $name
Les parties sont enregistrées dans la base de données mais ont pour valeur .1 et .2 au lieu du texte que j'ai rentré...
ça vous dit quelque chose ?
Cordialement.
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
30 juil. 2008 à 16:04
Déjà un, tout tes champs inputs doivent être entre des balilses <form></form>. Est-ce le cas?
Ensuite, je ne comprend pas pourquoi tu utilises des input texte alors que tu n'as même pas de boutton submit pour envoyé l'info.

TU dois mettre des boutons submit pour activer ton form.
0
Musp Messages postés 5 Date d'inscription mercredi 30 juillet 2008 Statut Membre Dernière intervention 30 juillet 2008
30 juil. 2008 à 16:10
En réalité je n'ai pas fourni tout mon code :

echo '
<p><br />Ajouter '.$nbpart.' partie(s) supplementaires (lien) : </p>
<p><form method="post" action="parties.php"></p>
';

while ($i < $nbpart)
{
echo' <p>'.$ii.'<sup>ère</sup>Partie :
<input name="name['.$i.']" type="text" /><br /><br /></p>';
$i++;
$ii++;
}

echo '
<label>
<input type="submit" name="Submit" value="Envoyer" />
</label></form><br />
';
}

Bref, un ami m'a dit ça :


"
ton truc peut pas fonctionner Parceque le name de ton input sera égal à name['x']
et quand tu récupères, tu auras un truc du genre
$_POST['name[\'x\']']
"

Mais il ne m'en a pas dit plus, ça vous parle ?

Merci pour votre soutien ! :)
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
30 juil. 2008 à 16:14
Et pourquoi tu ferais pas juste
<input name="name'.$i.'" type="text" /><br /><br /></p>';

puis pour récupérer $_POST['name'.$i];

Me semble que ce serait plus simple car je vois pas le but d'utiliser un array pour ca.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Musp Messages postés 5 Date d'inscription mercredi 30 juillet 2008 Statut Membre Dernière intervention 30 juillet 2008
30 juil. 2008 à 16:24
Bah ça inclus pas dans la base de données même avec ça
0
Musp Messages postés 5 Date d'inscription mercredi 30 juillet 2008 Statut Membre Dernière intervention 30 juillet 2008
30 juil. 2008 à 16:32
Je viens de bricoler un peu ...
ça marche !!!
Merci infiniment tu m'as été d'un grand secours :)
0