Jump to content

cadoudal56

Membre
  • Content Count

    7
  • Joined

  • Last visited

Community Reputation

0 Neutre
  1. Il est possible par contre d'envisager un script PHP qui va t'écrire dans un fichier txt toutes les commandes SQL qui vont bien.... C'est une sorte de simulé. En gros tu définis toi même les premiers mots de la requete comme les CREATE TABLE etc... dans une variable (voir ce que te sors PHPMYADMIN lors des exports Puis tu fais une bonne requete SELECT * sur la table qui t'interresse Ensuite tu traite les enregistrements 1 à 1 afin de créer les lignes INSERT pour ta requète et a la fin t'enregistre le tout dans un fichier .txt Cela ne sauvegardera pas la base à proprement parler, mais cela te permettra au moins d'avoir toutes les infos de ta base dans un fichier texte, qui, si tu venais a perdre ta base chez Free, te permettrait de recréer les tables et de réinsérer les enregistrements dedans @+ cadou
  2. Et comme ceci ? ALTER TABLE ibf_members ADD points INT(11) DEFAULT '100'; ALTER TABLE ibf_forums ADD PostPoints INT(10) DEFAULT '20'; ALTER TABLE ibf_forums ADD ReplyPoints INT(10) DEFAULT '10'; sinon regarde en les testant une à une @+ cadou
  3. Hello, Ca y est, j'ai trouvé la solution Les conditions de la jointure n'étant pas assez restrictive, car c'est une expression logique qui ne classe pas les critères par ordre d'importance, il est nécessaire de les "découper". Cela nous donne : SELECT C1.id_team, count(C2.id_team) AS rang, C1.pts FROM classement AS C1 JOIN classement AS C2 ON C1.pts < C2.pts OR (C1.pts = C2.pts AND C1.bp-C1.bc < C2.bp-C2.bc) OR (C1.pts = C2.pts AND C1.bp-C1.bc = C2.bp-C2.bc AND C1.bp <= C2.bp) WHERE C1.id_team = 11 AND C1.id_day = C2.id_day GROUP BY C1.id_day Merci à tous @+ cadou **EDIT** Modérateur (TheRec): Merci d'utiliser les BBCodes pour présenter du code, en l'occurrence la balise SQL ou CODE
  4. Non parce qu'en fait le but de cette requete est la suivante : Combien d'équipes ont un nombre supérieur de points et une meilleure différence de buts que l'équipe que j'ai sélectionné. Avec cela, je serais capable de terminer quelle est la position de l'équipe dans le classement. En faisant un GROUP BY id_day, j'aurais la liste de toutes les journées du championnat, avec la place dans le classement pour l'équipe dans chaque journée @+
  5. Ceci répondrait-il à ta demande ? Select BASE_annuaire.annu_id, BASE_annuaire.annu_societe, BASE_annuaire.email, BASE_categorie.cat_lib FROM BASE_annuaire JOIN BASE_annuaire_cat ON BASE_annuaire_cat.annu_id = BASE_annuaire.annu_id JOIN BASE_categorie ON BASE_annuaire_cat.cat_id = BASE_categorie.cat_id WHERE BASE_annuaire_cat.cat_id = 1 OR BASE_annuaire_cat.cat_id = 2; @+ cadou
  6. Hello, Je dis cela en passant, mais n'y a t-il pas un probleme dans l'ecriture desl requetes ? ALTER TABLE ibf_members ADD COLUMN points INT(11) NOT NULL DEFAULT '100' Ici on remarque le NOT NULL DEFAULT '100' ALTER TABLE `ibf_forums` ADD `PostPoints` INT(10) DEFAULT '20' NOT NULL ici on remarque DEFAULT '20' NOT NULL Et dans la premiere tu as un COLUMN que tu n'as pas dans les 2 autres A mon avis cela marcherait mieux si tu essayais : ALTER TABLE ibf_members ADD COLUMN 'points' INT(11) DEFAULT '100' NOT NULL; ALTER TABLE `ibf_forums` ADD COLUMN `PostPoints` INT(10) DEFAULT '20' NOT NULL; ALTER TABLE `ibf_forums` ADD COLUMN `ReplyPoints` INT(10) DEFAULT '10' NOT NULL; @+
  7. Bonjour à tous et à toutes, Je me permet de poster mon probleme car cela fais 3 jours que je tourne en rond et je ne trouve pas la sortie... J'ai bien sur tenter de trouver une réponse sur le web, mais cela doit etre bien caché car je ne trouve pas... Cela va sembler banal pour certaines pointures du SQL, mais pour moi, ce n'est pas aussi simple qu'il n'y parait. Voici mon probleme... Je tente de créer un site sur des championnats sportifs J'ai une table que l'on va appeller classement, et qui contient des infos comme la journée, les points, l'ID de l'équipe etc.... Pour sortir un classement je fais un SELECT tout bete avec les ORDER BY qui vont bien et qui me sors le classement des équipes de la 1ere à la dernière. Le classement se fait par points, puis à la différence de but et enfin par nombre de buts marqués. Je donne ici le nom des champs pour que l'on s'y retrouve mieux id_team => ID de l'équipe id_day => ID de la journée jouée pts => Points de l'équipe bp => Buts Placés (buts marqués) bc => Buts Concédés (buts pris) Voic mon probleme : J'aimerais sortir une requete qui me donne pour une équipe X son classement journée après journées (ie : Journée 1 => 3eme, journée 2 => 6eme, Journée 3 => 6ème, Journée 4 => 10ème etc...) J'ai trouvé un bout de requète que j'ai réadapté et qui ma foi fonctionne, mais qui n'est pas réaliste, c'est à dire que cela me remonte des trucs, mais c'est faux... C'est qu'il doit y avoir une erreur quelque part : Voici ce que j'ai : SELECT C1.id_team, count(C2.id_team) AS rang, C1.pts FROM classement AS C1 JOIN classement AS C2 ON C1.pts <= C2.pts WHERE C1.id_team = 11 AND C1.id_day = C2.id_day GROUP BY C1.id_day Ce que je n'arrive pas à faire, c'est avoir la bonne place de l'équipe dans le classement. Je me suis dis que c'est surement parce que dans le SELECT j'ai mes conditions dans le ORDER BY qui réorganise bien le tout, et que je ne les ai pas ici... Alors j'ai éssaye : SELECT C1.id_team, count(C2.id_team) AS rang, C1.pts FROM classement AS C1 JOIN classement AS C2 ON C1.pts <= C2.pts AND (C1.bp - C1.bc) < (C2.bp - C2.bc) WHERE C1.id_team = 11 AND C1.id_day = C2.id_day GROUP BY C1.id_day Mais cela me remonte des trucs encore plus fantaisiste. Bref je tourne en rond et je n'y arrive pas... Si une bonne ame charitable, experte en SQL pouvait m'aider.... Merci d'avance **EDIT** Modérateur (TheRec): Merci d'utiliser les BBCodes pour présenter du code, en l'occurrence la balise SQL ou CODE
×
×
  • Create New...