mysql_fetch_array

Répondre
Michel_57
le 05/09/2003 à 20:54
Michel_57
si jai une base de données et ke je fais un SELECT, puis mysql_fetch_array de la requete et que jobtien un tableau ky n'est pas constitué d'une seule ligne, est il possible de refaire un SELECT dans cette sous-table ?? jai essayé mais je n'ai pas réussi !

$sql='SELECT * FROM test WHERE x > 10';
$req=mysql_query($sql);
$data=mysql_fetch_array($req);
$sql2='SELECT * FROM "'.$data.'" WHERE y > 10';
$req2=mysql_query($sql2);
$data2=mysql_fetch_array($req2);
$final=$data2['z'];

ya t-il une solution a mon probleme ?
je veux justement éviter de faire un AND et de mettre les 2 conditions dans le meme select pour éviter de faire une boucle 50 fois sur la grosse table. je voulais faire dabor une préselection, comme ca la boucle de 50 répétitions tourne sur une table moins consistante.

merci davance
Merci LEPHPFACILE et tous ses membres :)
Michel_57
le 05/09/2003 à 23:24
Michel_57
"mysql_fetch_array retourne un tableau et non une chaine de caracteres"

je n'ai jamais dit le contraire !!
Merci LEPHPFACILE et tous ses membres :)
LA GLOBULE
le 05/09/2003 à 23:27
LA GLOBULE
Ce que je veux dire par la, c'est quand on fait une requete SQL, ben generallement on ecrit :

SELECT des_trucs FROM une_table

Et une_table est en fait une chaine de caracteres, et non un tableau.

Toi tu as ecris : SELECT * FROM $data
Or $data est un tableau et non une chaine de caracteres.

Voila smiley
Michel_57
le 05/09/2003 à 23:36
Michel_57
ben c pour ca que ca marche pas justement jmen suis apercu ! mais jai mis ca dans mon post pour ke tu puisse voir ce que jai voulu faire ... visiblement je t'ai + troublé qu'autre chause :o/

comment je peux faire alors ? y a-t-il une solution ? car moi je n'en vois pas ... il y a peut-être une fonction que je ne connais pas qui pourrait m'aider !

Toi qui es un programmateur érudit, pourrais-tu me donner cette pitite fonction magique ?
Merci LEPHPFACILE et tous ses membres :)
LA GLOBULE
le 05/09/2003 à 23:45
LA GLOBULE
Ben, il te suffit de faire comme dans les cours.

$data=mysql_fetch_array($req);
$nom_de_ta_table = $data['le_truc'];

Puis de continuer le script avec un :

SELECT ... FROM $nom_de_la_table ...
Michel_57
le 06/09/2003 à 09:10
Michel_57
$sql='SELECT * FROM Info5 WHERE x >="'.$xmin.'"';
$req=mysql_query($sql);
$data=mysql_fetch_array($req);
$table=$data['x,y,z'];

$sql='SELECT * FROM '.$table.' WHERE x="'.$xvar.'"';
$req=mysql_query($sql);
$exi=mysql_num_rows($req);

On mindique que ma requete n'est pas valable. jai essayé également sans les '. .' autour de $table

Comme dans le cours tu dis ? j'ai cherché dans le cours mais je n'ai pas vu un exemple comme ca ... tu peux me dire dans quelle partie c'est si tu veux pas m'indiquer ma faute ?

Merssi
Merci LEPHPFACILE et tous ses membres :)
LA GLOBULE
le 06/09/2003 à 11:27
LA GLOBULE
$table=$data['x,y,z']; << tu veux faire quoi en ecrivant ca ?????

Je comprend pas la.
Michel_57
le 06/09/2003 à 22:30
Michel_57
jai fait ce ke tu ma dit sauf au lieu de ['truc'] je voulai récupérer 3 colonnes de lancienne table pour en faire une nouvelle

ca ne marce pas a plusieurs colonnes ton truc ?
Merci LEPHPFACILE et tous ses membres :)
LA GLOBULE
le 06/09/2003 à 22:44
LA GLOBULE
Nan mais quand on ecrit FROM x, on s'attend à ce que x soit une chaine de caracteres representant le nom d'une table de ta base de données.

Ca ne peut pas etre 3 noms d'attributs.

PS : Et aussi, $data['x, y, z'] ne veut rien dire.
Il faut ecrire (comme dans les cours ^^) ceci pour recuperer les valeurs de tes 3 attributs :
$x = $data['x'];
$y = $data['z'];
$z = $data['y'];
Répondre
LoadingChargement en cours