Undefined offset: 17
Résolu/Fermé
pix
-
30 juin 2010 à 09:00
LDMBatman Messages postés 95 Date d'inscription mardi 29 août 2006 Statut Membre Dernière intervention 10 avril 2014 - 1 juil. 2010 à 14:07
LDMBatman Messages postés 95 Date d'inscription mardi 29 août 2006 Statut Membre Dernière intervention 10 avril 2014 - 1 juil. 2010 à 14:07
A voir également:
- Undefined offset: 17
- Offset electronique ✓ - Forum Programmation
- Undefined mail ✓ - Forum PHP
- Undefined array key ✓ - Forum PHP
- Undefined variable ✓ - Forum PHP
- Uninitialized string offset ✓ - Forum PHP
9 réponses
LDMBatman
Messages postés
95
Date d'inscription
mardi 29 août 2006
Statut
Membre
Dernière intervention
10 avril 2014
39
30 juin 2010 à 11:03
30 juin 2010 à 11:03
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
mardi 29 août 2006
Statut
Membre
Dernière intervention
10 avril 2014
39
30 juin 2010 à 11:44
30 juin 2010 à 11:44
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'
LDMBatman
Messages postés
95
Date d'inscription
mardi 29 août 2006
Statut
Membre
Dernière intervention
10 avril 2014
39
30 juin 2010 à 11:27
30 juin 2010 à 11:27
Serait-il possible d'avoir un fragment de code un peu plus complet?
On dirait que tu essaie de faire une requète en donnant à ref_produit la valeur du nom de ton tableau et non pas une valeur du tableau
On dirait que tu essaie de faire une requète en donnant à ref_produit la valeur du nom de ton tableau et non pas une valeur du tableau
$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>";
}
}
}
}
LDMBatman
Messages postés
95
Date d'inscription
mardi 29 août 2006
Statut
Membre
Dernière intervention
10 avril 2014
39
1 juil. 2010 à 09:10
1 juil. 2010 à 09:10
Désoloé j'ai été absent tout l'après-midi hier. Je vais jetter un coup d'oeil à ton prog
LDMBatman
Messages postés
95
Date d'inscription
mardi 29 août 2006
Statut
Membre
Dernière intervention
10 avril 2014
39
1 juil. 2010 à 09:18
1 juil. 2010 à 09:18
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>"; } } }
merci ,
j'ai essayer se que tu ma donné, et voila l'affichage que ça me donne.
SELECT * FROM palette where ref_produit='BcL' limit ''order by ref_palette;
SELECT * FROM palette where ref_produit='br' limit ''order by ref_palette;
le problème c'est dans la récupération de quantité
j'ai essayer se que tu ma donné, et voila l'affichage que ça me donne.
SELECT * FROM palette where ref_produit='BcL' limit ''order by ref_palette;
SELECT * FROM palette where ref_produit='br' limit ''order by ref_palette;
le problème c'est dans la récupération de quantité
LDMBatman
Messages postés
95
Date d'inscription
mardi 29 août 2006
Statut
Membre
Dernière intervention
10 avril 2014
39
1 juil. 2010 à 12:04
1 juil. 2010 à 12:04
Ta quantité dépend du produit et de l'emplacement? Si tel est le cas, serait-il possible d'avoir accès à la structure de la base de données?
LDMBatman
Messages postés
95
Date d'inscription
mardi 29 août 2006
Statut
Membre
Dernière intervention
10 avril 2014
39
1 juil. 2010 à 14:07
1 juil. 2010 à 14:07
D'accord. Bonne journée
30 juin 2010 à 11:16