Php/mysql

Résolu/Fermé
Vlr - Modifié le 1 déc. 2017 à 11:20
 Vlr - 1 déc. 2017 à 11:45
Bonjour,

J'ai un problème bizarre...
Quand je fais un select, ce dernier ne me sélectionne pas la ligne entière... Je m'explique :
Voilà ma requête sql :
SELECT s.name, s.fname, grade, s.id
FROM grades g
INNER JOIN student s ON s.id=g.idstudent
INNER JOIN teacher t ON t.idteach=g.teach
WHERE s.classroom=2 AND g.teach=1;


Les id sont : 2, 4, 10, 15, 16, 23
Sur la console tout se passe bien, sur phpmyadmin aussi.
Sur mon php, il me retourne : 2, 4, 1, 1, 1, 2

Je ne comprends rien...

Merci d'avance si quelqu'un peut m'aider :)

EDIT : J'ai testé avec la requête la plus simple possible, càd :
SELECT id FROM student


Même problème.

EDIT 2 : Voilà mon php :
while($arr=mysqli_fetch_array($query)){
$id[$i]=$arr['id']; //affiche 2, 4, 1, 1, 1, 2
echo 'arr='.$arr['id'].' '; //affiche 2, 4, 10, 15, 23
echo 'id('.$i.')='.$id[$i].', ';
$i++;


Je ne comprends décidément pas... Pourquoi je ne pourrais pas stocker la valeur ?

2 réponses

Utilisateur anonyme
1 déc. 2017 à 11:44
Bonjour

Si $id est initialement une chaîne non vide,elle est considérée comme un tableau de caractères. $id[$i] ne peut alors contenir qu'un seul caractère.
Quand tu essayes de le remplacer par quelque chose de plus long, il ne garde que le premier, d'où les '1' à la place de 10, 15 et 16 et 2 à la place de 23.

Initialise $id avec
$id=[];
, tu n'auras plus ce problème.
0
Merci beaucoup. Pour le moment j'ai simplement utilisé mon $arr sans le stocker autre part. Mais j'essaierai plus tard avec cette méthode :)
0