[RESOLU] requete slq invalide + jointures

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] requete slq invalide + jointures

Re: [RESOLU] requete slq invalide + jointures

par sadeq » 12 janv. 2011, 19:44

@moogli: Non c'est moi qui ai fait une erreur en supprimant ton message au lieu du miens qui faisait doublon. Excuse-moi. Mais j'ai pu le récupérer.

Re: [RESOLU] requete slq invalide + jointures

par moogli » 12 janv. 2011, 01:33

Yop,

peut tu cliquer sur le bouton résolus de ton 1er message ?

@sadeq : j'ai fait une boullette en postant mon 1er message ?

@+

Re: requete slq invalide + jointures

par graffx » 11 janv. 2011, 21:29

Hé bien grace a vous ca fonctionne, j' espere que ca servira a un autre!!!


Mille mercis!!!! =D>

Re: requete slq invalide + jointures

par sadeq » 11 janv. 2011, 20:53

Message de moogli le 11 Jan 2011, 20:45 (récupéré)
salut,

group est un mot clef sql je suppose que c'est ce qui bloque.

Il faut absolument tester le retour de mysql_query afin de voir si tous ce passe comme il faut.

Par exemple
Code php
<?php
$re = mysql_query($requete);
if($re === false){
echo 'Erreur SQL : '.mysql_error().'<br />'.$requete;
}
else {
//traitement de la requête avec le while et tous le tremblement.
}
?>
tu peut aussi tester ta requete avec la console mysql ou phpmyadmin afin de voir si elle retourne ce que tu souhaite.


@+[/quote]

Re: requete slq invalide + jointures

par graffx » 11 janv. 2011, 20:27

Merci a tous pour votre aide! Il me semblait bien qu' il y avait une methode de renommage des variables, ceci dit j' ai cette fois droit a un :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/teamcashi/www/team.php on line 91

Le probleme vient donc de la requete.


            <?php
            $team2 = mysql_query("SELECT ibf_members.name as name,ibf_members.id as id1,ibf_members.mgroup_others as group,ibf_member_extra.id as id2,ibf_member_extra.avatar_location as avatar FROM ibf_members LEFT OUTER JOIN ibf_member_extra ON ibf_members.id = ibf_member_extra.id WHERE ibf_members.mgroup_others = ',7,' ");
                
                while ($team = mysql_fetch_array($team2))
            {
            echo $team['avatar'];
            echo $team['name'];        
            }    
            ?>
J' ai enlevé le superflu!

Re: requete slq invalide + jointures

par sadeq » 11 janv. 2011, 10:00

Bonjour,
Pour éviter les problèmes de champ nommé dans le tableau résultat d'une requête il faut renommer les champs dans la requête SQL évitant du coup les erreurs sur les champs homonymes provenant de plusieurs tables jointes. Donc essaye ça dans ta requête:
$team2 = mysql_query("SELECT ibf_members.name,ibf_members.id as id_member,ibf_members.mgroup_others,ibf_member_extra.id as id_extra,ibf_member_extra.avatar_location FROM ibf_members LEFT OUTER JOIN ibf_member_extra ON ibf_members.id = ibf_member_extra.id WHERE ibf_members.mgroup_others = ',7,' ");
Mais pour l'avatar, il vaut mieux nous donner ton code php qui affiche l'image pour qu'on puisse t'aider. Tout en vérifiant en amont si le chemin d'accès aux images sur le disque est respecté.

Re: requete slq invalide + jointures

par graffx2 » 11 janv. 2011, 00:20

Le texte du champs avatar! d' ailleurs dans le code source je me retrouve avec un <img src="" />

J' ai essayé une variable simplifiée du genre $avatar = $team['ibf_member_extra.avatar_location'] mais rien ne marche de ce coté!

Re: requete slq invalide + jointures

par xTG » 10 janv. 2011, 23:10

L'image ne s'affichage pas ? Ou le texte du champs avatar ne s'affiche pas ? ;)
Vérifies ton lien !

Re: requete slq invalide + jointures

par graffx » 10 janv. 2011, 22:53

Arf merci, en fait j' avais bien fait au debut, c' est juste que j' avais oublié un mysql_query!

Du coup, autre probleme, comment nommer ces variables dans un echo par la suite? Deja, voici ma requete :
             <?php
            $team2 = mysql_query("SELECT ibf_members.name,ibf_members.id,ibf_members.mgroup_others,ibf_member_extra.id,ibf_member_extra.avatar_location FROM ibf_members LEFT OUTER JOIN ibf_member_extra ON ibf_members.id = ibf_member_extra.id WHERE ibf_members.mgroup_others = ',7,' ");
                
                while ($team = mysql_fetch_array($team2)) 

Pour le pseudo, si je fais $team['name'] ou $team['ibf_members.name'], ca fonctionne nickel.

Mais pour l' avatar, ni $team['avatar_location'] ni $team['ibf_member_extra.avatar_location'] ne fonctionne.

Si je fais un print_r, ca donne:



Coyote

Array ( [0] => Coyote [name] => Coyote [1] => 1 [id] => 1 [2] => ,7, [mgroup_others] => ,7, [3] => 1 [4] => av-1.png [avatar_location] => av-1.png )

Ska

Array ( [0] => Ska [name] => Ska [1] => 2 [id] => 2 [2] => ,7, [mgroup_others] => ,7, [3] => 2 [4] => [avatar_location] => )

SaD

Array ( [0] => SaD [name] => SaD [1] => 3 [id] => 3 [2] => ,7, [mgroup_others] => ,7, [3] => 3 [4] => av-3.jpg [avatar_location] => av-3.jpg )




Donc l' avatar est bien la. Mais je n' arrive pas a l' afficher.

Re: requete slq invalide + jointures

par sadeq » 10 janv. 2011, 00:25

Bonjour, c'est simple le problème est que tu utilise des guillemets à l'intérieur des guillemets de la chaine SQL et ça c'est intolérable par PHP. T'a 2 solution d'écriture pour éviter cette erreur:
1. Utiliser des quottes pour délimiter une chaine interne à une chaine PHP entourée entre guillemets, exemple:
$team2 = "SELECT ibf_members.name,ibf_members.id,ibf_members.mgroup_others,ibf_member_extra.id,ibf_member_extra.avatar_location FROM ibf_members LEFT OUTER JOIN ibf_member_extra ON ibf_members.id = ibf_member_extra.id WHERE ibf_members.mgroup_others = ',7,' ";
2. Echapper (dans le sens de désactiver) les guillemets utilisée à l'intérieur d'une chaine PHP entourée par des guillemets en utilisant un anti-slash \ avant chaque guillemet interne, par exemple:
$team2 = "SELECT ibf_members.name,ibf_members.id,ibf_members.mgroup_others,ibf_member_extra.id,ibf_member_extra.avatar_location FROM ibf_members LEFT OUTER JOIN ibf_member_extra ON ibf_members.id = ibf_member_extra.id WHERE ibf_members.mgroup_others = \",7,\" ";

Re: requete slq invalide + jointures

par graffx » 09 janv. 2011, 23:52

Non, je n' y arrive pas. Et quelques recherches sur google ne donnent pas l' effet voulu...

Re: requete slq invalide + jointures

par graffx » 09 janv. 2011, 22:04

bien sur mais j' ai vraiment besoin de ces deux virgules autour! je fais encore quelques essais!

Re: requete slq invalide + jointures

par xTG » 09 janv. 2011, 19:17

Le chiffre 7 est une "chaîne de caractère".

Re: requete slq invalide + jointures

par graffx » 09 janv. 2011, 18:40

Toujours pas trouvé, je suis preneur d' autres details :s

Re: requete slq invalide + jointures

par graffx » 09 janv. 2011, 17:39

Merci! Mais je n' ai pas encore trouvé, ceci dit je croyais que le point servait a separer DEUX chaines de caracteres? Hors moi je n' en ai qu' une! :s