[RESOLU] erreur dans update ?

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] erreur dans update ?

Re: erreur dans update ?

par pacphil » 29 déc. 2016, 00:16

bonjour j'ai voulus faire les modification maintenant cela ne fonction plus quand je clique sur modifier l'update ne ce fait plus.
<?PHP
require'header.php';

function Age($date_naissance){
    $arr1 = explode('/', $date_naissance);
    $arr2 = explode('/', date('d/m/Y'));		
    if(($arr1[1] < $arr2[1]) || (($arr1[1] == $arr2[1]) && ($arr1[0] <= $arr2[0])))
    return $arr2[2] - $arr1[2];
    return ($arr2[2] - $arr1[2] - 1) + 1;
}

$submit = filter_input(INPUT_POST, 'submit');
$nom_update = filter_input(INPUT_POST, 'nom_update');
$type = filter_input(INPUT_POST, 'type');
$sex = filter_input(INPUT_POST, 'sex');
$jour = filter_input(INPUT_POST, 'jour');
$mois = filter_input(INPUT_POST, 'mois');
$annee = filter_input(INPUT_POST, 'annee');
$tail = filter_input(INPUT_POST, 'tail');
$poid = filter_input(INPUT_POST, 'poid');
$signe = filter_input(INPUT_POST, 'signe');
$ethni = filter_input(INPUT_POST, 'ethni');
$yeux = filter_input(INPUT_POST, 'yeux');
$cheveux = filter_input(INPUT_POST, 'cheveux');
$sil = filter_input(INPUT_POST, 'sil');
$fum = filter_input(INPUT_POST, 'fum');
$detail_p = filter_input(INPUT_POST, 'detail_p');

$nom = filter_input(INPUT_GET, 'token');
$ID = filter_input(INPUT_GET, 'token_update');

  if(!empty($_POST['choix'])){
	      $choix = '';			
          echo $choix;
          for ($i=0;$i<count($_POST['choix']);$i++){
          $choix .= $_POST['choix'][$i];
          }     

     
       
            $requete = $connection->prepare('SELECT * FROM membre_plus WHERE ID=:ID');  
            $requete->execute(array(':ID'=> $ID));
            $resultat = $requete->fetchAll();       
            $nb_result = count($resultat);	  
            if ($nb_result == 1){
        
            foreach($_POST['choix'] as $liste){ 
			$value_choix = implode('&nbsp;-&nbsp;',array_keys($liste));
            $compte_plus = ('UPDATE membre_plus SET 
                                                    type=:type, 
                                                    jour=:jour, 
                                                    mois=:mois, 
                                                    annee=:annee,
                                                    sex=:sex,
                                                    tail=:tail,
                                                    poid=:poid,
                                                    signe=:signe,
                                                    ethni=:ethni,
                                                    yeux=:yeux,
                                                    cheveux=:cheveux,
                                                    sil=:sil,
                                                    fum=:fum,
                                                    choix=:choix,
                                                    detail_p=:detail-p  WHERE ID=:ID');
  
          
        
        
            $req_plus = $connection->prepare($compte_plus);			
            $req_plus->execute(array(':ID'=> $ID,':type'=>$type,
                          ':sex'=>$sex,':jour'=>$jour,
                ':mois'=>$mois,':annee'=>$annee,
                ':tail'=>$tail,':poid'=>$poid,
                ':signe'=>$signe,':ethni'=>$ethni,
                ':yeux'=>$yeux,':cheveux'=>$cheveux,
                ':sil'=>$sil,':fum'=>$fum,
                ':choix'=>$value_choix,
                ':detail_p'=>$detail_p)); // ici l'erreur
                }
                                
            $compte_online = ('UPDATE online_site SET type=:type WHERE pseudo_site=:nom');	
            $req = $connection->prepare($compte_online);			
            $req->execute(array(':nom'=> $nom_update,':type'=>$type));
                
            $compte_membre = ('UPDATE membres SET type=:type WHERE pseudo=:nom');	
            $req = $connection->prepare($compte_membre);			
            $req->execute(array(':nom'=> $nom_update,':type'=>$type));
                
    header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/m_profil.php?token=".$_SESSION['login']."");
    exit();
	}
 }

    	
		   $tab_choix = array();		  
           $compte  = $connection->prepare('SELECT * FROM membre_plus WHERE nom=:nom');
           $compte->execute(array(':nom'=>$nom));
           while($result = $compte->fetch(PDO::FETCH_OBJ)){	
		   $tab_choix[] = $result->choix;
		   $list_choix = (!empty($tab_choix))? implode('&nbsp;-&nbsp;',$tab_choix) : '';	   	

?>  
<ul id="nav">
<li><a href="m_profil.php?token=<?php echo $_SESSION['login']; ?>">Modfier profil</a></li>
<li><a href="upload_p.php?token=<?php echo $_SESSION['login']; ?>">Photo public</a></li>
<li><a href="upload_p_p.php?token=<?php echo $_SESSION['login']; ?>">Photo privée</a></li>
<li><a href="upload_c.php?token=<?php echo $_SESSION['login']; ?>">Photo vus par contact</a></li>

</ul>
<h2>Modifier profil</h2>   
 <form method="post" action="<?PHP echo'm_profil.php?token_update='.$result->ID.''; ?>">       
         <table style="width:100%">
          <tr>
            <td>
          <table style="width:50%;border:0;background-image:cssstyle/imdesign/AA.png;" >
        <tr>
          <td style="width:30%" bgcolor="#CCCCCC"><b>Pseudo :</b></td>
          <td style="width:45%"><?PHP echo'<b>'.$result->nom.'</b>' ?>
          <input name="nom_update" type="hidden" value="<?PHP echo ''.$result->nom.'' ?>"  />
          </td>
          </tr>
        <tr>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
		<tr>
		  <td border="0" bgcolor="#CCCCCC">&nbsp;<b>Sexe</b>&nbsp;<b>:</b></td>
		  <td>
          <select class="select" name="type" style="width:150px;">
          <option <?php if($result->type == '')  echo 'selected';?> value="">-----CHOIX-----</option>
          <option <?php if($result->type == 'Femme')  echo 'selected';?> value="Femme">Femme</option>
          <option <?php if($result->type == 'Trav-Trans')  echo 'selected';?> value="Trav-Trans">Trav-Trans</option>
          <option <?php if($result->type == 'Homme')  echo 'selected';?> value="Homme">Homme</option>
          <option <?php if($result->type == 'Couple')  echo 'selected';?> value="Couple">Couple</option>
          </select>          
          </td>
	    </tr>
		<tr>
		  <td border="0" bgcolor="#CCCCCC">&nbsp;<b>Sexualité</b>&nbsp;<b>:</b></td>
		  <td>
		  <select name="sex" style="width:150px;">
          <option <?php if($result->sex == '')  echo 'selected';?> value="">-----CHOIX-----</option>
          <option <?php if($result->sex == 'Hétéro')  echo 'selected';?> value="Hétéro">Hétéro</option>
          <option <?php if($result->sex == 'Bisexuelle')  echo 'selected';?> value="Bisexuelle">Bisexuelle</option>
          <option <?php if($result->sex == 'Homo')  echo 'selected';?> value="Homo">Homo</option>
	      </select>
          </td>
		  </tr>
		<tr>
		  <td>&nbsp;</td>
		  <td>&nbsp;</td>
	    </tr>
        <tr>
          <td bgcolor="#CACAFF">&nbsp;<b>Date naissance :</b></td>
          <td>
         <select name="jour">
         <?PHP
         for ($jour = 1; $jour <= 31; $jour++){
		 ?>
         <option <?php if($result->jour == ''.$jour.'')  echo 'selected';?> value="<?php echo''.$jour.''; ?>"><?php echo''.$jour.''; ?></option>';
         <?PHP
         }
         ?>
         </select>

         <select name="mois" style="width:90px;">
         <option <?php if($result->mois == '') { echo 'selected'; }  ?> value="">--CHOIX--</option>
         <option <?php if($result->mois == 'Janvier') { echo 'selected'; }  ?> value="Janvier" >Janvier</option>
         <option <?php if($result->mois == 'Février') { echo 'selected'; }  ?> value="Février" >Février</option>
         <option <?php if($result->mois == 'Mars') { echo 'selected'; }  ?> value="Mars" >Mars</option>
         <option <?php if($result->mois == 'Avril') { echo 'selected'; }  ?> value="Avril" >Avril</option>
         <option <?php if($result->mois == 'Mai') { echo 'selected'; }  ?> value="Mai" >Mai</option>
         <option <?php if($result->mois == 'Juin') { echo 'selected'; }  ?> value="Juin" >Juin</option>
         <option <?php if($result->mois == 'Juillet') { echo 'selected'; }  ?> value="Juillet" >Juillet</option>
         <option <?php if($result->mois == 'Août') { echo 'selected'; }  ?> value="Août" >Août</option>
         <option <?php if($result->mois == 'Septembre') { echo 'selected'; }  ?> value="Septembre" >Septembre</option>
         <option <?php if($result->mois == 'Octobre') { echo 'selected'; }  ?> value="Octobre" >Octobre</option>
         <option <?php if($result->mois == 'Novembre') { echo 'selected'; }  ?> value="Novembre" >Novembre</option>
         <option <?php if($result->mois == 'Décembre') { echo 'selected'; }  ?> value="Décembre" >Décembre</option>
         </select>

         <select name="annee">
         <?php
         for ($annee = date('Y'); $annee >= 1940; $annee--){
         ?>
         <option <?php if($result->annee == ''.$annee.'')  echo 'selected';?> value="<?php echo''.$annee.''; ?>"><?php echo''.$annee.''; ?></option>';
         <?PHP
         }
         ?>
         </select>
          </td>
         </tr>
         <tr>

          <td bgcolor="#CACAFF">&nbsp;<b>Age :</b></td>
          <td>
         <?PHP
		  $ma_date_de_naissance = ''.$result->jour.'/'.$result->mois.'/'.$result->annee.'';
          echo Age($ma_date_de_naissance);	
		 ?>		  
          </td>
        </tr>
        <tr>
          <td bgcolor="#CCCCCC">&nbsp;<b>Taille :</b></td>
          <td>        
         <select name="tail">
         <?php
         for ($tail =  140; $tail <= 220; $tail++){
		 ?>
         <option <?php if($result->tail == ''.$tail.'')  echo 'selected';?> value="<?php echo''.$tail.''; ?>"><?php echo''.$tail.''; ?></option>';
         <?PHP
         }
         ?>
         </select>
         </td>
        </tr>
        <tr>

          <td bgcolor="#CACAFF">&nbsp;<b>Poids :</b></td>
          <td>
         <select name="poid">
         <?php
         for ($poid =  40; $poid <= 200; $poid++){
         ?>
         <option <?php if($result->poid == ''.$poid.'')  echo 'selected';?> value="<?php echo''.$poid.''; ?>"><?php echo''.$poid.''; ?></option>';
         <?PHP
         }
         ?>
         </select>
          </td>
        </tr>
        <tr>
          <td bgcolor="#CCCCCC">&nbsp;<b>Signe Astrologique :</b></td>
          <td><select class="select" name="signe" style="width:150px;">
             <option <?php if($result->signe == '')  echo 'selected';?> value=" ">-----CHOIX-----</option>
             <option <?php if($result->signe == 'Belier')  echo 'selected';?> value="Belier">Bélier</option>
             <option <?php if($result->signe == 'Taureau')  echo 'selected';?> value="Taureau">Taureau</option>
             <option <?php if($result->signe == 'Gemeaux')  echo 'selected';?> value="Gemeaux">Gemeaux</option>
             <option <?php if($result->signe == 'Cancer')  echo 'selected';?> value="Cancer">Cancer</option>
             <option <?php if($result->signe == 'Lion')  echo 'selected';?> value="Lion">Lion</option>
             <option <?php if($result->signe == 'Vierge')  echo 'selected';?> value="Vierge">Vierge</option>
             <option <?php if($result->signe == 'Balance')  echo 'selected';?> value="Balance">Balance</option>
             <option <?php if($result->signe == 'Scorpion')  echo 'selected';?> value="Scorpion">Scorpion</option>
             <option <?php if($result->signe == 'Sagittaire')  echo 'selected';?> value="Sagittaire">Sagittaire</option>
             <option <?php if($result->signe == 'Capricorne')  echo 'selected';?> value="Sagittaire">Capricorne</option>
             <option <?php if($result->signe == 'Verseau')  echo 'selected';?> value="Verseau">Verseau</option>
             <option <?php if($result->signe == 'Poissons')  echo 'selected';?> value="Poissons">Poissons</option>
             </select></td>
        </tr>
        <tr>
          <td bgcolor="#CACAFF">&nbsp;<b>Type Ethnique :</b></td>
          <td><select class="select" name="ethni" style="width:150px;">
            <option <?php if($result->ethni == '') { echo 'selected'; }  ?> value="">-----CHOIX-----</option>
            <option <?php if($result->ethni == 'Europeens') { echo 'selected'; } ?> value="Europeens">Europeens</option>
            <option <?php if($result->ethni == 'Africains') { echo 'selected'; }  ?> value="Africains">Africains</option>
            <option <?php if($result->ethni == 'Arabe') { echo 'selected'; }  ?> value="Arabe">Arabe</option>
            <option <?php if($result->ethni == 'Asiatique') { echo 'selected'; }  ?> value="Asiatique">Asiatique</option>
            <option <?php if($result->ethni == 'Hispanique') { echo 'selected'; }  ?> value="Hispanique">Hispanique</option>
          </select></td>
        </tr>
        <tr>
          <td bgcolor="#CCCCCC">&nbsp;<b>Yeux :</b></td>
          <td><select class="select" name="yeux" style="width:150px;">
            <option <?php if($result->yeux == '') { echo 'selected'; }  ?> value="">-----CHOIX-----</option>
            <option <?php if($result->yeux == 'Bleus') { echo 'selected'; }  ?> value="Bleus">Bleus</option>
            <option <?php if($result->yeux == 'Verts') { echo 'selected'; }  ?> value="Verts">Verts</option>
            <option <?php if($result->yeux == 'Bruns') { echo 'selected'; }  ?> value="Bruns">Bruns</option>
            <option <?php if($result->yeux == 'Gris') { echo 'selected'; }   ?> value="Gris">Gris</option>
            <option <?php if($result->yeux == 'Noirs') { echo 'selected'; }  ?> value="Noirs">Noirs</option>
            <option <?php if($result->yeux == 'Verons') { echo 'selected'; }  ?> value="Verons">Verons</option>
          </select></td>
        </tr>
        <tr>
          <td bgcolor="#CACAFF">&nbsp;<b>Cheveux :</b></td>
          <td><select class="select" name="cheveux" style="width:150px;">
            <option <?php if($result->cheveux == '') { echo 'selected'; }  ?> value="">-----CHOIX-----</option>
            <option <?php if($result->cheveux == 'Blond') { echo 'selected'; }  ?> value="Blond">Blond</option>
            <option <?php if($result->cheveux == 'Chatains') { echo 'selected'; }  ?> value="Chatains">Chatains</option>
            <option <?php if($result->cheveux == 'Bruns') { echo 'selected'; }  ?> value="Bruns">Bruns</option>
            <option <?php if($result->cheveux == 'Gris') { echo 'selected'; }  ?> value="Gris">Gris</option>
            <option <?php if($result->cheveux == 'Noirs') { echo 'selected'; }  ?> value="Noirs">Noirs</option>
            <option <?php if($result->cheveux == 'Sel') { echo 'selected'; }  ?> value="Sel">Poivre et sel</option>
            <option <?php if($result->cheveux == 'Rase') { echo 'selected'; }  ?> value="Rase">Rasé</option>
          </select></td>
        </tr>
        <tr>
          <td bgcolor="#CCCCCC">&nbsp;<b>Silouhette :</b></span></td>
          <td><select class="select" name="sil" style="width:150px;">
            <option <?php if($result->sil == '') { echo 'selected'; }  ?> value="">-----CHOIX-----</option>
            <option <?php if($result->sil == 'Mimce') { echo 'selected'; }  ?> value="Mince">Mince</option>
            <option <?php if($result->sil == 'Sportif') { echo 'selected'; }  ?> value="Sportif">Sportif</option>
            <option <?php if($result->sil == 'Normal') { echo 'selected'; }  ?> value="Normal">Normal</option>
            <option <?php if($result->sil == 'Pulpeus') { echo 'selected'; }  ?> value="Pulpeus">Pulpeus</option>
            <option <?php if($result->sil == 'Rond(e)') { echo 'selected'; }  ?> value="Rond">Rond</option>
          </select></td>
        </tr>
        <tr>
          <td bgcolor="#CACAFF">&nbsp;<b>Fumeur :</b></td>
          <td><select class="select" name="fum" style="width:150px;">
            <option <?php if($result->fum == '') { echo 'selected'; }  ?> value="">-----CHOIX-----</option>
            <option <?php if($result->fum == 'OUI') { echo 'selected'; }  ?> value="OUI">OUI</option>
            <option <?php if($result->fum == 'NON') { echo 'selected'; }  ?> value="NON">NON</option>
          </select></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
      </table>
<?PHP
 echo'<script language="javascript" type="text/javascript">
function bascule(elem){
   etat=document.getElementById(elem).style.display;
   if(etat=="none"){
   document.getElementById(elem).style.display="block";
   }else{
   document.getElementById(elem).style.display="none";
   }}
</script>'; 
   echo '<b><i>'.$list_choix.'</i></b>';
   echo'<br/><br/>';
   echo'<a id="bouton_violet" title="Modifier vos recherche" href="" onClick="bascule(\'1\'); return false;">Vos Recherche</a><br/>';
?>
<div id='1' style='display:none;'>
    <table width="100%">
  <tr>
    <td width="25%"><input type="checkbox" name="choix[]" value="Femme hétéro"  />Femme Hétéro</td>
    <td width="25%"><input type="checkbox" name="choix[]" value="Femme Bi" />Femme Bi</td>
    <td width="25%"><input type="checkbox" name="choix[]" value="Lesbienne" />Lesbienne</td>
    <td width="25%"><input type="checkbox" name="choix[]" value="Dominatrice" />Dominatrice</td>
  </tr>
  <tr>
    <td><input type="checkbox" name="choix[]" value="Transsexuel">&nbsp;Transsexuel</td>
    <td><input type="checkbox" name="choix[]" value="Travesti">&nbsp;Travesti</td>
    <td><input type="checkbox" name="choix[]" value="Homme">&nbsp;Homme</td>
    <td><input type="checkbox" name="choix[]" value="Homme Bi">&nbsp;Homme Bi</td>
  </tr>
  <tr>
    <td><input type="checkbox" name="choix[]" value="Homo">&nbsp;Homo</td>
    <td><input type="checkbox" name="choix[]" value="Dominateur">&nbsp;Dominateur</td>
    <td><input type="checkbox" name="choix[]" value="Couple H-F">&nbsp;Couple H - F</td>
    <td><input type="checkbox" name="choix[]" value="Couple H-FBi">&nbsp;Couple H - FBI</td>
  </tr>
  <tr>
    <td><input type="checkbox" name="choix[]" value="Couple HBi-F">&nbsp;Couple HBI - F</td>
    <td><input type="checkbox" name="choix[]" value="Couple Bi">&nbsp;Couple BI</td>
    <td><input type="checkbox" name="choix[]" value="Couple F-F">&nbsp;Couple F - F</td>
    <td><input type="checkbox" name="choix[]" value="Couple H-H">&nbsp;Couple H - H</td>
  </tr>
  <tr>
    <td><input type="checkbox" name="choix[]" value="Couple F-Transsexuel">&nbsp;Couple F - Trans</td>
    <td><input type="checkbox" name="choix[]" value="Couple F-Travesti">&nbsp;Couple F - Trav</td>
    <td><input type="checkbox" name="choix[]" value="Couple H-Transsexuel">&nbsp;Couple H - Trans</td>
    <td><input type="checkbox" name="choix[]" value="Couple H-Travesti">&nbsp;Couple H - Trav</td>
  </tr>
</table></div>
      <tr>
     <td width="50%"><textarea  name="detail_p" style="width:400px;height:200px;"><?PHP echo $result->detail_p; ?></textarea></td>
  </tr>
</table>

<script>
var editor;
KindEditor.ready(function(K) {
	editor = K.create('textarea[name="detail_p"]', {
		resizeType : 1,
		allowPreviewEmoticons : false,
		allowImageUpload : false,
		items : [
		    'forecolor','bold', 'italic', 'underline',
			'removeformat', '|', 'justifyleft', 'justifycenter', 'justifyright', 'insertorderedlist',
			'insertunorderedlist', '|', 'emoticons', 'link']
	});
});
</script>
<?PHP
	 if(isset($message)){
        echo '<div style="
		position:absolute;
		top: 70px;
		margin-left:100px;"><b>'.$message.'</b></div>';
            }	
 }
echo'<br/><div align="center"><input type="submit" name="submit" value="Modifie Profil" /></div>'; 
?>
</form>
</div>
<div id="colonne-droite"></div>
</div>
</div>
</body>
</html>

Re: erreur dans update ?

par moogli » 26 déc. 2016, 13:31

salut,

pourquoi créer un tableau pour ensuite créer une chaîne de caractère avec les éléments séparés par des virgules ?
c'est anti performant, fait directement la concaténation dans la boucle, ou mieux demain au SGBD de le faire ;)

pour ce qui est de cocher les cases tu compares une liste d'info (séparées par des virgules) à une seule information : cela ne peux fonctionner.

Les checkbox devrait être créées dynamiquement en fonction d'une liste en base.
tu devrais avoir une table qui contient seulement un id_membre et un id_type_resto (par exemple)
cela te permet d'avoir tout ce que le membre a sélectionné et ensuite de comparer lors de l'affichage pour check ou pas.

exemple rapide
<?php

// select id_type_resto from membre_type_resto where id_membre =xxxx
// le resultat la dedans
$typeRestoMembre = [];

// liste des types de resto
// select id_type_resto, nom_type_resto from type_resto
while($type = $stmt->ftech(PDO::FETCH_ASSOC)){
  $checked = '';
  if(in_array($type['id_type_resto'],$typeRestoMembre)){
    $checked = ' checked="checked"';
  }
  echo '<label for="choix_',$type['id_type_resto'],'">',$type['nom_type_resto'],'</label>';
  echo '<input type="checkbox" id="choix_',$type['id_type_resto'],'" name="choix[]" value="',$type['id_type_resto'],'"',$checked,' /><br />';
}

Pour ce qui est de ton code tu
- n'as pas compris comment utiliser une requête préparée
- fait pas mal de chose inutile
- la modèle de la base est mal fichue il y a une ligne dans membre_plus par "choix" tu dupliques le reste des données c'est une très mauvaise idée.

j'ai retoucher ton code pour virer ce qui est inutile et utiliser correctement les requêtes préparées (+ formatage un poil plus lisible : 5% de ligne de code en moins pour la même chose :) )
<?php
require'header.php';
// pas fan de tous ce foutoir autant le faire un fois à l'utilisation
$nom_update = filter_input(INPUT_POST, 'nom_update');
$type = filter_input(INPUT_POST, 'type');
$sex = filter_input(INPUT_POST, 'sex');
$jour = filter_input(INPUT_POST, 'jour');
$mois = filter_input(INPUT_POST, 'mois');
$annee = filter_input(INPUT_POST, 'annee');
$tail = filter_input(INPUT_POST, 'tail');
$poid = filter_input(INPUT_POST, 'poid');
$signe = filter_input(INPUT_POST, 'signe');
$ethni = filter_input(INPUT_POST, 'ethni');
$yeux = filter_input(INPUT_POST, 'yeux');
$cheveux = filter_input(INPUT_POST, 'cheveux');
$sil = filter_input(INPUT_POST, 'sil');
$fum = filter_input(INPUT_POST, 'fum');
$detail_p = filter_input(INPUT_POST, 'detail_p');

$nom = filter_input(INPUT_GET, 'token');
$ID = filter_input(INPUT_GET, 'token_update');
if(isset($_POST['choix'])){
  // le SGBD fait le taf et monte pas des données inutiles en mémoire
  $requete = $connection->prepare('SELECT count(1) as nb FROM membre_plus WHERE ID=:ID');
  $requete->execute(array(':ID'=> $ID));
  $nb_result = 0;
  if($requete !== false) {
    $resultat = $requete->fetchAll();
    $nbResult = $resultat['nb'];
  }
  if ($nbResult == 1){
    $compte_plus = 'UPDATE membre_plus SET
                    type=:type,
                    jour=:jour,
                    mois=:mois,
                    annee=:annee,
                    sex=:sex,
                    tail=:tail,
                    poid=:poid,
                    signe=:signe,
                    ethni=:ethni,
                    yeux=:yeux,
                    cheveux=:cheveux,
                    sil=:sil,
                    fum=:fum,
                    choix=:choix,
                    detail_p=:detail-p
                    WHERE ID=:ID';
    // La requête est préparée une seul fois et utilisée plusieurs (utilisté de la requête préparée)
    $req_plus = $connection->prepare($compte_plus);
    foreach($_POST['choix'] as $liste){
      $req_plus->execute([
        ':ID'      => $ID,
        ':type'    => $type,
        ':sex'     =>  $sex,
        ':jour'    => $jour,
        ':mois'    => $mois,
        ':annee'   =>  $annee,
        ':tail'    => $tail,
        ':poid'    => $poid,
        ':signe'   => $signe,
        ':ethni'   => $ethni,
        ':yeux'    => $yeux,
        ':cheveux' =>  $cheveux,
        ':sil'     =>  $sil,
        ':fum'     =>  $fum,
        ':choix'   =>  $liste,
        ':detail_p'=> $detail_p
      ]);
    }

    $compte_online = ('UPDATE online_site SET type=:type WHERE pseudo_site=:nom');
    $req = $connection->prepare($compte_online);
    $req->execute(array(':nom'=> $nom_update, ':type'=>$type));

    $compte_membre = ('UPDATE membres SET type=:type WHERE pseudo=:nom');
    $req = $connection->prepare($compte_membre);
    $req->execute(array(':nom'=> $nom_update, ':type'=>$type));

    header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/m_profil.php?token=".$_SESSION['login']."");
    exit();
  }
}else{   /* Le pseudo  */
  // ouch un peu rud comme message
  $message_in = 'Soucis de connexion, contacter Webmaster.';
}
// ce ne serais pas la même chose que la première requête ça ???
$compte  = $connection->prepare('SELECT * FROM membre_plus WHERE nom=:nom');
$compte->execute(array(':nom'=>$nom));
@+

Re: erreur dans update ?

par pacphil » 23 déc. 2016, 19:26

bonjour les choix doivent resté cocher cela ne fonction pas voilà ce que je fait ?
$tab_choix = array();		  
           $compte  = $connection->prepare('SELECT * FROM membre_plus WHERE nom=:nom');
           $compte->execute(array(':nom'=>$nom));
           while($result = $compte->fetch(PDO::FETCH_OBJ)){	
		   $tab_choix[] = $result->choix;
		   $list_choix = (!empty($tab_choix))? implode(', ',$tab_choix) : '';
<td width="25%"><input type="checkbox" name="choix[]" value="resto italiens" <?php  if($list_choix == 'resto italiens') { echo "checked";}?>>resto italiens</td>
    <td width="25%"><input type="checkbox" name="choix[]" value="resto chinois" <?php  if($list_choix == 'resto chinois') { echo "checked";}?>>resto chinois</td>
>

Re: erreur dans update ?

par pacphil » 23 déc. 2016, 19:02

je encore une soucis les choix un seul dans l'update alors que je coche 5 checkbox une idée

Re: erreur dans update ?

par or 1 » 23 déc. 2016, 17:47

detail_p=:detail-p
':detail_p'=>$detail_p

erreur dans update ?

par pacphil » 23 déc. 2016, 17:22

Bonjour j'ai une erreur dans mon update ? je vois pas mon erreur.
<?PHP
require'header.php';


$nom_update = filter_input(INPUT_POST, 'nom_update');
$type = filter_input(INPUT_POST, 'type');
$sex = filter_input(INPUT_POST, 'sex');
$jour = filter_input(INPUT_POST, 'jour');
$mois = filter_input(INPUT_POST, 'mois');
$annee = filter_input(INPUT_POST, 'annee');
$tail = filter_input(INPUT_POST, 'tail');
$poid = filter_input(INPUT_POST, 'poid');
$signe = filter_input(INPUT_POST, 'signe');
$ethni = filter_input(INPUT_POST, 'ethni');
$yeux = filter_input(INPUT_POST, 'yeux');
$cheveux = filter_input(INPUT_POST, 'cheveux');
$sil = filter_input(INPUT_POST, 'sil');
$fum = filter_input(INPUT_POST, 'fum');
$detail_p = filter_input(INPUT_POST, 'detail_p');

$nom = filter_input(INPUT_GET, 'token');
$ID = filter_input(INPUT_GET, 'token_update');

            if(isset($_POST['choix'])){
	        $choix = implode('&nbsp;-&nbsp;', $_POST['choix']);			
			echo $choix;
	        for ($i=0;$i<count($_POST['choix']);$i++){
	        $choix .= $_POST['choix'][$i];
	        }          
		   
	        $requete = $connection->prepare('SELECT * FROM membre_plus WHERE ID=:ID');  
            $requete->execute(array(':ID'=> $ID));
            $resultat = $requete->fetchAll();       
            $nb_result = count($resultat);	  
	        if ($nb_result == 1){
				
            foreach($_POST['choix'] as $liste){ 
            $compte_plus = ('UPDATE membre_plus SET 
			                                        type=:type, 
			                                        jour=:jour, 
													mois=:mois, 
													annee=:annee,
													sex=:sex,
													tail=:tail,
													poid=:poid,
													signe=:signe,
													ethni=:ethni,
													yeux=:yeux,
													cheveux=:cheveux,
													sil=:sil,
													fum=:fum,
													choix=:choix,
													detail_p=:detail-p  WHERE ID=:ID');
	
	        
				
				
            $req_plus = $connection->prepare($compte_plus);			
            $req_plus->execute(array(':ID'=> $ID,':type'=>$type,
			                    ':sex'=>$sex,':jour'=>$jour,
								':mois'=>$mois,':annee'=>$annee,
								':tail'=>$tail,':poid'=>$poid,
								':signe'=>$signe,':ethni'=>$ethni,
								':yeux'=>$yeux,':cheveux'=>$cheveux,
								':sil'=>$sil,':fum'=>$fum,
								':choix'=>$liste,
								':detail_p'=>$detail_p));[b][color=#FF0000] // ici l'erreur[/color][/b]
			}
																
            $compte_online = ('UPDATE online_site SET type=:type WHERE pseudo_site=:nom');	
			$req = $connection->prepare($compte_online);			
            $req->execute(array(':nom'=> $nom_update,
				                ':type'=>$type));
								
            $compte_membre = ('UPDATE membres SET type=:type WHERE pseudo=:nom');	
			$req = $connection->prepare($compte_membre);			
            $req->execute(array(':nom'=> $nom_update,
				                ':type'=>$type));
								
		header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/m_profil.php?token=".$_SESSION['login']."");
		exit();
		}
		
			

	    }else{   /* Le pseudo  */
        $message_in = 'Soucis de connexion, contacter Webmaster.';
	    }
					  
           $compte  = $connection->prepare('SELECT * FROM membre_plus WHERE nom=:nom');
           $compte->execute(array(':nom'=>$nom));
           while($result = $compte->fetch(PDO::FETCH_OBJ)){	
		   		
?>
Voici l'erreur
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in C:\Program Files\EasyPHP-5.3.8.1\www\source\m_profil.php:67 Stack trace: #0 C:\Program Files\EasyPHP-5.3.8.1\www\source\m_profil.php(67): PDOStatement->execute(Array) #1 {main} thrown in C:\Program Files\EasyPHP-5.3.8.1\www\source\m_profil.php on line 67