PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 16-02-2013 03:41:42

phildelau
Membre
Inscription : 15-02-2013
Messages : 8

ALTER_TAB comment lancer la requête en php

Voilà

sql = ALTER TABLE `cov_adsmanager_ads`\n"
    . " ORDER BY `ad_datededepartoccasionnel` DESC";

Comment lancer cette requête dans ma page php !  je bloque!

Merci pour l'aide

Hors ligne

#2 16-02-2013 07:27:35

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : ALTER_TAB comment lancer la requête en php

Saluton,
Je ne sache pas qu'une clause ORDER BY fasse partie des contraintes que l'on puisse définir dans le schéma d'une table MySQL.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 16-02-2013 13:52:24

phildelau
Membre
Inscription : 15-02-2013
Messages : 8

Re : ALTER_TAB comment lancer la requête en php

saluvous saluton,
Je ne comprends pas trop ta réponse peux-tu m'expliquer simplement pour que je puisse te répondre

Merci

Hors ligne

#4 16-02-2013 13:58:51

phildelau
Membre
Inscription : 15-02-2013
Messages : 8

Re : ALTER_TAB comment lancer la requête en php

Re Saluton,

Je pense que j'aii compris ce que tu voulais me dire. Cette requête je l'ai effectuer à partir de phpMyadmin (onglet opérations), le tri ce fait bien sur ma table, le code envoyé est celui qui à été généré dans phpmyadmin (creer source php)

Hors ligne

#5 16-02-2013 23:00:33

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : ALTER_TAB comment lancer la requête en php

ORDER BY
vous permet de créer une nouvelle table tout en ordonnant les lignes par défaut.
Notez que cet ordre ne sera pas conservé après les prochaines insertions et modifications.
Dans certains cas, cela aide MySQL si les colonnes sont dans l'ordre dans lequel vous allez trier les valeurs.
Cette option n'est vraiment utile que si vous savez à l'avance dans quel ordre vous effectuerez les tris : vous y gagnerez alors en performances.

on en apprend tous les jours wink
a++

Hors ligne

#6 17-02-2013 07:47:30

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : ALTER_TAB comment lancer la requête en php

Bien vu, Pierrot,
Cette option est, probablement à tort, si peu usitée, que je ne l'avais jamais vu, à ce jour, employée ni mentionnée dans aucun des nombreux ouvrages afférents à MySQL qu'il m'a été donné d'étudier.
Son intérêt me semble quand même limité à des circonstances très particulières : une table dont le contenu initial volumineux serait intégré au moins au 3/4 par un LOAD DATA, table peu susceptible d'être l'objet d'INSERT, UPDATE, DELETE sur les colonnes visées par l'ORDER BY, une table peu susceptible en outre d'être sollicitée pour des classements (plutôt que des tris, merci) différents de ceux de l'ORDER BY initial.
Si les gains en performances sont au rendez-vous, ça mérite d'être regardé de plus près.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#7 17-02-2013 12:21:57

phildelau
Membre
Inscription : 15-02-2013
Messages : 8

Re : ALTER_TAB comment lancer la requête en php

Pierrot et Maljuna Kris,

En effet ce n'est pas un tri mais un ordonnancement.
Je ne suis pas développeur et ne peux pas vous suivre dans votre analyse.

Je demande simplement comment LANCER cette requête dans ma page php.


Merci

Hors ligne

#8 17-02-2013 13:34:28

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : ALTER_TAB comment lancer la requête en php

Hé bien je dirais a priori comme n'importe quelle autre requête. Après tout dépend si tu utilises PDO ou si tu es resté sur les fonctions PHP dédiées à mysql.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#9 18-02-2013 11:56:24

phildelau
Membre
Inscription : 15-02-2013
Messages : 8

Re : ALTER_TAB comment lancer la requête en php

Maljuna Kris,

Effectivement j'utilise PDO (je progresse).

Pour essayer d'être simple:
J'ai une table dont je récupère les données pour les afficher. Cette table est indexer sur l'ID. Pour la page qui m'intéresse je voudrais que la table soit indexer temporairement (uniquement pour cette page)sur la colonne ma_colonne (par exemple) et ordonnancer celle-ci par ordre décroissant .

J'espère que je suis clair ?

Merci

Hors ligne

#10 18-02-2013 13:12:39

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : ALTER_TAB comment lancer la requête en php

Et quelle difficulté rencontres-tu pour soumettre cette requête via PDO ?


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#11 18-02-2013 13:40:05

phildelau
Membre
Inscription : 15-02-2013
Messages : 8

Re : ALTER_TAB comment lancer la requête en php

Je ne sais pas quelle syntaxe employée.
Pourrais-tu me donner des éxemples

Merci

Hors ligne

#12 18-02-2013 15:34:25

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : ALTER_TAB comment lancer la requête en php

Si tu utilises PDO tu dois, a minima, en connaître la cinétique.
Créer une instance avec la chaîne de connexion, soumettre la requête, en parcourir le résultat.
Sinon, qu'entends-tu par :

phildelau a écrit :

Effectivement j'utilise PDO (je progresse).


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#13 19-02-2013 05:55:49

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : ALTER_TAB comment lancer la requête en php

$connectionpdo->query($tarequete)

a++

Hors ligne

#14 19-02-2013 14:23:41

phildelau
Membre
Inscription : 15-02-2013
Messages : 8

Re : ALTER_TAB comment lancer la requête en php

Maljuna Kris

Bonjour,

J’ai abandonné  l’option ALTER_TAB pas assez bon pour me lancer dans cette voie.

Dans une autre page j’ai repris un élément SELECT qui me permet de faire un tri. Code ci-dessous

   

<?php if ($conf->display_list_sort == 1) { ?>
    <?php
     if (($this->catid != 0)&&($this->catid != -1)) {
      $urloptions = "&catid=".$this->catid;
     } else if ($this->modeuser == 1) {
      $urloptions = "&user=".$this->listuser;
     } else  {
      $urloptions = "";
     } ?>
    <?php if (isset($this->orders)) { ?>
    <?php echo JText::_('ADSMANAGER_ORDER_BY_TEXT'); ?>
    <select name="order" size="1" onchange="jumpmenu('parent',this)">
        <option value="<?php echo TRoute::_("index.php?option=com_adsmanager&view=list".$urloptions."&order=");?>" <?php if ($this->order == "1") { echo "selected='selected'"; } ?>><?php echo ""; ?></option>
         <?php foreach($this->orders as $o)
         {
                 ?>
        <option value="<?php echo TRoute::_("index.php?option=com_adsmanager&view=list".$urloptions."&order=".$o->fieldid);?>" <?php if ($this->order == $o->fieldid) { echo "selected='selected'"; } ?>><?php echo JText::_($o->title); ?></option>
        <?php
         }
       ?>
    </select>
    <?php }
             } ?>

Chaque option du select appelle la fonction suivante :
   

 <script type="text/JavaScript">
<!--
function jumpmenu(target,obj){
  eval(target+".location='"+obj.options[obj.selectedIndex].value+"'"); 
  obj.options[obj.selectedIndex].innerHTML="<?php echo JText::_('ADSMANAGER_WAIT');?>";
}  
//-->
</script>

Sur ma page dans la liste quand je sélectionne l’option qui m’intéresse, la page s’affiche sans problème avec le tri voulu (enfin !).
Je veux maintenant automatisé ce tri, c'est-à-dire que le tri s’exécute à la fin de la construction de ma page. Pour cela j’ai commencé a adapté le code php, ci-dessous :

     <?php if ($conf->display_list_sort == 1) { ?>
    <?php
     if (($this->catid != 0)&&($this->catid != -1)) {
      $urloptions = "&catid=".$this->catid;
     } else if ($this->modeuser == 1) {
      $urloptions = "&user=".$this->listuser;
     } else  {
      $urloptions = "";
     } ?>
     <?php if (isset($this->orders)) {
                             foreach($this->orders as $o)
         {
        $this->order = $o->fieldid;
       
        echo $this->order;
       
        if ($this->order == "15")
       
             {
              echo "Yes";
            }
        else{
          echo "no";
          }

         }
                      }
            } ?>  

Dans le if ($this->order == "15")  je veux appelé la page ci-dessous,mais je ne sais pas si la syntaxe est bonne et quelle est la fonction pour l’appeler automatiquement.

TRoute::_("index.php?option=com_adsmanager&view=list".$urloptions."&order=".$this->order."");

Hors ligne

#15 19-02-2013 15:49:52

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : ALTER_TAB comment lancer la requête en php

Saluton,
Je pense, en premier lieu, que tu devrais clarifier ton code PHP.
Je l'ai colorisé et il aparaît immédiatement que des balisages <?php ?> intempestifs et inutiles fleurissent toutes les deux lignes.
Il faudrait commencer par là.
Ensuite, ce TRoute:: de POO, fleure bon le CMS, mais nous ne sommes pas devins, et surtout pas forcément au fait de toutes les architectures de tous les CMS; il va donc falloir nous "affranchir" a minima.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#16 19-02-2013 17:23:42

phildelau
Membre
Inscription : 15-02-2013
Messages : 8

Re : ALTER_TAB comment lancer la requête en php

En effet C'est un CMS (joomla 2.5) et c'est un composant que j'essaie d'adapter.
Ce composant est gratuit et s'appelle ADSMANAGER.
Il permet de créer et gérer des petites annonces, je l'adapte pour réaliser un outil de covoiturage local que je veux installer sur le site www.lecentredailleurs.com où je suis  bénévol dans un projet d'autostop participatif et de covoiturage.

Donc le problème est que par défaut les annonces sont ordonnancées par défaut sur la date de dépôt (comme peuvent l'être les annonces du boncoin).

Pour le covoiturage il est préférable que ces annonces soient ordonnancées par date départ. d'où le problème posé.

Pour le nettoyage du code je le ferais, ce que je t'ai envoyé provient de ma page de test.

Merci pour ta patience

Hors ligne

Pied de page des forums