Php/mysql

Résolu
Vlr -  
 Vlr -
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

  1. Utilisateur anonyme
     
    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
  2. Vlr
     
    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