Notice: Undefined offset: 7098

Résolu/Fermé
chaima.abdouli Messages postés 94 Date d'inscription mercredi 17 juin 2015 Statut Membre Dernière intervention 3 septembre 2015 - 10 août 2015 à 12:09
chaima.abdouli Messages postés 94 Date d'inscription mercredi 17 juin 2015 Statut Membre Dernière intervention 3 septembre 2015 - 10 août 2015 à 12:25
Bonjour ,

J'ai un fichier php (batch) avec lequel je gère les stocks etc j'ai eu cette erreur en le lançant

Notice: Undefined offset: 7098 in C:\wamp\www\chaima\speed-wear.net\web\batchs\batch_stock_sw_ixon.php on line 39

Notice: Undefined offset: 7098 in C:\wamp\www\chaima\speed-wear.net\web\batchs\batch_stock_sw_ixon.php on line 40


Ces les deux lignes en question :

$ean13 = substr($fichier[$i],65,13);
$dispo = substr($fichier[$i],78,6);

3 réponses

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
10 août 2015 à 12:13
'lut, le problème vient de la variable
$i
. Sans savoir quelles lignent lui attribuent une valeur, on ne peut pas vraiment te dire ce qui ne va pas...
Mais je présume que ça fait partie d'une boucle et je suspecte qu'elle aille trop loin (par ex.
for(...; $i <= maxi; ...)
au lieu de
for(...; $i < maxi; ...)
).
0
chaima.abdouli Messages postés 94 Date d'inscription mercredi 17 juin 2015 Statut Membre Dernière intervention 3 septembre 2015 2
10 août 2015 à 12:16
Voici le code complet :
<?php
/*---------------------CONNEXION MYSQL----------------------*/

//====param base site mysql
$servername='localhost'; //localhost
$database_username='root'; //c1speedwear
$database_password=''; //a6WrefDBefX
$database_name='balbla
'; //c1speedwear.

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_SPEEDWEAR.txt");
$fp = fopen("../public/ixon/FICHIER_STOCK_SPEEDWEAR.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);

if($resultat[0]!=null)
{
//--------------------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');

$disponibilite = "Livraison estimee le ".$result;

//$batch1 = "CREATE in where ean13 = '".$ean13."'";
//$requete1 = mysqli_query($link, $batch1);
//$quantity = mysqli_fetch_array($requete1);

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

$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');

$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 SET available_date = DATE_ADD(('$date,y-m-d'), INTERVAL 1 DAY) where ean13 = '".$ean13."'";
$requete3 = mysqli_query($link, $batch3);

$batch4 = "UPDATE ps_product_attribute_shop SET SET available_date = DATE_ADD(('$date,y-m-d'), INTERVAL 1 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("Disponibilite mise a 5 a ".$result." pour l'ean: ").$ean13."<br/>";
}
//--------------------FIN DISPO LE --------------------//


//--------------------POUR EPUISE--------------------//
if(($dispo == "0:EPUI") XOR ($dispo == "A CONF" ) XOR ($dispo == "Arriva"))
{

$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);

?>
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
10 août 2015 à 12:19
for($i=0;$i<=$total;$i++) 

Bah tiens qu'est-ce que je disais... Le script va trop loin, remplace
<=
par
<
.
0
chaima.abdouli Messages postés 94 Date d'inscription mercredi 17 juin 2015 Statut Membre Dernière intervention 3 septembre 2015 2
10 août 2015 à 12:25
D'accord je vais tester sinon une derniere question vous avez vu la partie
//--------------------POUR DISPO LE--------------------//

En fait dans cette partie je veux que le champs

available_date prend en parametre la date qui est écrite dans le fichier des fournisseurs et ajoute a cette date 2 jours !

Je n'arrive pas a récupérer la date du fichier que j'ai nommé dateFichier dans l'available_date

Avez vous une idée ?
0