Undefined offset: 17
Résolu
pix
-
LDMBatman Messages postés 95 Date d'inscription Statut Membre Dernière intervention -
LDMBatman Messages postés 95 Date d'inscription Statut Membre Dernière intervention -
bonjour, voila lorsque je valide mon formulaire, j'ai ce message d'erreur qui s'affiche :
Notice: Undefined offset: 17 in C:\Program Files (x86)\EasyPHP-5.3.2i\www\stage EST\plan_chargement.php on line 21
Notice: Undefined offset: 17 in C:\Program Files (x86)\EasyPHP-5.3.2i\www\stage EST\plan_chargement.php on line 25
quelqu'un pourrait m'aider?
function tasser($tab)
{
$longueur = count($tab);
$i = 0;
$j = 0;
while ($i < $longueur)
{
(ligne 21)
{
$i++;
}
(ligne 25)
$j++;
$i++;
}
return $tabF;
}
Notice: Undefined offset: 17 in C:\Program Files (x86)\EasyPHP-5.3.2i\www\stage EST\plan_chargement.php on line 21
Notice: Undefined offset: 17 in C:\Program Files (x86)\EasyPHP-5.3.2i\www\stage EST\plan_chargement.php on line 25
quelqu'un pourrait m'aider?
function tasser($tab)
{
$longueur = count($tab);
$i = 0;
$j = 0;
while ($i < $longueur)
{
(ligne 21)
while ($tab[$i]== null && $i < $longueur)
{
$i++;
}
(ligne 25)
$tabF[$j] = $tab[$i];
$j++;
$i++;
}
return $tabF;
}
A voir également:
- Undefined offset: 17
- Offset electronique ✓ - Forum Programmation
- Offset path illustrator français - Forum Illustrator
- Undefined mail ✓ - Forum PHP
- Undefined variable ✓ - Forum PHP
- Format error occurred at offset ✓ - Forum Logiciels
9 réponses
Si j'ai bien compris, ton but est de vider ton tableau des cases vides. Dans ce cas, essaie ceci :
function tasser($tab) { $longueur = count($tab); $i = 0; $j = 0; while ($i < $longueur) { if ($tab[$i]!= null) { $tabF[$j] = $tab[$i]; $j++; } $i++; } return $tabF; }
LDMBatman
Messages postés
95
Date d'inscription
Statut
Membre
Dernière intervention
39
Apparement, c'est cela.
Voilà, c'est bien ce qu'il me semblait.
Il faut lui passer les valeurs :
SELECT * FROM palette where ref_produit='$produit'ne peut pas fonctionner car ref_produit contient la définition de ton tableau $produit.
Il faut lui passer les valeurs :
$produit=$_POST['produit']; // dans le tableau de produits (checkbox), il n'y a pas de valeurs nulles. Elles sont éliminées automatiquement. $quantite = tasser ($_POST['quantite']); // dans le tableau de quantite(input text), il y a des valeurs nulles. Du coup, les 2 tableaux ne sont pas de le même taille. Il faut donc enlever les valeurs nulles grâce à la fonction tasser. $connexion = mysql_connect('127.0.0.1','root',''); mysql_select_db ('stocking',$connexion); for($i=0;$i<count($produits);$i++) { $req1="SELECT * FROM palette where ref_produit='".$produit[$i]."';"; if($res1=mysql_query($req1)) { while($cols=mysql_fetch_array($res1)) { echo"<tr><td>". $cols['ref_palette']."</td><td>".$cols['emplacement']."</td></tr>"; } } }
merci sa marche .
saurai tu pourquoi lorsque j'affiche ma requête ça me met ceci?
SELECT * FROM palette where ref_produit='Array'
saurai tu pourquoi lorsque j'affiche ma requête ça me met ceci?
SELECT * FROM palette where ref_produit='Array'
$produit=$_POST['produit'];// dans le tableau de produits (checkbox), il n'y a pas de valeurs nulles. Elles sont éliminées automatiquement.
$quantite = tasser ($_POST['quantite']);
// dans le tableau de quantite(input text), il y a des valeurs nulles. Du coup, les 2 tableaux ne sont pas de le même taille. Il faut donc enlever les valeurs nulles grâce à la fonction tasser.
$connexion = mysql_connect('127.0.0.1','root',''); mysql_select_db ('stocking',$connexion); $req1="SELECT * FROM palette where ref_produit='$produit'"; if($res1=mysql_query($req1)) { while($cols=mysql_fetch_array($res1)) { echo"<tr><td>". $cols['ref_palette']."</td><td>".$cols['emplacement']."</td></tr>"; } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
excuse moi encore LDMBatman mais j'ai ajouter la fonction limit a ma requête et sa ne m'affiche pas la quantite pourtant quand j'affiche la requête elle foction correctement et sa me l'affiche en double
SELECT * FROM palette where ref_produit='BcL' limit '2'order by ref_palette;
SELECT * FROM palette where ref_produit='BcL' limit '2'order by ref_palette;
SELECT * FROM palette where ref_produit='br' limit '2'order by ref_palette;
SELECT * FROM palette where ref_produit='br' limit '2'order by ref_palette;
voici le code:
for($i=0;$i<count($produit);$i++)
{
for ($j =0;$j<count($quantite);$j++)
{
$req1="SELECT * FROM palette where ref_produit='".$produit[$i]."' limit '".$quantite[$j]."'order by ref_palette;";
echo"$req1";
if($res1=mysql_query($req1))
{
while($cols=mysql_fetch_array($res1))
{
echo"<tr><td>". $cols['ref_palette']."</td><td>".$cols['emplacement']."</td></tr>";
}
}
}
}
SELECT * FROM palette where ref_produit='BcL' limit '2'order by ref_palette;
SELECT * FROM palette where ref_produit='BcL' limit '2'order by ref_palette;
SELECT * FROM palette where ref_produit='br' limit '2'order by ref_palette;
SELECT * FROM palette where ref_produit='br' limit '2'order by ref_palette;
voici le code:
for($i=0;$i<count($produit);$i++)
{
for ($j =0;$j<count($quantite);$j++)
{
$req1="SELECT * FROM palette where ref_produit='".$produit[$i]."' limit '".$quantite[$j]."'order by ref_palette;";
echo"$req1";
if($res1=mysql_query($req1))
{
while($cols=mysql_fetch_array($res1))
{
echo"<tr><td>". $cols['ref_palette']."</td><td>".$cols['emplacement']."</td></tr>";
}
}
}
}
A partir du moment où tes tableaux 'produits' et 'quantite' ont le même nombre de cases, il ne sert à rien de faire 2 boucles "for".
Je suppose que tes tableaux ne doivent contenir que 2 cases ce qui explique pourquoi tes requ^tes sont affichées deux fois.
Essaie ceci :
Je suppose que tes tableaux ne doivent contenir que 2 cases ce qui explique pourquoi tes requ^tes sont affichées deux fois.
Essaie ceci :
for($i=0;$i<count($produit);$i++) { $req1="SELECT * FROM palette where ref_produit='".$produit[$i]."' limit '".$quantite[$i]."'order by ref_palette;"; echo"$req1"; if($res1=mysql_query($req1)) { while($cols=mysql_fetch_array($res1)) { echo"<tr><td>". $cols['ref_palette']."</td><td>".$cols['emplacement']."</td></tr>"; } } }