Notice: Undefined offset: 1 in

Résolu/Fermé
chaima.abdouli Messages postés 94 Date d'inscription mercredi 17 juin 2015 Statut Membre Dernière intervention 3 septembre 2015 - 11 août 2015 à 16:11
chaima.abdouli Messages postés 94 Date d'inscription mercredi 17 juin 2015 Statut Membre Dernière intervention 3 septembre 2015 - 11 août 2015 à 17:18
J'ai un fichier php avec lequel je gère les stocks etc j'ai eu cette erreur en le lançant

Notice: Undefined offset: 1 in C:\wamp\www\chaima\sp....... !

la ligne en question c'est
$mois = $dateTab[1];


et c'est le fichier en question :


<?php
/*---------------------CONNEXION MYSQL----------------------*/

//====param base site mysql
$servername='localhost'; 
$database_username='root';
$database_password=''; 
$database_name=''; 
set_time_limit(1600);


$link = mysqli_connect($servername,$database_username,$database_password) or die("Erreur de connexion au serveur"); //mysql_connect
mysqli_select_db($link, $database_name) or die("Erreur de connexion à la BDD"); //old: mysql_select_db

/*---------------------FIN CONNEXION MYSQL----------------------*/


/*---------------------RÉCUPÉRATION DU FICHIER STOCK et INITIALISATION----------------------*/



$fichier = file("../public/ixon/FICHIER_STOCK_SPEEDWEARR_TEST.txt");
$fp = fopen("../public/ixon/FICHIER_STOCK_SPEEDWEARR_TEST.txt","r");
$total = count($fichier);

$ean13 = ""; 
$dispo = ""; 

$dateFichier = "";
$date = ""; 
$dateDispo = "";
$disponibilite = "";

/*---------------------FIN RÉCUP----------------------*/

/*---------------------MISE A JOUR DU STOCK----------------------*/
for($i=0;$i<$total;$i++)
{
	$ean13 = substr($fichier[$i],65,13);
	$dispo = substr($fichier[$i],78,6);
	
	           $batch = "SELECT id_product_attribute,id_product, etat_dispo_externe, etat_dispo FROM ps_product_attribute where ean13 = '".$ean13."'";
	           $requete = mysqli_query($link, $batch);
	           $resultat= mysqli_fetch_array($requete);
	
	
		//--------------------POUR STOCK DISPONIBLE--------------------//
		if ($dispo == "OK    ") 
		{

	            $batch2 = "SELECT quantity FROM ps_product_attribute where ean13 = '".$ean13."'";
                $requete2 = mysqli_query($link, $batch2);
                $quantity = mysqli_fetch_array($requete2);

				$batch3 = "SELECT available_date FROM ps_product_attribute where ean13 = '".$ean13."'";
                $requete3 = mysqli_query($link, $batch3);
                $available_date = mysqli_fetch_array($requete3);
				
		
			{
                $date = date('y-m-d');
	            $batch = "UPDATE ps_product_attribute SET quantity = '5' where ean13 = '".$ean13."'";
		        $requete = mysqli_query($link, $batch);
         
              
                $batch2 ="UPDATE ps_stock_available SET quantity = '5' where id_product_attribute = '".$resultat['id_product_attribute']."' and id_product = '".$resultat['id_product']."'";
	            $requete2 = mysqli_query($link, $batch2);
			
			    $batch3 = "UPDATE ps_product_attribute SET available_date = DATE_ADD(('$date,y-m-d'), INTERVAL 10 DAY) where ean13 = '".$ean13."'";
		        $requete3 = mysqli_query($link, $batch3);
                       
              echo("la date a ete bien mise a jour: ").$ean13."<br/>";
				
				
				
                $batch4 ="UPDATE ps_product_attribute_shop SET available_date = DATE_ADD(('$date,y-m-d'), INTERVAL 10 DAY) where id_product_attribute = '".$resultat['id_product_attribute']."'";
	            $requete4 = mysqli_query($link, $batch4);

			}

		         
                $batch = "UPDATE ps_product_attribute SET etat_dispo_externe = 'Livraison sous 10 a 15 jours' where ean13 = '".$ean13."'";
		        $requete = mysqli_query($link, $batch);
                $batch2 = "UPDATE ps_product_attribute SET etat_dispo = '4' where ean13 = '".$ean13."'";
		        $requete2 = mysqli_query($link, $batch2);



			echo("Stock mis a jour a 5 pour le ean: ").$ean13."<br/>";
		}
		//--------------------FIN STOCK DISPONIBLE --------------------//
		
		
		//--------------------POUR DISPO LE--------------------//
		if($dispo == "DISPO:") 
		{
            $dateFichier = substr($fichier[$i],85,5);
			$dateTab = explode('/',$dateFichier,2);
			$dateActu =new DateTime();
			$result = $dateActu->format('Y-m-d');
			$jour = $dateTab[0];
			$mois = $dateTab[1];
			$annee = substr($result,0,4);
			$datePrevue = $annee."/".$mois."/".$jour;
			$time = strtotime($datePrevue);
			$newformat = date('Y/m/d',$time);
			$date = $newformat;
			$dateDispo = new DateTime(''.$date.' +3 day');
			$result = $dateDispo->format('d/m/Y');
			
	            $batch2 = "SELECT quantity FROM ps_product_attribute where ean13 = '".$ean13."'";
                $requete2 = mysqli_query($link, $batch2);
                $quantity = mysqli_fetch_array($requete2);

				$batch3 = "SELECT available_date FROM ps_product_attribute where ean13 = '".$ean13."'";
                $requete3 = mysqli_query($link, $batch3);
                $available_date = mysqli_fetch_array($requete3);
				
		
			{
            $dateFichier = substr($fichier[$i],85,5);
			$dateTab = explode('/',$dateFichier,2);
			$dateActu =new DateTime();
			$result = $dateActu->format('Y-m-d');
			$jour = $dateTab[0];
			$mois = $dateTab[1];
			$annee = substr($result,0,4);
			$datePrevue = $annee."/".$mois."/".$jour;
			$time = strtotime($datePrevue);
			$newformat = date('Y/m/d',$time);
			$date = $newformat;
			$dateDispo = new DateTime(''.$date.' +3 day');
			$result = $dateDispo->format('d/m/Y');
			$disponibilite = "Livraison prevue le ".$result;
	            $batch = "UPDATE ps_product_attribute SET quantity = '0' where ean13 = '".$ean13."'";
		        $requete = mysqli_query($link, $batch);
         
              
                $batch2 ="UPDATE ps_stock_available SET quantity = '0' where id_product_attribute = '".$resultat['id_product_attribute']."' and id_product = '".$resultat['id_product']."'";
	            $requete2 = mysqli_query($link, $batch2);
			
			    $batch3 = "UPDATE ps_product_attribute SET available_date = DATE_ADD(('$date,y-m-d'), INTERVAL 3 DAY) where ean13 = '".$ean13."'";
		        $requete3 = mysqli_query($link, $batch3);
                       
                echo("la date a ete bien mise e jour: ").$ean13."<br/>";
				
				
				
                $batch4 ="UPDATE ps_product_attribute_shop SET available_date = DATE_ADD(('$date,y-m-d'), INTERVAL 3 DAY) where id_product_attribute = '".$resultat['id_product_attribute']."'";
	            $requete4 = mysqli_query($link, $batch4);

			}

		         
                $batch = "UPDATE ps_product_attribute SET etat_dispo_externe = '".$disponibilite."' where ean13 = '".$ean13."'";
		        $requete = mysqli_query($link, $batch);
                $batch2 = "UPDATE ps_product_attribute SET etat_dispo = '4' where ean13 = '".$ean13."'";
		        $requete2 = mysqli_query($link, $batch2);



			echo("Stock mis a jour a 0 pour le ean: ").$ean13."<br/>";
		}
		//--------------------FIN DISPO LE --------------------//
        //--------------------ARRIVAGE------------------------//
			if($dispo == "Arriva") 
		{
            $dateFichier = substr($fichier[$i],85,5);
			$dateTab = explode('/',$dateFichier,2);
			$dateActu =new DateTime();
			$result = $dateActu->format('Y-m-d');
			$jour = $dateTab[0];
			$mois = $dateTab[1];
			$annee = substr($result,0,4);
			$datePrevue = $annee."/".$mois."/".$jour;
			$time = strtotime($datePrevue);
			$newformat = date('Y/m/d',$time);
			$date = $newformat;
			$dateDispo = new DateTime(''.$date.' +73 day');
			$result = $dateDispo->format('d/m/Y');
			
	            $batch2 = "SELECT quantity FROM ps_product_attribute where ean13 = '".$ean13."'";
                $requete2 = mysqli_query($link, $batch2);
                $quantity = mysqli_fetch_array($requete2);

				$batch3 = "SELECT available_date FROM ps_product_attribute where ean13 = '".$ean13."'";
                $requete3 = mysqli_query($link, $batch3);
                $available_date = mysqli_fetch_array($requete3);
				
		
			{
            $dateFichier = substr($fichier[$i],85,5);
			$dateTab = explode('/',$dateFichier,2);
			$dateActu =new DateTime();
			$result = $dateActu->format('Y-m-d');
			$jour = $dateTab[0];
			$mois = $dateTab[1];
			$annee = substr($result,0,4);
			$datePrevue = $annee."/".$mois."/".$jour;
			$time = strtotime($datePrevue);
			$newformat = date('Y/m/d',$time);
			$date = $newformat;
			$dateDispo = new DateTime(''.$date.' +63 day');
			$result = $dateDispo->format('d/m/Y');
			$disponibilite = "Livraison prevue le ".$result;
	            $batch = "UPDATE ps_product_attribute SET quantity = '0' where ean13 = '".$ean13."'";
		        $requete = mysqli_query($link, $batch);
         
              
                $batch2 ="UPDATE ps_stock_available SET quantity = '0' where id_product_attribute = '".$resultat['id_product_attribute']."' and id_product = '".$resultat['id_product']."'";
	            $requete2 = mysqli_query($link, $batch2);
			
			    $batch3 = "UPDATE ps_product_attribute SET available_date = DATE_ADD(('$date,y-m-d'), INTERVAL 63 DAY) where ean13 = '".$ean13."'";
		        $requete3 = mysqli_query($link, $batch3);
                       
                echo("la date a ete bien mise e jour: ").$ean13."<br/>";
				
				
				
                $batch4 ="UPDATE ps_product_attribute_shop SET available_date = DATE_ADD(('$date,y-m-d'), INTERVAL 63 DAY) where id_product_attribute = '".$resultat['id_product_attribute']."'";
	            $requete4 = mysqli_query($link, $batch4);

			}

		         
                $batch = "UPDATE ps_product_attribute SET etat_dispo_externe = '".$disponibilite."' where ean13 = '".$ean13."'";
		        $requete = mysqli_query($link, $batch);
                $batch2 = "UPDATE ps_product_attribute SET etat_dispo = '4' where ean13 = '".$ean13."'";
		        $requete2 = mysqli_query($link, $batch2);



			echo("Stock mis a jour a 0 pour le ean: ").$ean13."<br/>";
			}
	//--------------------FIN ARRIVAGE------------------------//
		//--------------------POUR EPUISE--------------------//
		if(($dispo == "0:EPUI")  XOR ($dispo == "A CONF" ) )
		{

	            $batch2 = "SELECT quantity FROM ps_product_attribute where ean13 = '".$ean13."'";
                $requete2 = mysqli_query($link, $batch2);
                $quantity = mysqli_fetch_array($requete2);

				$batch3 = "SELECT available_date FROM ps_product_attribute where ean13 = '".$ean13."'";
                $requete3 = mysqli_query($link, $batch3);
                $available_date = mysqli_fetch_array($requete3);
				
		
			{
                $date = ('0000-00-00');
	            $batch = "UPDATE ps_product_attribute SET quantity = '0' where ean13 = '".$ean13."'";
		        $requete = mysqli_query($link, $batch);
         
              
                $batch2 ="UPDATE ps_stock_available SET quantity = '0' where id_product_attribute = '".$resultat['id_product_attribute']."' and id_product = '".$resultat['id_product']."'";
	            $requete2 = mysqli_query($link, $batch2);
			
			    $batch3 = "UPDATE ps_product_attribute SET available_date =('$date,0000-00-00'), INTERVAL 10 DAY) where ean13 = '".$ean13."'";
		        $requete3 = mysqli_query($link, $batch3);
                       
                echo("la date a ete bien mise e jour: ").$ean13."<br/>";
				
				
				
                $batch4 ="UPDATE ps_product_attribute_shop SET available_date = DATE_ADD(('$date,y-m-d'), INTERVAL 10 DAY) where id_product_attribute = '".$resultat['id_product_attribute']."'";
	            $requete4 = mysqli_query($link, $batch4);

			}

		         
                $batch = "UPDATE ps_product_attribute SET etat_dispo_externe = 'En rupture de stock' where ean13 = '".$ean13."'";
		        $requete = mysqli_query($link, $batch);
                $batch2 = "UPDATE ps_product_attribute SET etat_dispo = '2' where ean13 = '".$ean13."'";
		        $requete2 = mysqli_query($link, $batch2);



			echo("Stock mis a jour a 0 pour le ean: ").$ean13."<br/>";
		}
		//--------------------FIN EPUISE --------------------//
	
	
}

mysqli_close($link);

?>

1 réponse

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
11 août 2015 à 16:59
Bonjour,

Fais donc des print_r($dateTab); pour afficher le contenu de la variable et tu devrais constaté.. qu'en effet... ton $dateTab[1] n'existe pas à un moment ou un autre.....



0
chaima.abdouli Messages postés 94 Date d'inscription mercredi 17 juin 2015 Statut Membre Dernière intervention 3 septembre 2015 2
11 août 2015 à 17:03
et pourquoi?
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > chaima.abdouli Messages postés 94 Date d'inscription mercredi 17 juin 2015 Statut Membre Dernière intervention 3 septembre 2015
Modifié par jordane45 le 11/08/2015 à 17:26
Ben pourquoi pas .....

.....
Sûrement qu'à un moment une de tes variables n'a pas la valeur que tu attends... mais là .. il n'y a que toi qui peut le savoir ou le trouver .....
C'est bien pour ça qu'il te faut ajouter du DEBUG sur tes différentes variables pour essayer de trouver ce qui ne va pas !


EDIT : Commence par remplacer tes IF($dispo == ... ) par un Swtich .. ça rendra ton code plus lisible.
0
chaima.abdouli Messages postés 94 Date d'inscription mercredi 17 juin 2015 Statut Membre Dernière intervention 3 septembre 2015 2
11 août 2015 à 17:18
Bon je teste en ce moment donc oui y'a bp de répétition comme pr ARRIV et DISPO en attendant que tt marche je px revérifier mon code !

Et d'accord ! Merci bp
0