Vikchill
-
Compteur de contenus
15 -
Inscrit(e) le
-
Dernière visite
Messages postés par Vikchill
-
-
Décidément, on vois ça partout en ce moment
Regarde ici, si tu veux t'en inspirer: http://www.vikchill.fr/round_corner.htm
Un peu de doc? <clic>
-
Essaie ça plutôt:
$sql = "SELECT * FROM table2 RIGHT OUTER JOIN table1 ON (table2.id=table1.idj) WHERE table1.idm=$idmm ORDER BY table2.jeux ASC";
PS: ton problème est plus SQL que php
-
Dans phpMyAdmin
dans SQL
INSERT INTO fixed_prices (id, price)
SELECT product_id, product_price FROM productCa devrait fonctionner, non?
-
C'est faisable sans javascript, une des méthodes: http://www.cssplay.co.uk/layouts/basics2.html
-
Sauf erreur, la première chose que doit contenir un <fieldset> est un <legend>.
-
J'ai eu un problème assez proche... j'avais un $_SESSION['nom'] et un $nom qui s'échangeaient des valeurs
Ca fait d'ailleurs partie de mes questions en suspens, donc si quelqu'un a une idée
-
Ah bah oui c'était peut-être simplement les alias qu'il n'aimait pas, cette requête a plus de chance de fonctionner.
Sinon, passer par une vue au lieu d'une requête imbriquée, mais je sais pas si MySQL gère les vues, et ça devient très "bidouille".
-
blblblbl J'arrive pas à comprendre pourquoi le HAVING marche pas
Et un SELECT sur le SELECT?
SELECT *
FROM (SELECT c.Id_Client, SUM(a.Id_Categorie IN (8,9)) AS 'Recherche', SUM(a.Id_Categorie IN (10,4)) AS 'Exclusion'
FROM Commandes c
INNER JOIN Produit p ON p.Id_Commande = c.Id_Commande
INNER JOIN Article a ON a.Id_Article = p.Id_Article
WHERE c.Id_Client = 123456
GROUP BY c.Id_Client)
WHERE 'Recherche' > 0
AND 'Exclusion' = 0 -
Ou ça
SELECT
c.Id_Client,
SUM(a.Id_Categorie IN (8,9)) AS 'Recherche',
SUM(a.Id_Categorie IN (10,4)) AS 'Exclusion'
FROM Commandes c
INNER JOIN Produit p ON p.Id_Commande = c.Id_Commande
INNER JOIN Article a ON a.Id_Article = p.Id_Article
WHERE c.Id_Client = 123456
GROUP BY c.Id_Client
HAVING 'Recherche' > 0
AND 'Exclusion' = 0On pense trop rarement au HAVING. Dis-nous ce que ça donne
-
La grosse requète qui combine TOPIC par date et TOPIC par date de réponse produit une erreur. Merci quand même.
Faudrait nous aider un peu aussi Quelle erreur? As-tu aussi testé les requêtes individuellement?
Je me souviens d'un exemple qui répondait à mes besoins dans lequel on ne triait pas par date, mais par ID pour connaitre le dernier d'un topic donné.Curieusement, cette requète était beaucoup plus légère.
Je n'ai toujours pas la structure de ta table, ni comment elle est gérée. Si effectivement ton champs id est incrémental, nul besoin de date puisque les id sont forcément classés dans l'ordre chronologique.
Ne peut on pas plus simplement faire une requete qui trie les TOPIC NULL et NOT NULL (avec et sans réponse combinés) PAR DATE (soit de DATE TOPIC soit de DATE reponse) ?je patauge :/
On peut à peu près tout faire, mais donner plus d'éléments serait peut-être bien, là on navigue un peu en aveugle
En attendant, essaie ces trois requêtes et dis voir si elle fonctionnent si tu veux bien:
- posts avec réponse:
SELECT DISTINCT topic
FROM table- posts sans réponse:
SELECT id
FROM table
WHERE id NOT in (SELECT DISTINCT topic
FROM table)- dernière réponse de chaque post:
SELECT topic, MAX(id)
FROM table
WHERE id in (SELECT DISTINCT topic
FROM table)
GROUP BY topic -
L'union des deux SELECT imbriqués ajoute leurs résultats, pour ça il faut qu'on ait les mêmes colonnes dans les deux requêtes. Les enregistrement retournés ne sont pas triés, d'où l'imbrication qui ne sert qu'à faire le tri, mais j'ai un doute sur sa necessité, mais comme je ne peux pas tester :s
-
Alors, allons-y par étape, en éspérant que j'ai bien compris ton message.
Ce que tu appelles un topic sans réponse est en fait un "id" qu'on a jamais dans le champs "topic":
SELECT id, date
FROM table
WHERE id NOT IN (SELECT topic
FROM table
)
ORDER BY date DESCCette requête devrait répondre à ta première demande.
Pour la deuxième, c'est le contraire, il faut prendre uniquement les "id" qu'ont retrouve dans le champs "topic" en ne prenant que la plus grande date:
SELECT id, date
FROM table
WHERE id IN (SELECT topic
FROM table
)
AND date = (SELECT MAX(date)
FROM table t
WHERE table.id=t.id
)
ORDER BY date DESCTu veux l'union des deux, classée par date, donc ça devrait donner:
SELECT *
FROM (SELECT id, date
FROM table
WHERE id NOT IN (SELECT topic
FROM table
)
UNION ALL
SELECT id, date
FROM table
WHERE id IN (SELECT topic
FROM table
)
AND date = (SELECT MAX(date)
FROM table t
WHERE table.id=t.id
)
)
ORDER BY date DESCN'ayant ni la structure de ta base, ni aucun moyen de tester tout ça, ça reste à prendre avec des pincettes. Tu diras ce que ça donne
-
L'idéal est d'avoir toutes tes informations dans plusieurs tables puis de créer les tables qui les associent et qui, elles, contiendront les information. En gros, dans une table "ville" tu mets les enregistrements "Paris", "Marseille", "Lyon", dans une table "metier_art" tu mets "arts textiles", "tapisserie", "lingerie de luxe". Finalement tu crées une table "métier_ville" avec deux champs "ville" et "métier" dans laquelle tu auras les enregistrements "Paris;art textiles", "Paris;tapisserie", "Lyon;lingerie de luxe", c'est de cette table que tu tires l'information. Une simple requête en selectionnant la ville que tu veux te donnera tous les métiers d'art de la ville.
Ceci te permets aussi de faire des formulaires avec liste déroulante qui facilitera tes recherches et tes saisies puisque toutes les informations seront écrites avec la même orthographe. Le problème typique d'une base de données sans ce genre de contrôle est que quand tu cherches une voiture de couleur verte, certains auront saisi "vert", d'autre "Vert", "verre", "vers", etc... Et jamais tu ne retrouves toutes tes informations.
Là j'ai simplifié à l'extrême, ce ne sera pas forcément optimisé et déjà il te faudra une bonne maitrise de SQL pour travailler ta base de données.
-
Pourquoi ne pas aller demander directement chez alsacréations, ils ont un forum de support pour leurs tutos et exemples.
Réaliser une batterie de test sur une adresse mail
dans PHP
Posté
Jette aussi un oeil ici, en regardant les exemples en commentaire
http://fr.php.net/manual/fr/function.checkdnsrr.php