[RESOLU] Problème insertion en bdd suite à boite cocher

ViPHP
xTG
ViPHP | 7331 Messages

25 sept. 2013, 13:08

En fait je devais pas être trop réveillé...
Une requête INSERT ne peut pas comporter de WHERE puisque tu insères des résultats...
Tu ne fais pas de filtrage sur ce qui existe déjà dans la table.
Ton id est donc à déposer dans la colonne correspondante et ta clause WHERE à supprimer.
Avant de cocher erreur : Erreur sql liée à l'insertion
Ce traitement se fait toujours, il n'est pas imbriqué dans le if qui est exécuté après soumission du formulaire.

Eléphant du PHP | 134 Messages

25 sept. 2013, 13:22

RE

Toujours une erreur : array(2) { [0]=> string(5) "1361 " [1]=> string(5) "1592 " }

Le retour matériel ce fait bien , mais l'insertion dans archive non.

$insertSql= "INSERT INTO Archive_sortie VALUES('',now(),'$designation','$reference','$date_sortie','$nom_retrait','$chantier','$date_retour' id=".$val."";
        $result2=mysql_query($insertSql);

Eléphant du PHP | 134 Messages

25 sept. 2013, 14:00

RE

Fais plusieurs test

Avec cette requête : sa fonctionne l'insert mais pas d'information enregistrer.

        $insertSql= "INSERT INTO Archive_sortie VALUES('',now(),'$designation','$reference','$date_sortie','$nom_retrait','$chantier','$date_retour')";
        $result2=mysql_query($insertSql);


Information reçu : Les derniers insert sont vide , cela devrait être comme les lignes en dessous , exemple >> 11h33 , la les information sont enregistrer mais je n'utilise pas la boite a cocher pour plusieurs retour

25/09/2013 à 13:48:22 Retour du Matériel le 2013-09-25 ¦ ¦ ¦ par en location depuis le 0000-00-00 BOITE A COCHER
25/09/2013 à 13:48:22 Retour du Matériel le 2013-09-25 ¦ ¦ ¦ par en location depuis le 0000-00-00
25/09/2013 à 13:47:31 Retour du Matériel le 2013-09-25 ¦ ¦ ¦ par en location depuis le 0000-00-00


25/09/2013 à 11:40:01 Retour du Matériel le 2013-09-25 ¦ POMPE A LOBE RIVLOB 40 EX 72 ATEX TYPE 17 12 168 MACHINE 4356/10/2007¦ OIDK1631 ¦ par BOUGEROLLE CEDRIC en location depuis le 2013-08-09
25/09/2013 à 11:33:58 Retour du Matériel le 2013-09-25 ¦ PHARE 24V CAMION¦ OIDK794 ¦ par DEVISME STEPHANE en location depuis le 2013-09-23
25/09/2013 à 11:33:16 Retour du Matériel le 2013-09-25 ¦ STOP CHUTE TRACTEL¦ OIDK1151 ¦ par DEVISME STEPHANE en location depuis le 2013-09-23
25/09/2013 à 11:32:51 Retour du Matériel le 2013-09-25 ¦ HARNAIS SINGER PN12 NS / 0363 AVEC LONGE 13/49466¦ OIDKHA392 ¦ par DEVISME STEPHANE en location depuis le 2013-09-23
25/09/2013 à 11:32:30 Retour du Matériel le 2013-09-25 ¦ PALAN A CHAINE C21 1 TONNE LEVEE 3 METRES NUMERO 99627¦ OIDKPA1273 ¦ par DEVISME STEPHANE en location depuis le 2013-09-23
25/09/2013 à 10:04:12 Retour du Matériel le 2013-09-25 ¦ FLEXIBLE THP 1/2 1000 BARS 20 METRES¦ OIDK2436 ¦ par ALAIN LECLERCQ en location depuis le 2013-09-24
24/09/2013 à 21:20:02 Retour du Matériel le 2013-09-24 ¦ JEU DE 3 FLEXIBLES HYDRAULIQUES MALE / MALE POUR POMPE A LOBE 2 METRES ¦ OIDK1486 ¦ par DECUUPERE DIDIER en location depuis le 2013-08-09

CODE COMPLET
<td width="1%" class="noir">
 
 <?php
 echo '<input type="checkbox" name="check[]"  value="'. $datas['id'].' "/>';
 
   ?>
 

</td>
<?php
  echo '</tr>';
  }
 
  echo '</tbody>';
  echo '<tfoot><tr><th colspan="12">&nbsp;</th></tr></tfoot>';
  echo '</table>';
  echo '<table><tr><td><input name="Update" value="Valider les Retours Matériels" type="submit" /></form></td></tr></table>';
  mysql_free_result($req);
  
 
          // ENREGISTREMENT ARCHIVE //
        //parcours du array des ids reçus
		
		
		if (isset($_POST['Update'])) {
        $id = implode(',', $_POST['check']);
		//var_dump($_POST['check']);  // test //
        foreach($_POST['check'] as $val) { 
		$designation= $datas['designation']; // les champs a enregistrer en bdd //
		$reference = $datas['reference'];
		$date_sortie = $datas['date_sortie'];
		$nom_retrait = $datas['nom_retrait'];
		$chantier = $datas['chantier'];
		$date_retour = date('Y/m/d') ;
		
		
		
        $insertSql= "INSERT INTO Archive_sortie VALUES('',now(),'$designation','$reference','$date_sortie','$nom_retrait','$chantier','$date_retour')";
        $result2=mysql_query($insertSql);

        
		 } // ferme foreach //
		 
	       } // condition //
		   
		//en cas d'échec d'insertion, on affiche le message d'erreur
       //if (!$result2) {
      // echo "Erreur sql liée  à l'insertion:\n" ;
      // die( mysql_error());
       //}else{
      // echo "Archivage effectué avec succès";
       
	  // }
	
  
      if (isset($_POST['Update'])) {
      $id = implode(',', $_POST['check']);
      $sql = "UPDATE materiels3 SET disponibilite='',chantier='',nom_retrait='',date_sortie='' WHERE id IN (".$id.")";
      $result=mysql_query($sql);  
	  
	
	
     //en cas d'échec de la mise à jour, on affiche le message d'erreur
     if (!$result) {
     echo "erreur sql liée  à la mise à jour:\n" ;
     die( mysql_error());
     }
    
      }
     mysql_close(); // FERME LA BDD //

Eléphant du PHP | 134 Messages

25 sept. 2013, 18:28

Bonsoir

Bon j'ai résolu mon problème grâce à votre aide xTG et une autre connaissance de php france encore merci beaucoup votre aide ! =D>

Je post le code qui fonctionne :D
<td width="1%" class="noir">
 
 <?php
 echo '<input type="checkbox" name="check[]"  value="'. $datas['id'].' "/>';
 
   ?>
 

</td>
<?php
  echo '</tr>';
  }
 
  echo '</tbody>';
  echo '<tfoot><tr><th colspan="12">&nbsp;</th></tr></tfoot>';
  echo '</table>';
  echo '<table><tr><td><input name="Update" value="Valider les Retours Matériels" type="submit" /></form></td></tr></table>';
  mysql_free_result($req);
  
 
          // ENREGISTREMENT ARCHIVE //
        //parcours du array des ids reçus
		
		
		if (isset($_POST['Update'])) {
        $id = implode(',', $_POST['check']);
		//var_dump($_POST['check']);  // test //
        foreach($_POST['check'] as $val) { 
		
		$list_retour = mysql_query("SELECT id,designation,reference,date_sortie,nom_retrait,chantier FROM materiels3 WHERE id='$val' LIMIT 1");
	    $materiel_retour = mysql_fetch_array($list_retour);
	
	    // VARIABLES //
	    $designation = $materiel_retour[1];
	    $reference = $materiel_retour[2];
	    $date_sortie = $materiel_retour[3];
	    $nom_retrait = $materiel_retour[4];
	    $chantier = $materiel_retour[5];
	    $date_retour =  date('Y/m/d') ; // date du jour du retour Matériel //
		
		
        $insertSql= "INSERT INTO Archive_sortie VALUES('',now(),'$designation','$reference','$date_sortie','$nom_retrait','$chantier','$date_retour')";
        $result2=mysql_query($insertSql);

        
		 } // ferme foreach //
		 
	       } // condition //
		   
		
  
      if (isset($_POST['Update'])) {
      $id = implode(',', $_POST['check']);
      $sql = "UPDATE materiels3 SET disponibilite='',chantier='',nom_retrait='',date_sortie='' WHERE id IN (".$id.")";
      $result=mysql_query($sql);  
	  
	
	
     //en cas d'échec de la mise à jour, on affiche le message d'erreur
     if (!$result) {
     echo "erreur sql liée  à la mise à jour:\n" ;
     die( mysql_error());
     }
    
      }
     mysql_close(); // FERME LA BDD //