passer une variable provenant d'un fetch-array dans une req. sql

passer une variable provenant d'un fetch-array dans une req. sql - PHP - Programmation

Marsh Posté le 13-02-2008 à 18:35:02    

hello!
j'ai fait cette portion de code et ca ne fonctionne pas comme prévu...ca renvoie les réponses sous la forme "nom-id-(rien)". "rien" devrait etre le nombre d'elements dotés de cet id comptés dans une autre table. entre ces deux tables en effet, ce 'id' est censé servir de moyen de correspondance.  
 
en tout cas j'ai l'impression qu'au niveau syntaxe il y a des différences entre php et sql, comme si c'etait pas assez compliqué ainsi : dans php je dois écrire row["id"] et dans ma requete mysql cela n'a plus l'air d'etre la bonne orthographe.
 
autre chose : comment faire pour que les réponses qui s'affichent puissent en plus etre des liens hypertexte? dans une portion de code php -et encore plus au sein d'un "echo"-, ondirait que le code html de base n'a plus cours...
 
excusez ma nooberie, je débute...
voila le code incriminé :  
 
 
 
$result=mysql_query("SELECT idsubcat,nom from categories" );
while($row = mysql_fetch_array($result)){
 
$nombre=mysql_query("SELECT COUNT(*) from bannieres WHERE id=$row["id"]" );
 
echo $row["nom"]."-".$row["id"]."(".$nombre." )"."<br>";
 
};
 

Reply

Marsh Posté le 13-02-2008 à 18:35:02   

Reply

Marsh Posté le 13-02-2008 à 19:42:35    

ton code coloré syntaxiquement :

 
atch3000 a écrit :


Code :
  1. $result=mysql_query("SELECT idsubcat,nom from categories" );
  2. while($row = mysql_fetch_array($result)){
  3.  
  4. $nombre=mysql_query("SELECT COUNT(*) from bannieres WHERE id=$row["id"]" );
  5.  
  6. echo $row["nom"]."-".$row["id"]."(".$nombre." )"."<br>";
  7.  
  8. };



 


Si ceci ne te suffit pas à comprendre, va falloir te mettre au boulot.:o


Message édité par skeye le 13-02-2008 à 19:42:52

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 13-02-2008 à 23:23:32    

si tu parle du id qui est en noir à la ligne 4, faut pas..doffice il renvoie a rien. j'avais changé les idsubcat en id pour les montrer ici -pour faire plus clair mais en final c'est encore pire-, et comme on pouvait s'y attendre j'en ai oublié un...
 
sinon je vois tjs pas!!!pour moi ca se tient! -mis a part une plausible erreur de syntaxe que je ne vois pas (des simple/double quotes peut-etre? ou bien alors des [ ] au lieu de ( )--ce sont encore des conventions que j'ai du mal a cerner)  
 
mais désolé les amis, j'ai commencé il y a 3 jours...

Message cité 1 fois
Message édité par atch3000 le 13-02-2008 à 23:24:00
Reply

Marsh Posté le 14-02-2008 à 00:57:52    

bon alors, puisque la dernière fois ça n'a pas marché, je vais me répéter:
 
Apprends les bases avant de vouloir faire des trucs plus compliqués!! [:hurle]
 
sans dec, une bête concaténation, quoi... [:pingouino] et si tu ne vois pas ce qui cloche, c'est que tu n'as pas activé les messages d'erreur, donc que tu n'as pas lu les bases, ce qui nous renvoie une fois de plus à la case départ. Désolé, mais bon... :o

Reply

Marsh Posté le 14-02-2008 à 07:51:21    

atch3000 a écrit :

si tu parle du id qui est en noir à la ligne 4, faut pas..


Si, il faut. Le forum le met pas en noir pour rien, mais parce-que ta syntaxe sur cette ligne est mauvaise.


Message édité par skeye le 14-02-2008 à 07:51:30

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-02-2008 à 10:47:53    

purée ca vous ferait mal de me donner un coup de main au lieu de m'enfoncer? j'ai deja lu plusieurs bottins de téléphone de théorie, maintenant que je passe a la pratique je découvre qu'il y a des fautes dans mes cours...j'ai fait qu'assembler des morceaux de mes exercices ou presque! donc comment je peux avoir la bonne info si ce n'est pas en passant par des forums?

Reply

Marsh Posté le 14-02-2008 à 10:50:45    

atch3000 a écrit :

purée ca vous ferait mal de me donner un coup de main au lieu de m'enfoncer? j'ai deja lu plusieurs bottins de téléphone de théorie, maintenant que je passe a la pratique je découvre qu'il y a des fautes dans mes cours...j'ai fait qu'assembler des morceaux de mes exercices ou presque! donc comment je peux avoir la bonne info si ce n'est pas en passant par des forums?


 
Ecoute j'essaie d'être gentil là déjà. Alors tu commences par essayer de comprendre comment on construit une chaine de caractères en php et tu reviens.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-02-2008 à 11:25:44    

note: quand il aura réussi à faire sa chaine ça ne marchera pas plus car il n'y a pas de clé "id" retournée par sa 1ere requête :o

 

Donc on va faire plus simple ( et sans concaténation): plutot que de faire la 2eme requête qui sert à rien on va tout faire dans la 1ere:

Code :
  1. $result=mysql_query("SELECT idsubcat as id, nom, count(*) as nb from
  2. categories c left outer join bannieres b on c.idsubcat = b.id group by idsubcat, nom " );
  3. while($row = mysql_fetch_array($result)){  
  4.  echo $row["nom"]."-".$row["id"]."(".$row["nb"]." )"."<br>";
  5. };


Hop, plus que 3 nouveaux concepts à aborder dont les jointures sql :)


Message édité par anapajari le 14-02-2008 à 11:26:26

---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed