Php/pg_admin: pb de concaténation - INSERT

Résolu
Bonjour,

Je viens vers vous ayant un pb en php.
...Je reste bloqué sur une erreur de concaténation dans une requête....que je n'arrive pas à résoudre...et pourtant je suis sur qu'elle est sous mon nez !

Il s'agit d'un INSERT INTO de 2 colones, avec des valeurs particulière récupérées dans un $_POST.

Mais ces valeurs sont elles-mêmes des cases de tableaux...ce qui en écriture...est pour moi...un peu complexe.

voila donc mon code. Je ne vous donne que la ligne de la requête.

$sql="INSERT INTO controleurs (contnom,contpresta) VALUES (".$_POST["'controleur[".$champmax"]'"]"",".$_POST"[""'contnum[".$champmax"]']")" ;



J'ai donc suite à ce code...:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ']' in....

Mais vu comme je me suis embrouillé dans ces concaténation.... = logique ! ^^

Merci a vous de m'aider au plus vite !

Et longue vie à la communauté web !

5 réponses

  1. $champmax=addchamp(1);
    $champorigine=rows_cont();
    


    sont des indices du tableau retuourné grâce à deux "function" en javascript.

    voici, encore une fois, qu'un petit bout de code pour vous aider à mieux comprendre :

    
    <?	
    
    $i=0;
    	foreach($wctrl as $key=>$value)
    	{  
    		$i++;
    		
    ?>	   
    	   	
    	   <TR>
    	   <TD id="td<?=$i?>"> 
    	   <input  type="text" id="idctrl<?=$i?>" name="controleur[<?=$i?>]" height="80" size="80%" maxlength="500" readonly  value="<?=$value?>">
    	<input type="hidden" name="contnum[<?=$i?>]" value="<?=$key?>">
         
    	</TD>
    	<TD width="70" align="center">
    	<a href="javascript:supcntrl(<?=$key?>,'<?=$value?>');"><img width="20" src="images/commun/delete_0.gif" onmouseover="javascript:btnimg(this,'_0','_1')" onmouseout="javascript:btnimg(this,'_1','_0')" ></a>&nbsp;
    		   
    	<a href="javascript:editchamp(<?=$i?>,<?=$key?>,'<?=$value?>');"><img width="20" src="images/commun/edit_0.gif" onmouseover="javascript:btnimg(this,'_0','_1')" onmouseout="javascript:btnimg(this,'_1','_0')" ></a>
    	</TD>
    		
    	</TR>
    
    <? } ?>	
    
    


    Les valeurs en gras sont les deux valeurs à allez chercher dans le _POST.

    ....dite moi si j'en demande trop...mon pb est peut être trop...conséquent...
    merci de m'avoir répondu en tout cas !!^^
    1. et pourquoi tu récupère pas tout simplement tes valeurs comme ceci:
      ("'.$_POST['controleur'].'","'.$_POST['contnum'].'")
      1. voici une image pour que tu comprennes mieux :

        [url=https://www.casimages.com/i/101208050352449898.jpg.html][/url]

        va voir ! c'est l'interface du site sur le quelle je bosse !
        j'ai mis des commentaires pour que tu suives.....^^

        et ce qui suis c'est le traitement de la partis vos controleurs !

        merci merci merci

        //****************** traitement table controleurs ***************  
           
          $wctrl=array_combine($_POST['contnum'],$_POST['controleur']); 
           
           
           
          while (($wrecctrl=pg_fetch_assoc($rs)) and (!$werr)) 
          {    
          
           if($wctrl[$wrecctrl['contnum']]!=$wrecctrl['contnom']) 
           {  
             
            $sql="update controleurs set contnom='".$wctrl[$wrecctrl['contnum']]."' where contnum=".$wrecctrl['contnum']; 
             
            $result_query=pg_query($cn,$sql); 
            if ($result_query) 
            { 
             $nb_ligne=pg_affected_rows($result_query); 
             if ($nb_ligne==1) 
             { 
               $mess="Modification effectuée avec succès"; 
              $wclass='messnorm'; 
             }  
             else 
             { 
              $mess="Aucune modification n'a été effectuée"; 
              $wclass='messerr'; 
              $werr=true; 
             } 
            } 
            else 
            { 
              $mess="Erreur ".pg_last_error($cn); 
             $wclass='messerr'; 
             $werr=true; 
            }   
           } 
          
           } 
            
           
          $champmax=addchamp(1); 
          $champorigine=rows_cont(); 
           
          if($champmax>$champorigine) 
          { 
            
            $sql="INSERT INTO controleurs (contnom,contpresta) VALUES (".$_POST["'controleur[".$champmax"]'"]"",".$_POST"[""'contnum[".$champmax"]']")" ; 
            $result_query=pg_query($cn,$sql); 
             
            if ($result_query) 
            { 
             $mess="Modification effectuée avec succès"; 
             $wclass='messnorm'; 
            } 
            else 
            { 
              $mess="Aucune modification n'a été effectuée"; 
             $wclass='messerr'; 
             $werr=true; 
            } 
             
          }  
           
        }  
        
        
        
        1. bon ben j'ai fini par trouver la solution....pb de logique orienté objet !!
          Merci quand même.....^^
          1. partage ta solution