[RESOLU] Problème array

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Problème array

Re: [RESOLU] Problème array

par sylvaing26 » 23 oct. 2019, 09:47

Bonjour webamies, poste ton code pour qu'on puisse y jeter un coup d'oeil.
L'idéal aurait été de créer un nouveau sujet au lieu d'en déterrer un vieux :)

Re: [RESOLU] Problème array

par webamies » 21 oct. 2019, 17:19

bonsoir Cylvain,
moi meme j'ai le probleme tu peux m'aider?

Re: Problème array

par cylvain » 06 nov. 2016, 14:36

Bon ben j'ai trouvé mon erreur!

je faisais ma boucle trop haut dans mon code ! quel c**!

merci

Re: Problème array

par cylvain » 04 nov. 2016, 12:47

Bonjour, et merci pour votre aide,

J'ai mis mon foreach au niveau de la recherche de mon produit dans une table mais cela ne me crée qu'une seule ligne de commande et pas les autres.

Code : Tout sélectionner

<?php require 'db_conn.php'; page_protect(); $p_id=$_POST['p_id']; $pic_add="../images/$p_id.jpg"; mysqli_query($con,"INSERT INTO user_data (newid,wait) VALUES ('$p_id','yes')"); if (isset($_POST['p_name']) && isset($_POST['itemNo']) && isset($_POST['total']) && isset($_POST['totalAftertax'])) { function getRandomWord($len = 3) { $word = array_merge(range('a', 'z'), range('0', '9')); shuffle($word); return substr(implode($word), 0, $len); } $mem_types=$_POST['itemNo']; foreach ($mem_types as $key => $value) { $mem_type=$value; $query1 = "select * from mem_types WHERE mem_type_id='$mem_type'"; //echo $query; $result1 = mysqli_query($con,$query1); if(mysqli_affected_rows($con)==1){ while($row1 = mysqli_fetch_array($result1,MYSQLI_ASSOC)){ $name_type=$row1['name']; $details=$row1['details']; $days=$row1['days']; } } } $query2 = "select * from tbl_users "; //echo $query; $result2 = mysqli_query($con,$query2); if(mysqli_affected_rows($con)==1){ while($row2 = mysqli_fetch_array($result2,MYSQLI_ASSOC)){ $userName=$row2['userName']; $userProfession=$row2['userProfession']; $userPic=$row2['userPic']; $adss=$row2['adss']; $cpss=$row2['cpss']; $vilss=$row2['vilss']; $css=$row2['css']; $ess=$row2['ess']; $adc=$row2['adc']; $cpc=$row2['cpc']; $vilc=$row2['vilc']; $ncun=$row2['ncun']; $nsiret=$row2['nsiret']; $npref=$row2['npref']; $rcr=$row2['rcr']; $cond=$row2['cond']; } } $proof=$_POST['proof']; if (isset($_POST['other_proof'])) { $other_proof=$_POST['other_proof']; } else { $other_proof=" "; } $invoice=substr(time(),2,10). getRandomWord(); $date=$_POST['date']; $date=date_back($date); $full_name=rtrim($_POST['p_name']); $email=rtrim($_POST['email']); $address=rtrim($_POST['add']); $contact=rtrim($_POST['contact']); $sex=rtrim($_POST['sex']); $height=rtrim($_POST['height']); $weight=rtrim($_POST['weight']); $total=$_POST['totalAftertax']; $paid=$_POST['paid']; $mod_date = strtotime($date."+ $days days"); $expiry=date("Y-m-d",$mod_date); $wait="no"; $time=$days*86400; $exp_time=$time+strtotime($date); $na=$_POST['na']; $ddn=$_POST['ddn']; $ddn=date_back($ddn); $o=$_POST['o']; $m=$_POST['m']; $query = "select * from user_data WHERE wait='yes'"; //echo $query; $result = mysqli_query($con,$query); if(mysqli_affected_rows($con)==1){ while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)){ $p_id=$row['newid']; mysqli_query($con,"UPDATE user_data SET name='$full_name', address='$address', pic_add='$pic_add',contact='$contact', email='$email', height='$height', weight='$weight', joining='$date', proof='$proof', other_proof='$other_proof', sex='$sex' , na='$na' , ddn='$ddn', o='$o' WHERE wait='yes'"); $bal=$total-$paid; mysqli_query($con,"INSERT INTO subsciption (mem_id,name,sub_type,paid_date,total,paid,expiry,invoice,sub_type_name,bal,exp_time,renewal,m,statut) VALUES ('$p_id','$full_name','$mem_type','$date','$total','$paid','$expiry','$invoice','$name_type','$bal','$exp_time','yes','$m','$proof')"); echo "<head><script>alert('Client Enregistré ,');</script></head></html>"; mysqli_query($con,"UPDATE user_data SET wait='no' WHERE wait='yes'"); } } } else { mysqli_query($con,"UPDATE user_data SET wait='no' WHERE wait='yes'"); echo "<head><script>alert('Erreur lors de l'enregistrement, remplir tous les champs);</script></head></html>"; echo "<meta http-equiv='refresh' content='0; url=new_entry.php'>"; } ?>

Re: Problème array

par sylvaing26 » 03 nov. 2016, 23:45

Peux-tu nous donner ta boucle pour voir comment as tu traité ton insertion avec le foreach ?

Re: Problème array

par cylvain » 03 nov. 2016, 16:09

Bonjour sylvaing26 ,

Merci pour ta réponse, j'ai pensé a un foreach mais je dois mal englobé mon insertion car je n'ai toujours qu'une ligne dans ma base de données et des caractères aléatoires dans certaines colonnes.

Re: Problème array

par sylvaing26 » 03 nov. 2016, 15:45

Etant donné que ton formulaire a plusieurs lignes, tes champs relatifs à chaque ligne sont retournés sous forme d'un tableau global.
Si tu fais une boucle foreach sur $_POST['itemNo'] et que tu fais ton insertion à l'intérieur de celle-ci, tu auras alors une insertion par ligne te ton formulaire.

Problème array

par cylvain » 01 nov. 2016, 17:25

Bonjour à Tous,

Dans un de mes formulaire, j'ai la possibilité de facturer des produits en ajoutant des lignes, ces produits sont des forfaits de renouvellement annuel.

Voici mon code coté formulaire :

Code : Tout sélectionner

<?php .... <div class="control-group"> <div class='row'> <div class='col-xs-12 col-sm-12 col-md-12 col-lg-12'> <table class="table table-bordered table-hover"> <thead> <tr> <th width="2%"><input id="check_all" class="formcontrol" type="checkbox"/></th> <th width="15%">Ref</th> <th width="38%">Produits</th> <th width="15%">Prix</th> <th width="15%">Qtt</th> <th width="15%">Total</th> </tr> </thead> <tbody> <tr> <td><input class="case" type="checkbox"/></td> <td><input type="text" data-type="productCode" name="itemNo[]" id="itemNo_1" class="form-control autocomplete_txt" autocomplete="off"></td> <td><input type="text" data-type="productName" name="itemName[]" id="itemName_1" class="form-control autocomplete_txt" autocomplete="off"></td> <td><input type="number" name="price[]" id="price_1" class="form-control changesNo" autocomplete="off" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;"></td> <td><input type="number" name="quantity[]" id="quantity_1" class="form-control changesNo" autocomplete="off" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;"></td> <td><input type="number" name="total[]" id="total_1" class="form-control totalLinePrice" autocomplete="off" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;"></td> </tr> </tbody> </table> </div> </div> <div class='row'> <div class='col-xs-12 col-sm-3 col-md-3 col-lg-3'> <button class="btn btn-danger delete" type="button">- Supprimer</button> <button class="btn btn-success addmore" type="button">+ Ajouter</button> </div> <div class='col-xs-12 col-sm-offset-4 col-md-offset-4 col-lg-offset-4 col-sm-5 col-md-5 col-lg-5'> <form class="form-inline"> <div class="form-group"> <label>Sous Total: &nbsp;</label> <div class="input-group"> <div class="input-group-addon">€</div> <input type="number" class="form-control" id="subTotal" placeholder="Sous Total" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;"> </div> </div> <div class="form-group"> <label>TVA: &nbsp;</label> <div class="input-group"> <div class="input-group-addon">%</div> <input type="number" class="form-control" id="tax" placeholder="TVA" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;"> </div> </div> <div class="form-group"> <label>Montant TVA: &nbsp;</label> <div class="input-group"> <input type="number" class="form-control" id="taxAmount" placeholder="TVA" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;"> <div class="input-group-addon">€</div> </div> </div> <div class="form-group"> <label>Total: &nbsp;</label> <div class="input-group"> <div class="input-group-addon">€</div> <input type="number" class="form-control" name="totalAftertax" id="totalAftertax" placeholder="Total" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;"> </div> </div> <div class="form-group"> <label>Paiement: &nbsp;</label> <div class="input-group"> <div class="input-group-addon">€</div> <input type="number" class="form-control" name="amountPaid" id="amountPaid" placeholder="Paiement" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;"> </div> </div> <div class="form-group"> <label>Solde: &nbsp;</label> <div class="input-group"> <div class="input-group-addon">€</div> <input type="number" class="form-control amountDue" id="amountDue" placeholder="Solde" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;"> </div> </div> </div> </div> </div> <script src="/js/jquery.min.js"></script> <script src="/js/jquery-ui.min.js"></script> <script src="/js/bootstrap.min.js"></script> <script src="/js/bootstrap-datepicker.js"></script> <script src="/js/auto.js"></script> .... ?>
Lorsque j'insère dans ma BDD les informations bien évidement dans ma table j'ai un Array qui s'affiche, je voudrais que chaque ligne de ma facture soient insérer dans ma bdd par ligne.

fichier envoi
<?php

require 'db_conn.php';
page_protect();
$p_id=$_POST['p_id'];

$pic_add="../images/$p_id.jpg";
mysqli_query($con,"INSERT INTO user_data (newid,wait) VALUES ('$p_id','yes')");
if (isset($_POST['p_name']) && isset($_POST['itemNo']) && isset($_POST['totalAftertax']) && isset($_POST['amountPaid']))
{
function getRandomWord($len = 3) {
$word = array_merge(range('a', 'z'), range('0', '9'));
shuffle($word);
return substr(implode($word), 0, $len);
}


$mem_type=$_POST['itemNo'];

$query1 = "select * from mem_types WHERE mem_type_id='$mem_type'";

//echo $query;
$result1 = mysqli_query($con,$query1);

if(mysqli_affected_rows($con)==1){
while($row1 = mysqli_fetch_array($result1,MYSQLI_ASSOC)){
$mem_type=$row1['mem_type_id'];
$name_type=$row1['name'];
$details=$row1['details'];
$days=$row1['days'];


}
}
$query2 = "select * from tbl_users ";

//echo $query;
$result2 = mysqli_query($con,$query2);

if(mysqli_affected_rows($con)==1){
while($row2 = mysqli_fetch_array($result2,MYSQLI_ASSOC)){

$userName=$row2['userName'];
$userProfession=$row2['userProfession'];
$userPic=$row2['userPic'];
$adss=$row2['adss'];
$cpss=$row2['cpss'];
$vilss=$row2['vilss'];
$css=$row2['css'];
$ess=$row2['ess'];
$adc=$row2['adc'];
$cpc=$row2['cpc'];
$vilc=$row2['vilc'];
$ncun=$row2['ncun'];
$nsiret=$row2['nsiret'];
$npref=$row2['npref'];
$rcr=$row2['rcr'];
$cond=$row2['cond'];

}
}

$proof=$_POST['proof'];
if (isset($_POST['other_proof']))
{
$other_proof=$_POST['other_proof'];
}
else
{
$other_proof=" ";
}
$invoice=substr(time(),2,10). getRandomWord();
$date=$_POST['date'];
$date=date_back($date);
$full_name=rtrim($_POST['p_name']);
$email=rtrim($_POST['email']);
$address=rtrim($_POST['add']);
$contact=rtrim($_POST['contact']);
$sex=rtrim($_POST['sex']);
$height=rtrim($_POST['height']);
$weight=rtrim($_POST['weight']);
$total=$_POST['totalAftertax'];
$paid=$_POST['amountPaid'];
$mod_date = strtotime($date."+ $days days");
$expiry=date("Y-m-d",$mod_date);
$wait="no";
$time=$days*86400;

$exp_time=$time+strtotime($date);
$na=$_POST['na'];
$ddn=$_POST['ddn'];
$ddn=date_back($ddn);
$o=$_POST['o'];
$m=$_POST['m'];
$query = "select * from user_data WHERE wait='yes'";

//echo $query;
$result = mysqli_query($con,$query);

if(mysqli_affected_rows($con)==1){
while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)){

$p_id=$row['newid'];

mysqli_query($con,"UPDATE user_data SET name='$full_name', address='$address', pic_add='$pic_add',contact='$contact', email='$email', height='$height', weight='$weight', joining='$date', proof='$proof', other_proof='$other_proof', sex='$sex' , na='$na' , ddn='$ddn', o='$o' WHERE wait='yes'");
$bal=$total-$paid;

mysqli_query($con,"INSERT INTO subsciption (mem_id,name,sub_type,paid_date,total,paid,expiry,invoice,sub_type_name,bal,exp_time,renewal,m,statut)
VALUES ('$p_id','$full_name','$mem_type','$date','$total','$paid','$expiry','$invoice','$name_type','$bal','$exp_time','yes','$m','$proof')");
echo "<head><script>alert('Client Enregistré ,');</script></head></html>";

mysqli_query($con,"UPDATE user_data SET wait='no' WHERE wait='yes'");
}
}


}
else
{
mysqli_query($con,"UPDATE user_data SET wait='no' WHERE wait='yes'");
echo "<head><script>alert('Erreur lors de l'enregistrement, remplir tous les champs);</script></head></html>";
echo "<meta http-equiv='refresh' content='0; url=new_entry.php'>";

}
?>
Voici la table de ma bdd qui m'intéresse:
Image

Je ne sais pas comment insérer dans ma bdd chaque des lignes

Merci à vous