PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 27-02-2010 11:50:39

sfc2000
Membre
Inscription : 27-02-2010
Messages : 3

Insérer tous les champs d'un coup

Bonjour,

J'ai un formulaire qui récupère des données (env. 1000), avec le code actuel, le form récupère bien les données mais pour les insérer dans la base mysql, je dois cliquer sur "envoyer" 1 par 1 :-( mon problème est que je voudrais tous envoyer en même temps.

Voici mon code

<? $rep = "app/a/";
$dir = opendir($rep);

function dd($date) {
   return date("d/m/Y H:i:s",$date);
}

while ($f = readdir($dir)) {
   if(is_file($rep.$f)) {
?>     
<html>
<form method="POST" action="add.php">
<center>
<input type="text" name="nom" size="20" value="<? echo "".$f; ?>" maxlength="35">
<input type="text" name="poids" size="20" value="<? echo "".filesize($rep.$f); ?>" maxlength="70">
<input type="text" name="date" size="20" value="<? echo "".dd(filemtime($rep.$f)); ?>" maxlength="70">
<input type="submit" value="Envoyer" name="envoyer">
</center>
</form>
</html>
<?
}
}

closedir($dir); ?>

Merci d'avance de votre aide

Hors ligne

#2 27-02-2010 12:07:23

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Insérer tous les champs d'un coup

Saluton,
Quand je vois certains code, comme celui-ci évidemment, je ne sais plus trop quoi penser ou dire (écrire en l'occurrence).
T'es-tu seulement penché sur le source HTML généré et donc reçu dans le navigateur ?
S'il y a 500 fichiers dans le dossier(répertoire) "app/a/", il y aura 500 pages html contenant chacune un formulaire.
Je ne sais pas comment qualifier ça, en restant courtois.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 27-02-2010 12:13:31

sfc2000
Membre
Inscription : 27-02-2010
Messages : 3

Re : Insérer tous les champs d'un coup

c est de l'aide que j'ai besoin pas du mépris...

en l'occurence c'est bien parce que j'ai le problème que tu as soulever que je pose cette question c'est surement très bête mais je suis pas pro php désolé chacun son job...

En gros ben comme tu l'as dis au lieu d'avoir 1000 form sur ma page j'en voudrais 1 qui insère toute les données dans ma base MySQL

mais merci d'avance si tu peux m'aider

Dernière modification par sfc2000 (27-02-2010 12:20:47)

Hors ligne

#4 27-02-2010 13:20:22

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Insérer tous les champs d'un coup

La marche à suivre s'il n'y a aucune donnée à modifier :
- lecture des données et affichage à l'utilisateur du nombre à insérer
- bouton de validation ou lien vers le script d'ajout
- script d'ajout : lecture des données et boucle pour l'insertion ou bien requête les contenant toutes

Tout ça pour dire, pourquoi faire un formulaire alors que ce qui nous intéresse c'est l'ajout. ^^

Hors ligne

#5 27-02-2010 15:06:44

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Insérer tous les champs d'un coup

>>mais je suis pas pro php

c'est pas un problème php mais un  problème organisationnel wink

ca, c'était la réponse courtoise wink


j'aurais pu dire ; c'est l'bordel ton truc big_smile


a++

Hors ligne

#6 27-02-2010 17:06:47

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Insérer tous les champs d'un coup

sfc2000 a écrit :

c est de l'aide dont j'ai besoin pas du mépris...

Quoique...

sfc2000 a écrit :

En gros ben comme tu l'as dis au lieu d'avoir 1000 form sur ma page j'en voudrais 1 qui insère toute les données dans ma base MySQL

En fait tu n'as pas compris, ce n'est même pas au niveau PHP, que ça coince, c'est au niveau HTML, et ce ne sont pas 1000 formulaires dans la page, ce sont 1000 pages, contenant chacune 1 formulaire, dans le même flux HTML.

Et ça, c'est tout bêtement aberrant.  Ça démontre que tu ne maîtrises pas le b-a ba de la programmation web, le HTML, et que tu ne réfléchis pas avant d'agir.

Ça n'a rien à voir avec le professionnalisme, c'est simplement une question de bon sens.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#7 27-02-2010 18:16:13

sfc2000
Membre
Inscription : 27-02-2010
Messages : 3

Re : Insérer tous les champs d'un coup

Merci à xTG qui m'ammène quand même à quelque chose de concrêt.

sinon ben je vais me dépecher de me désinscrire de se forum bonjour les grosse têtes...

J'ai pas dis que j'étais bon ou quoique ce soit, je suis un pur débutant point bar, c'est même pas pour moi que je cherche ca car je ne fais pas de site.

Bonne soirée

Hors ligne

#8 27-02-2010 21:38:26

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Insérer tous les champs d'un coup

>>J'ai pas dis que j'étais bon ou quoique ce soi
de toutes façon, on t'aurai pas cru wink

a++

Hors ligne

#9 29-05-2010 11:20:07

Cico
Membre
Inscription : 29-05-2010
Messages : 1

Re : Insérer tous les champs d'un coup

Je viens de m'inscrire sur ce site que je trouve pas mal au niveau info mais vraiment desole pour sfc2000 , je trouve vraiment epoustouflant la facon dont on t'a repondu. Alors petit rappel : les forum sont la pour aider , si ca gene quelqu'un d'aider il n'a qu'a quitter le site . Autre rappel le WEB a etait invente par des gents inteligents avec une bonne mentalite , donc essayons tous de suivre une ligne de conduite digne de ce merveilleux outil que l'on peut utiliser for free "Dedieu"

Hors ligne

#10 29-05-2010 20:08:45

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Insérer tous les champs d'un coup

Bonsoir,

Visiblement ton script est fait à la base pour pouvoir valider en db l'info sur les fichiers contenus dans un repertoire. De créer un formulaire dans ta boucle sur ton répertoire sort d'un système automatisé pour rendre la validation manuelle. Sauf si la validation doit être confirmée par un contrôle visuel des données préalable, auquel cas ton formulaire est justifié, il y a trois manières pour résoudre ton automatisation de validation:

1) soit tu construit ta requête insert par concaténation dans ta boucle, et tu effectues une seule requête insert en base de données une fois ta boucle terminée
2) soit tu effectues une requête insert à chaque boucle (le plus lent)
3) soit tu effectues une requête comme au 1) mais tous les x fichiers (le meilleur compromis)

Comme tu débutes voici l'idée


// ...
$str_values=""; // on initialise la variable qui va stocker les valeurs pour ta requête insert
$i=1; // compteur d'enregistrements
while ($f = readdir($dir)) {
   if(is_file($rep.$f)) {
       $f_name=$f; $f_length=filesize($rep.$f);$f_date=dd(filemtime($rep.$f));
       $str_values.="('$f_name','$f_length','$f_date'), ";
      if (($i%10)==0){ // on execute la validation tous les 10 fichiers
        $qry="INSERT INTO my_table (filename,filelength,filedate) VALUES $str_values ";
        mysql_query($qry);
        $i=1;$str_values="";
      }
      $i++;
   }
}
//...
 

Voila le principe

Bonne continuation

EDIT : Si ton algo s'en tiens à ca, il peut ête généré des erreurs à l'éxécution sous unix dans le cas ou les fichiers scans sont partagés, que tu ne possèdes pas les droits suffisants ou si un fichier est tout simplement en cours d'écriture/modification. Donc faut intégrer cela pour avoir un code plus robuste.

Dernière modification par Jc (30-05-2010 08:38:15)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#11 31-05-2010 08:23:17

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : Insérer tous les champs d'un coup

Plop

@sfc2000 : Loin de moi l'idée de perdurer dans la critique, mais débutant ne veut pas forcement dire "faire n'importe quoi".
Ton script ici présenté n'est PAS adapté à ton problème (c'est le soucis quand on choisit un code sur le web sans en comprendre le fond).
Là, il est évident que tu as récupéré un code... et n'as pas pris la peine d'en comprendre ne serait-ce qu'une seule ligne...

@ Cico : Comme tu pourras le constater sur le forum, nous ne manquons pas de question. Aussi humainement que cela puisse paraitre, nous ne sommes pas parfait, et il se trouve que certaines questions nous donnent plus l'impression de "j'ai rien fait parce que j'attends que vous le fassiez" qu'autre chose. Ta "leçon" est donc hilarante ! Car apparemment, tu ne vaux pas mieux : tu n'as pas pris le temps de constater le nombre d'heureux et ne focalise que sur le cas d'un fainéant ...

Le gros soucis, c'est que nous sommes considérés comme des "répondeurs automatiques" et que l'intéressé (qui n'a même pas pris 2sec pour réfléchir à son problème) souhaite que l'on fasse le boulot (de recherche dans ce cas) à sa place. Comme il a été dit, il ne s'agit pas de compétence de programmation, mais tout simplement de bon sens (autrement dit la logique). C'est bien la preuve que notre cher sfc2000 n'a pas pris 2sec ne serait ce que pour réfléchir au "comment". (petit rappel

Ensuite, si vous souhaitez des résultats garantis à 100%, orientez vous vers Acadomnia : ils sont payants mais eux n'ont pas la franchise de vous dire les choses en face (même s'ils le mettent sur leurs fiches ^^) : cela préservera votre égo.

Enfin, la réponse de MK est à la hauteur de l'effort fourni... Nous sommes là pour vous aider... et non bosser à votre place.
Alors si vous arrivez en ayant "récupéré" un code que vous n'avez pas pris le temps de lire, ni l'effort de vous documenter...
Faut pas vous plaindre si on vous envoi balader. Ceux qui ont fait l'effort ont avancé...
Pour ceux qui ne veulent pas avancer... on ne peut rien faire pour vous (et c'est pas faute d'avoir essayé)

Sur ce, bonne journée


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

Pied de page des forums