Requête sql, comment faite vous ?
16 messages
• Page 1 sur 2 • 1, 2
-

tryan - WRInaute passionné

- Messages: 2355
- Inscription: 20 Fév 2005
Requête sql, comment faite vous ?
Bonjour,
Quelle est votre façon d'écrire cette requête (Select id de telle table dont l'id est égal à cette id):
ou
ou encore d'autres façons ?
Quelle est la plus simple et la plus rapide pour appeler le résultat dans et en dehors du while?
Quelle est votre façon d'écrire cette requête (Select id de telle table dont l'id est égal à cette id):
- Code: Tout sélectionner
$query3 = mysql_query("SELECT id FROM `COMPLEMENT_INFO` WHERE id = '".$monid."'");
while($complement = mysql_fetch_array($query3))
{
echo $complement['id'];
}
ou
- Code: Tout sélectionner
$query3 = mysql_query("SELECT id FROM `COMPLEMENT_INFO` WHERE id = '".$monid."'");
$lid="";
while($complement = mysql_fetch_array($query3))
{
$lid = $complement['id'];
$lid.="$id";
echo ''.$lid.'';
}
ou encore d'autres façons ?
Quelle est la plus simple et la plus rapide pour appeler le résultat dans et en dehors du while?
-

screuscreu - WRInaute impliqué

- Messages: 968
- Inscription: 14 Jan 2008
Re: Requête sql, comment faite vous ?
pourquoi faire un while si tu as un seul id à récupérer?
- Code: Tout sélectionner
$query3 = mysql_query("SELECT id FROM `COMPLEMENT_INFO` WHERE id = '".$monid."'");
$complement = mysql_fetch_array($query3)
$lid = $complement['id']; ou $lid = $complement[0]['id']; (je sais plus comment ça récupère)
- mic54800
- WRInaute discret

- Messages: 61
- Inscription: 20 Juil 2008
Re: Requête sql, comment faite vous ?
Re tryan !
Donc moi j'utilise ce code qui pour moi est .. très bien =) :
et :
Donc moi j'utilise ce code qui pour moi est .. très bien =) :
- Code: Tout sélectionner
<?php
$query3 = mysql_query("SELECT id FROM `COMPLEMENT_INFO` WHERE id = '".$monid."'");
while($complement = mysql_fetch_array($query3))
{
echo $complement['id'];
}
?>
et :
- Code: Tout sélectionner
<?php
$query3 = mysql_query("SELECT id FROM `COMPLEMENT_INFO` WHERE id = '".$monid."'");
while($complement = mysql_fetch_array($query3))
{
$lid[] = $complement['id'];
}
for($i=0; $i<count($lid); $i++)
{
echo $lid[$i];
}
?>
-

screuscreu - WRInaute impliqué

- Messages: 968
- Inscription: 14 Jan 2008
Re: Requête sql, comment faite vous ?
mic54800 a écrit:...
Je comprends pas trop l'intérêt de faire 2 boucles ... à part perdre un peu de temps.
EDIT: et encore moins dans le code que tu as édité car il te suffisait d'initialisé ton $i à l'extérieur du while et de faire un $i++ avant la fin du while.
-

tryan - WRInaute passionné

- Messages: 2355
- Inscription: 20 Fév 2005
Re: Requête sql, comment faite vous ?
screuscreu a écrit:pourquoi faire un while si tu as un seul id à récupérer?
Pas besoin de while pour 1 résultat ?
Quelle est la tête de la requête alors ?
Et si à l'inverse une requête est effectué avant celle ci pour obtenir le résultat de plusieurs id .. quelle serait alors la tête de la requête ?
Merki
- tonguide
- WRInaute passionné

- Messages: 1407
- Inscription: 28 Nov 2003
Re: Requête sql, comment faite vous ?
- Code: Tout sélectionner
$query = ....;
list($id) = mysql_fetch_row($query);
echo $id;
- mic54800
- WRInaute discret

- Messages: 61
- Inscription: 20 Juil 2008
Re: Requête sql, comment faite vous ?
C'est sur que c'est un peu louche mais je me suis déjà servi de ce genre de boucle.
En fait, dans un fichier inclu en début de chaque page, j'avais une requete qui me séléctionnait les catégories du site (par exemple : Scooters, Motos, Quads, Buggys ...) et étant donné que j'avais besoin à plusieurs endroits dans la page de ces données, je n'avais plus qu'à faire une petite boucle avec mon for() au lieu de retaper la requete à chaque fois.
C'est un peu tordu je peux le reconaitre mais perso, ça peut servir et surtout, ça évite toujours de se retrouver avec 5 fois la même requete dans une page.
En fait, dans un fichier inclu en début de chaque page, j'avais une requete qui me séléctionnait les catégories du site (par exemple : Scooters, Motos, Quads, Buggys ...) et étant donné que j'avais besoin à plusieurs endroits dans la page de ces données, je n'avais plus qu'à faire une petite boucle avec mon for() au lieu de retaper la requete à chaque fois.
C'est un peu tordu je peux le reconaitre mais perso, ça peut servir et surtout, ça évite toujours de se retrouver avec 5 fois la même requete dans une page.
-

screuscreu - WRInaute impliqué

- Messages: 968
- Inscription: 14 Jan 2008
Re: Requête sql, comment faite vous ?
tryan a écrit:screuscreu a écrit:pourquoi faire un while si tu as un seul id à récupérer?
Pas besoin de while pour 1 résultat ?
Quelle est la tête de la requête alors ?
Et si à l'inverse une requête est effectué avant celle ci pour obtenir le résultat de plusieurs id .. quelle serait alors la tête de la requête ?
Merki
Pour la première question c'est le code que j'ai mis dans ma première réponse.
Pour la 2ème :
- Code: Tout sélectionner
<?php
$query3 = mysql_query("SELECT id FROM `COMPLEMENT_INFO` WHERE status="Actve");
while($complement = mysql_fetch_array($query3))
{
$lid[] = $complement['id'];
}
$query4 = mysql_query("SELECT name, coucou, tralala FROM `PRODUITS` WHERE id IN (" . implode(', ',$lid) . "));
while($complement = mysql_fetch_array($query4))
{
// tes données
}
?>
OU directement (et mieux) :
- Code: Tout sélectionner
<?php
$query4 = mysql_query("
SELECT
name,
coucou,
tralala
FROM
`PRODUITS`
WHERE
id IN (
SELECT
id
FROM
`COMPLEMENT_INFO`
WHERE
status="Actve"
)
);
while($complement = mysql_fetch_array($query4))
{
// tes données
}
?>
En espérant ne pas avoir fait d'erreurs grossières.
EDIT : indentation comme j'aime
Dernière édition par screuscreu le Mar Fév 10, 2009 1:11, édité 1 fois.
-

tryan - WRInaute passionné

- Messages: 2355
- Inscription: 20 Fév 2005
Re: Requête sql, comment faite vous ?
tonguide a écrit:
- Code: Tout sélectionner
$query = ....;
list($id) = mysql_fetch_row($query);
echo $id;
La je ne pige pas cette partie list($id) .. que vient faire le list() ici ?
-

screuscreu - WRInaute impliqué

- Messages: 968
- Inscription: 14 Jan 2008
Re: Requête sql, comment faite vous ?
tryan a écrit:tonguide a écrit:
- Code: Tout sélectionner
$query = ....;
list($id) = mysql_fetch_row($query);
echo $id;
La je ne pige pas cette partie list($id) .. que vient faire le list() ici ?
C'est une façon de nommer des variables en sortie de requète (entre autre).
Voir exemple qui sort de la doc php :
- Code: Tout sélectionner
<table>
<tr>
<th>Nom de l'employé</th>
<th>Salaire</th>
</tr>
<?php
$resultat = mysql_query ("SELECT id, nom, salaire FROM employes",$conn);
while (list ($id, $nom, $salaire) = mysql_fetch_row ($resultat)) {
echo " <tr>\n".
" <td><a href=\"info.php?id=$id\">$nom</a></td>\n".
" <td>$salaire</td>\n".
" </tr>\n";
}
?>
</table>
En gros rien à voir avec ton problème.
- tonguide
- WRInaute passionné

- Messages: 1407
- Inscription: 28 Nov 2003
Re: Requête sql, comment faite vous ?
Euh, faut lire la doc PHP.
Un exemple fournit sur la doc en question :
<?php
$info = array('coffee', 'brown', 'caffeine');
// Liste toutes les variables
list($drink, $color, $power) = $info;
echo "$drink is $color and $power makes it special.\n";
?>
Si tu prends notre cas, ton "$info" ressemble à
$info = array('id' => 'valeur');
Donc si tu veux recup "valeur", tu fais comme dans l'exemple
list($nom_de_ta_variable) = $info;
Sauf que dans ton cas, le $info c'est mysql_feth_row($query);
Un exemple fournit sur la doc en question :
<?php
$info = array('coffee', 'brown', 'caffeine');
// Liste toutes les variables
list($drink, $color, $power) = $info;
echo "$drink is $color and $power makes it special.\n";
?>
Si tu prends notre cas, ton "$info" ressemble à
$info = array('id' => 'valeur');
Donc si tu veux recup "valeur", tu fais comme dans l'exemple
list($nom_de_ta_variable) = $info;
Sauf que dans ton cas, le $info c'est mysql_feth_row($query);
-

screuscreu - WRInaute impliqué

- Messages: 968
- Inscription: 14 Jan 2008
Re: Requête sql, comment faite vous ?
tonguide a écrit:Euh, faut lire la doc PHP.
Un exemple fournit sur la doc en question :
<?php
$info = array('coffee', 'brown', 'caffeine');
// Liste toutes les variables
list($drink, $color, $power) = $info;
echo "$drink is $color and $power makes it special.\n";
?>
Si tu prends notre cas, ton "$info" ressemble à
$info = array('id' => 'valeur');
Donc si tu veux recup "valeur", tu fais comme dans l'exemple
list($nom_de_ta_variable) = $info;
Sauf que dans ton cas, le $info c'est mysql_feth_row($query);
Oui parce que tu es en feth_row et que monsieur utilise array
Donc lui il commence à se perdre !!!
Si tu as des question envoi moi un MP on ira plus vite sur msn/gtalk/skype/aim ou autre ... suis assez connecté;)
- tonguide
- WRInaute passionné

- Messages: 1407
- Inscription: 28 Nov 2003
Re: Requête sql, comment faite vous ?
Si tu le dis, qu'il utilise mysql_fetch_row ou mysql_fetch_array, ça marchera (tu peux tester si tu ne me crois pas).
A la différence que mysql_fetch_row est plus optimisé, et c'est justement ce qu'il a demandé.
A la différence que mysql_fetch_row est plus optimisé, et c'est justement ce qu'il a demandé.
-

blman - WRInaute accro

- Messages: 3077
- Inscription: 5 Sep 2003
Re: Requête sql, comment faite vous ?
Quand tu ne veux sélectionner qu'1 seul enregistrement en BDD, n'oublie pas non plus d'utiliser "LIMIT 1" à la fin de ta requête SQL. Ca évite que le script parcours toute la base de données et ça gagne du temps.
- tonguide
- WRInaute passionné

- Messages: 1407
- Inscription: 28 Nov 2003
Re: Requête sql, comment faite vous ?
Si tu cherches sur un ID en primary key, c'est moins optimisé de rajouté "LIMIT 1" qui ajoute une instruction inutile (un ID étant sensé être unique, si c'est pas le cas, effectivement, il faut l'ajouter).
16 messages
• Page 1 sur 2 • 1, 2
Lectures recommandées sur ce thème :
- Google API : guide de développement de l'API Google - 20-09-2002
- Les contenus de Twitter indexés dans Google - 22-10-2009
- AdSense Tracking : statistiques détaillées sur les clics AdSense - 29-02-2004
- Nombre moyen de mots par requête : statistiques AOL Août 2006 - 10-08-2006
- Google ouvre sa filiale française et crée sa régie publicitaire - 12-06-2002
- Google rachète Phonetic Arts, spécialiste en synthèse vocale - 13-12-2010
- Nombre de clics dans les pages de résultats : statistiques AOL Août 2006 - 11-08-2006
- Parts de marché des produits et services Google - 09-12-2006
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
