PHP|Débutant :: Forums

Advertisement

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

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

#26 Re : Forum Général PHP » Calcul d'un indice de jour de stock » 27-10-2011 20:36:56

Jc a écrit :

il te faut l'inclure dans le HAVING et non pas le rajouter dans un WHERE.

J'aimerais comprendre, cela est-il plus performant ou c'est parce que c'est plus "propre" ?

Au niveau du résultat obtenu, en faisant ORDER BY DateEpexidiotn j'obtiens quelque chose de plus cohérent.

Jc a écrit :

Pour ta condition, je n'ai pas eu le temps de vérifier le comportement de la requête

Raison de plus pour te remercier infiniment de ton aide, prendre le temps que tu n'as pas pour m'aider (et aider les autres) c'est très gentil.

#27 Re : Forum Général PHP » Calcul d'un indice de jour de stock » 27-10-2011 20:36:56

Jc a écrit :

Pour répondre exactement à ta question, tu fais un truc du genre: 

print "moyenne=".$result[0]." jours";

.

Bonne continuation.

Merci tu es sympa.

A l'affichage j'obtiens : moyenne 0.00005787 jours roll

J'ai rajouté à la requête  WHERE DateExpedition != '0000-00-00 00:00:00' car parfois des produits (volés par exemple) ne sorte pas du stock côté logiciel (maaaalllhheereusement !)

#28 Re : Forum Général PHP » fonction UPDATE sans REFRESH ?? » 22-10-2011 07:55:26

kiiks a écrit :

Effectivement.. J'inscris toujours * par habitude je vais le modifier wink

J'ai ajouté ce code au début de ma page et dès qu'on clique sur le lien, c'est cette fonction qui s'exécute avant d'afficher les images... Est-ce qu'il y a un meilleur moyen ?

Salut,

Cette petite phrase ne sert peut être pas à grand chose, du moins pas à t'aider dans ton problème, mais il est très important de ne pas utiliser * dans une requête, tu peux gagner en performance en prenant l'habitude de mettre le nom du champ que tu sélectionne wink.

Je te recommande aussi de vérifier ta variable GET avant de l'utiliser (je ne sais pas si tu le fais déjà) avec is_numeric (pour les valeurs numériques) et isset par exemple.

Le but de ta démarche c'est d'incrémenter de 1 quand quelqu'un regarde une image ?

#29 Re : Forum Général PHP » Calcul d'un indice de jour de stock » 27-10-2011 20:36:56

Maljuna Kris a écrit :

Saluton,
Faire un AVG d'un TIME_DIFF avec un formatage, y-a vraiment pas de quoi baver.

J'avais déjà essayé mais j'avais un résultat un peu bizarre (pour ne pas dire étrange :-p) ...

Jc a écrit :

Bonsoir,

Voici la requête pour les 5000 derniers enregistrements. Filtre à adapter selon tes besoins (année, etc...). Si tu as moins de 5000 enregistrements dans ta base fait un <= pour avoir un résultat.


SELECT  AVG(UNIX_TIMESTAMP(DateExpedition)-UNIX_TIMESTAMP(DateReception))/86400 FROM myTable GROUP BY IdProduit HAVING count(IdProduit)=5000 ORDER BY DateReception DESC
 

Note: la requête ci-dessus pour être exact ne recense pas les 5000 derniers enregistrements mais les 5000 dernières receptions, que tu peux remplacer par les expéditions.

++

Merci beaucoup JC

Je n'ai jamais vue une requête comme ça mais j'ai une question. Dois-je faire une boucle pour afficher le résultat si oui, comment afficher le résultat de façon groupé (par exemple : Moyenne: '14' jours) ? Car quand je fais un While, j'ai un résultat avec des milliers de chiffres hmm ...

Merci à vous pour votre aide, vous êtes incroyables !

#30 Re : Forum Général PHP » Calcul d'un indice de jour de stock » 27-10-2011 20:36:56

A la bonheur ! J'en bave déjà lol !

Tu as parfaitement compris mon problème, je veux savoir en combien mes produits restent en stock mais pas forcément pour chaque produit mais pour le global.

Par exemple :

Sur les 5000 derniers enregistrements, les produits sont restés 14.7 jours en moyenne en stock

Je souhaite que le résultat soit exprimé en jours.

Merci JC !!

#31 Forum Général PHP » Calcul d'un indice de jour de stock » 27-10-2011 20:36:56

Anthotill
Réponses : 28

Bonjour à tous,

Je m'arrache les cheveux pour calculer un indice de jour de stock, en gros, combien de temps en moyenne reste un enregistrement dans ma base de données.

J'ai donc une table avec deux champs DateTime sous Mysql : DateReception et DateExpedition

Voici la structure de ma table:
IdProduit - IdProvenance - NumeroLivraison - DateReception - DateExpedition

J'avoue que j'ai essayé des dizaines et des dizaines de solutions, mais aucunes ne fonctionnes.

Avez vous une solution concernant le problème cité ? Est ce qu'il faut à votre avis utiliser des fonctions Mysql (AVG, SUM) ou qu'il faut passer par PHP en sachant qu'il y a 150 - 200 enregistrements à comparer ?

J'ai essayé de faire des recherches sur google mais il y a à boire et à manger, j'ai un peu essayé tout ce que j'ai vue sans succès ...

Merci à vous,

Antho

#32 Re : Forum Général PHP » Foreach sur plusieurs POST » 06-06-2011 08:21:27

Bonjour moogli et merci pour ton aide,

N'y aurait-il pas un moyen de fournir des "index" différents aux trois champs plutôt que de changer le reste ?

En effet, je ne passe pas un temps "officiel" sur ce problème car je suis au boulot et je voudrais éviter de tout changer si cela est toujours possible.

Dans la négative, si je fait 3 tableaux, dois-je faire trois boucles pour afficher les inputs genre :


for($i=0;$i < $DETAILS_CMD['product_quantity'];$i++)
{
echo '<input type="text" name="lignes['.$i.'][numero_serie]" id="numero_serie" value="" /><br>';
} // fin for
for($i_1=0;$i_1 < $DETAILS_CMD['product_quantity'];$i_1++)
{
echo '<input type="hidden" name="lignes['.$i_1.'][details]" id="details" value="'.filtre_spec_caracteres($DETAILS_CMD['order_item_name']).'" /><br>';
} // fin for
for($i_2=0;$i_2 < $DETAILS_CMD['product_quantity'];$i_2++)
{
echo '<input type="hidden" name="lignes['.$i_2.'][PartNumber]" id="PartNumber" value="'.$DETAILS_CMD['order_item_sku'].'" /><br>';
} // fin for
 

Si oui, comment récupérer ces trois boucles, est-il possible de les récupérer en une seule et ainsi ne faire qu'une seule requête d'insertion dans la base de donnée ?

#33 Re : Forum Général PHP » Foreach sur plusieurs POST » 06-06-2011 08:21:27

Bon je crois que j'ai une piste, si je modifie ceci :


echo '<input type="text" name="lignes['.$i.'][numero_serie]" id="numero_serie" value="" /><br>';
echo '<input type="hidden" name="lignes['.$i.'][details]" id="details" value="'.filtre_spec_caracteres($DETAILS_CMD['order_item_name']).'" /><br>';
echo '<input type="hidden" name="lignes['.$i.'][PartNumber]" id="PartNumber" value="'.$DETAILS_CMD['order_item_sku'].'" /><br>';
 

Pour ceci :


echo '<input type="text" name="lignes[numero_serie]" id="numero_serie" value="" /><br>';
echo '<input type="hidden" name="lignes[details]" id="details" value="'.filtre_spec_caracteres($DETAILS_CMD['order_item_name']).'" /><br>';
echo '<input type="hidden" name="lignes[PartNumber]" id="PartNumber" value="'.$DETAILS_CMD['order_item_sku'].'" /><br>';
 

J'ai bien tous les enregistrement mais bien sur, les informations enregistrées dans mysql ne sont pas les bonnes car dans le "DOM l'id n'est pas UNIQUE" (ref Maljuna Kris :-)).

Donc le problème viens de $i qui ne doit probablement pas fournir assez d'id différent dans la page html.

Comment contourner cela, tel est la question ?

#34 Re : Forum Général PHP » Foreach sur plusieurs POST » 06-06-2011 08:21:27

Bonjour,

J'ai encore essayé pas mal de modification mais je n'ai toujours que la moitié de la boucle qui est lu ...

Je commence a désespérer !

Il y a surement un problème avec le foreach de la ligne 88 qu'en pensez vous ?

#35 Re : Forum Général PHP » Foreach sur plusieurs POST » 06-06-2011 08:21:27

Re,

Voici le code complet:


<?php
// Si il y a des commandes -> $NB_LST_CMD != '0'
if($NB_LST_CMD != '0')
{
?>
<form id="form1" name="form1" method="post" action="test.php">

<?php
// Boucle pour afficher le nom/prénom du client
while($DETAILS_NAME = mysql_fetch_assoc($REQ_DETAILS_NAME))
{
$NameClt_1 = $DETAILS_NAME['name'];
echo $NameClt_1;
}
?>

<br>

<?php
// Boucle pour afficher le contenu de la commande
while($DETAILS_CMD = mysql_fetch_assoc($REQ_DETAILS_CMD))
{
// Création d'une varible pour l'email du client
$EmailClt = $DETAILS_CMD['email'];
?>

<?php echo $DETAILS_CMD['order_id']; ?><br>
<?php echo $DETAILS_CMD['order_item_sku']; ?><br>
<?php echo $DETAILS_CMD['order_item_name']; ?><br>
<?php echo $DETAILS_CMD['product_quantity']; ?><br>

<?php
for($i=0;$i < $DETAILS_CMD['product_quantity'];$i++)
{
echo '<input type="text" name="lignes['.$i.'][numero_serie]" id="numero_serie" value="" /><br>';
echo '<input type="hidden" name="lignes['.$i.'][details]" id="details" value="'.filtre_spec_caracteres($DETAILS_CMD['order_item_name']).'" /><br>';
echo '<input type="hidden" name="lignes['.$i.'][PartNumber]" id="PartNumber" value="'.$DETAILS_CMD['order_item_sku'].'" /><br>';
} // fin for
} // Fin while($DETAILS_CMD = mysql_fetch_assoc($REQ_DETAILS_CMD))
?>

<br>

> Veuillez remplir le(s) champ(s) ci-dessus (obligatoire).

<br>

<input type="hidden" name="EnvForm" id="EnvForm" value="1" />
<input type="hidden" name="Name" id="Name" value="<?php echo $NameClt_1; ?>" />
<input type="hidden" name="email" id="email" value="<?php echo $EmailClt; ?>" />
<input type="submit" name="button" id="button" value="Ajouter à la synthèse" class="boutonf_commentaire" />

<?php
} // Fin du if - if($NB_LST_CMD != '0')
?>

</form>

<?php
// Si le formulaire est envoyé, on traite les champs
if(isset($_POST['EnvForm']))
{
// Création d'un flag pour vérifier si tous les champs sont remplis
$flag = false;
// Parcours du tableau
foreach($_POST['lignes'] as $ligne)
{
// Si des champs "numero_serie" ne sont pas remplis $flag = true
if(empty($ligne['numero_serie'])) { $flag = true; }
}
// Si flag vaut TRUE on affiche une erreur
if($flag === true)
{
echo '<div style="padding: 5px;" class="text_erreur"><img src="images/horsstock.png" width="16" height="16" alt="erreur"> Un ou plusieurs champs n\'ont pas été remplis...</div>';
}
// Sinon, on continu le traitement
else
{
// Vérification si les champs on bien été remplis
$id = $_GET['id'];
$emailclt = $_POST['email'];
$Nameclt = $_POST['Name'];

// Connexion base de donnée
include('includes/connexion_base_site.php');    

// On parcours le tableau notamment en cas de plusieurs produits (product_quantity > 1)
foreach($_POST['lignes'] as $ligne)
{
// REQUETE INSERTION DANS LA BASE SN / ASSUR
$SQL_INSERT_NUM_SERIE =
sprintf("INSERT INTO
gstock_HistoriqueCommande
(NumeroCommande,PartNumber,Designation,NumeroSerie,Email,NameClt,DateAjt)
VALUES ('%s','%s','%s','%s','%s','%s',NOW())"

,$id
,$ligne['PartNumber']
,$ligne['details']
,$ligne['numero_serie']
,$emailclt
,$Nameclt
);  
$REQ_INSERT_NUM_SERIE = mysql_query($SQL_INSERT_NUM_SERIE) or die( "Impossible d'ajouter des données à la table : " .mysql_error());
}
// Fermeture de la base de donnée
mysql_close($db);

// SI correctement éxécuté on redirige
echo '<script language="javascript" type="text/javascript">window.location.replace("test.php?cmd=',$id,'");</script>';

} // Fin else =====> if($flag === true)

} // Fin if   =====> if(isset($_POST['EnvForm']))

?>
 

#36 Re : Forum Général PHP » Foreach sur plusieurs POST » 06-06-2011 08:21:27

Bonjour,

Je modifie le nom des champs de façon définitives et je posterais ensuite l'ensemble du code, merci beaucoup pour votre aide.

Anthony

#37 Re : Forum Général PHP » Foreach sur plusieurs POST » 06-06-2011 08:21:27

Bonjour,

Merci beaucoup. Je n'ai pas l'impression que la fonction soit opérante avec le NOW(), j'ai essayé plusieurs écritures mais pour le moment ça ne fonctionne pas, je verrais ça après.

En revanche, je n'ai toujours que la moitié des enregistrements dans la base, les deux dernières boucles pour être exact (semble t-il en tout cas). Comme si le foreach ne parcourais pas tous le tableau.

Avez vous une idée ?

Anthony

#38 Re : Forum Général PHP » Foreach sur plusieurs POST » 06-06-2011 08:21:27

Bonjour,

En regardant de plus prêt :


foreach($_POST['lignes'] as $ligne)
{
if(empty($ligne['numero'])) { $flag = true; }
}
if($flag === true)
{
echo '<div style="padding: 5px;" class="text_erreur"><img src="images/horsstock.png" width="16" height="16" alt="erreur"> Un ou plusieurs champs n\'ont pas été remplis...</div>';
}
else
{
///
}
 

Je ne suis pas un codeur, je travail juste sur un petit module qui nous facilite la vie au boulot, qui permet de servir comme il se doit nos clients, nous sommes trois à l'utiliser...

Pour la solution donnée par Maljuna Kris, j'ai un petit soucis, il ne prend en compte que la moitié des champs j'ai l'impression :


foreach($_POST['lignes'] as $ligne)
{
$SQL_INSERT_NUM = "INSERT INTO
gstock_Historique (id,PartNumber,Designation,Numero,Email,Name,Date)
VALUES ('','$id','"
.$ligne['PartNumber']."','".$ligne['details']."','".$ligne['numero']."','$email','$Name',NOW())";  
$REQ_INSERT_NUM = mysql_query($SQL_INSERT_NUM) or die( "Impossible d'ajouter des données à la table : " .mysql_error() );
}
 

N'insert que deux enregistrements lorsqu'il y a 4 champs dans le formulaire.

Avez vous une idée ?

Anthony

#39 Re : Forum Général PHP » Foreach sur plusieurs POST » 06-06-2011 08:21:27

Pierrot a écrit :

if(empty($champ)) {
    $flag = true;
    break;
}

a++

Bonjour,

Merci pour ton aide, je n'ai pas de problème avec le flag mais avec le foreach :-)

#40 Re : Forum Général PHP » Foreach sur plusieurs POST » 06-06-2011 08:21:27

Maljuna Kris a écrit :
foreach($_POST['lignes'] as $ligne){
     echo 'numero : ',$ligne['numero'], '<br />details : ',$ligne['details'], '<br />'remarque : ',$ligne['remarque'], '<br />';
     }

Merci beaucoup ! Avec vous les choses sont très vites comprises c'est très bien, je n'y avait pas penser à cette façon d'écrire le code !

Mais désormais, nous revenons à mon premier post à savoir, comment vérifier si les champs sont remplis ?

J'utilisais un flag :


$flag = false;

foreach($_POST['numero'] as $champ)
{
if(empty($champ)) { $flag = true; }
}
if($flag === true)
{
echo '<div style="padding: 5px;" class="text_erreur"><img src="images/horsstock.png" width="16" height="16" alt="erreur"> Un ou plusieurs champs n\'ont pas été remplis...</div>';
}
 

Désormais, je veux faire ce test sur le champ numéro uniquement alors j'ai fait comme suit :


$flag = false;

foreach($_POST['lignes']['numero'] as $champ)
{
if(empty($champ)) { $flag = true; }
}
if($flag === true)
{
echo '<div style="padding: 5px;" class="text_erreur"><img src="images/horsstock.png" width="16" height="16" alt="erreur"> Un ou plusieurs champs n\'ont pas été remplis...</div>';
}
 

sans succès je dois dire ...

Pouvez vous m'aiguiller s'il vous plaît ? (les boucles me font peur, j'ai déjà planté un serveur avec une boucle infinie alors ...)

Merci à vous pour votre aide !

Anthony

#41 Re : Forum Général PHP » Foreach sur plusieurs POST » 06-06-2011 08:21:27

Maljuna Kris a écrit :

Bon, bah, c'est bien ce que tu voulais obtenir, non ?

Oui, le problème vient ensuite.

Comment faire pour traiter ceci ? avec un seul champ il faut faire:


foreach ($_POST['numero'] as $numero_1)
{
// requette insertion BDD
}
 

Mais avec plusieurs champ à récupérer ?


// Ne pas faire ça chez vous :-)
foreach ($_POST['numero'] as $numero_1)
{
foreach ($_POST['details'] as $details_1)
{
foreach ($_POST['remarque'] as $remarque_1)
{
// requette insertion BDD
}
}
}
 

Je sais que l'exemple ci-dessous n'est pas correct (du moins je crois j'ai "peur" d'essayer) mais alors comment on reprend tout les champs dans ces cas là ?

A noté qu'ensuite j'insère une ligne dans une BDD autant de fois qu'il y a de champs "numero"


foreach ($_POST['numero'] as $numero_1)
{
$numero_1 = $numeros;
// REQUETE INSERTION DANS LA BASE
$SQL_INSERT_NUM = "INSERT INTO Historique (id,Details,Remarque,Numero,Date)
VALUES ('','$details','$remarque','$numeros',NOW())"
;  
$REQ_INSERT_NUM = mysql_query($SQL_INSERT_NUM) or die( "Impossible d'ajouter des données à la table : " .mysql_error() );
}
 

Merci pour votre aide,

Anthony

#42 Re : Forum Général PHP » Foreach sur plusieurs POST » 06-06-2011 08:21:27

Re,

Voici le résultat :


array(2)
{
[0]=> array(3)
{
["numero"]=> string(0) ""
["details"]=> string(1) "det1"
["remarque"]=> string(1) "rem1"
}
[1]=> array(3)
{
["numero"]=> string(0) ""
["details"]=> string(1) "det2"
["remarque"]=> string(1) "rem2"
}
}
 

J'ai oublié de préciser que les champs détails et remarque sont des champs hidden qui contiennent des informations provenant d'une BDD mais je ne pense pas que cela gêne ?...

Merci pour ton aide,

Anthony

#43 Re : Forum Général PHP » Foreach sur plusieurs POST » 06-06-2011 08:21:27

Maljuna Kris a écrit :

Saluton,
Comme je te l'ai déjà dit un id doit être unique dans une page HTML, or là, tu risques d'avoir plusieurs ids 'numero', 'details' et 'remarque'.
Ensuite, pour éclaircir le reste de ta problématique, il faudrait nous communiquer le résultat d'un var_dump($_POST['numero']); à partir du script php cible de l'attribut action de ton <form>

Bonjour,

Je ne l'ai pas mis ici mais pour les ID j'incrémente de +1 une variable ce qui donne en gros id="numero<?php echo $var++; ?>".

En ce qui concerne la réponse de var_dump:


array(4)
{
[0]=> string(6) "test1"
[1]=> string(6) "test2"
[2]=> string(6) "test3"
[3]=> string(0) ""
}
 

#44 Forum Général PHP » Foreach sur plusieurs POST » 06-06-2011 08:21:27

Anthotill
Réponses : 22

Bonjour,

A la suite d'un problème (résolu) dans ce Topic : http://forum.phpdebutant.org/viewtopic.php?id=13432 je tombe sur un autre problème.

Pour rappel, je génère un formulaire grâce à une entrée numérique dans ma base de donnée, le champ "numero[]" peut donc être affiché 1 fois comme 5 fois.


<?php
for($i=0;$i < $DETAILS['quantity'];$i++)
{
echo '<input type="text" name="numero[]" id="numero" />';
}
?>
 

Je le récupère ensuite avec un foreach comme ceci sans problème :


<?php
foreach ($_POST['numero'] as $numero_1)
{
// requette insertion BDD
}
?>
 

Désormais, je voudrais récupérer le même formulaire avec avec des informations en plus comme ceci :


<?php
for($i=0;$i < $DETAILS['quantity'];$i++)
{
echo '<input type="text" name="numero[]" id="numero" />';
echo '<input type="text" name="details[]" id="details" />';
echo '<input type="text" name="remarque[]" id="remarque" />';
}
?>
 

Et c'est le drame lol! La je ne sais plus comment faire pour récupérer les champs. J'ai imaginer imbriquer des foreach de cette façon :


<?php
foreach ($_POST['numero'] as $numero_1)
{
foreach ($_POST['details'] as $details_1)
{
// requette insertion BDD
}
}
?>
 

Je ne sais pas si c'est correct et je souhaiterais avoir votre avis avant de faire une bêtise ou une boucle infinie ...

Merci à tous!

Anthony

#45 Re : Forum Général PHP » [Résolu] Vérifier si un formulaire généré à la volé est rempli » 18-05-2011 08:10:38

Maljuna Kris a écrit :

Bon, je pense que cette modification devrait te donner satisfaction :

<?php
$saisie=array_map("trim",$_POST['numero']);
var_dump($saisie);
echo "<br />";
echo array_search("",$saisie);
echo "<br />";
if(array_search("",$saisie)===0){
    echo "il y a des champs vides";
    }
else{
    echo "il y a ".count($saisie). " champs remplis";
    }

Merci beaucoup pour votre aide, vos solutions m'ont été d'un grand secours !

Je considère que mon problème est réglé, merci beaucoup!

Anthony

#46 Re : Forum Général PHP » [Résolu] Vérifier si un formulaire généré à la volé est rempli » 18-05-2011 08:10:38

Maljuna Kris a écrit :
Anthotill a écrit :

Pour vous, qu'elle est la meilleure solution ? la plus optimisée / sécurisée ?

Je suis bien incapable de me prononcer quant à aucun des deux critères.

Ce qui est curieux avec votre solution, c'est que si je rempli le premier champ et pas les autres elle renvoie FALSE, mais si je rempli le deuxième champ est pas les autres ça renvoi TRUE

#47 Re : Forum Général PHP » [Résolu] Vérifier si un formulaire généré à la volé est rempli » 18-05-2011 08:10:38

Bonjour et merci pour vos réponses!

Les solutions que vous proposez fonctionnent toutes les deux apparemment, je vous remercie sincèrement!

Maintenant il faut que je face des tests smile

Pour vous, qu'elle est la meilleure solution ? la plus optimisée / sécurisée ?

Merci à vous en tout cas!

#48 Re : Forum Général PHP » [Résolu] Vérifier si un formulaire généré à la volé est rempli » 18-05-2011 08:10:38

Maljuna Kris a écrit :

Bon, là rien n'a été saisi.
As-tu essayé de tester avec la fonction array_search ?

if(array_search("",$_POST["numero"])

Sinon ton code est bizarre, pourquoi initialiser $i='0' puis for($i = 0;...
D'autre part, dans le DOM un id doit être UNIQUE, or toi tu en crées autant que d'itérations de ta structure for

Avec une saisie :

array(4)
{
[0]=> string(6) "champ1"
[1]=> string(6) "champ2"
[2]=> string(6) "champ3"
[3]=> string(6) "champ4"
}

Je n'ai pas l'impression que array_search renvoi quelque chose, rien ne s'affiche si je valide le formulaire ...

Pour mon code, le champ quantity peut changer, il peut être de 6 pour un utilisateur et de 3 pour un autre, ou même de 1 (jamais 0). le $i = 0 est surement une erreur, car je ne vois pas à quoi il sert ...

Du coup, pour générer le nombre de champ "numero" correspondant à la valeur de quantity je fait la boucle for.

J'ai beaucoup de mal à comprendre comment faire pour contrôler un formulaire de ce type ...

J'espère m'exprimer de façon convenable ...

#49 Re : Forum Général PHP » [Résolu] Vérifier si un formulaire généré à la volé est rempli » 18-05-2011 08:10:38

Maljuna Kris a écrit :

Saluton,
Peux-tu nous montrer le résultat d'un var_dump($_POST["numero"]), STP

Bonjour :-)

Voici:

array(4)
{
[0]=> string(0) "" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) ""
}

Merci pour votre aide

Antho

#50 Forum Général PHP » [Résolu] Vérifier si un formulaire généré à la volé est rempli » 18-05-2011 08:10:38

Anthotill
Réponses : 13

Bonjour à tous,

Je génère un formulaire en fonction d'une quantité stockée dans Mysql comme ceci:

<?php
$i = '0';
for($i=0;$i < $DETAILS['quantity'];$i++)
{
?>
<input type="text" name="numero[]" id="numero" />
<?php } ?>

Je sais récupérer les données de ce formulaire (même si $DETAILS['quantity'] vaut 5 par exemple) mais je n'arrive pas à arrêter l'envoi du formulaire si un des champs n'est pas rempli.

Pour récupérer les données :

<?php
for ($i = 0; $i < count($_POST["numero"]); $i++)
echo $_POST["numero"][$i]." - ";
?>

Mais si $DETAILS['quantity'] vaut 5 et que seulement quatre champs sont remplis la je bloque, je ne sais pas arrêter le formulaire comme on le ferai pour un formulaire "normal" avec :

<?php
// Par exemple
if(isset($_POST['mon_champ']) && (empty($_POST['mon_champ'])))
{
echo 'pas ok...';
}
else
{
echo 'ok...';
}
// ... etc ...
?>

Merci beaucoup pour votre aide précieuse !

Antho

Pied de page des forums

Propulsé par FluxBB