ma requete ne marche plus sous 2.5

Réduire
Ce sujet est fermé.
X
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] ma requete ne marche plus sous 2.5

    Bonjour,
    Je souhaite un petit coup de main en SQL
    J'avais dans un template, une requête qui permettait d'afficher des datas enregistrées dans la BD mais j'ai maintenant un message d'erreur :
    Can't connect to local MySQL server through socket '/tmp/mysqld.sock' (2)

    Je ne suis pas un spécialiste du PHP ou du SQL !

    Ma requête se présentait comme suit :

    Code:
    $db = JFactory::getDBO();
    
    $sql = "SELECT * FROM jos_table WHERE recordid=$item->id ORDER BY datemessage DESC";
    
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
    if (mysql_num_rows($req) == 0){
    echo '<div class="nomessage">Pas encore de message</div>';
    }else{
    
     while ($data = mysql_fetch_array($req)) { 
    
    
    	  echo '<div class="fleurs"><img src="http://www.monsitedetest.fr/'.$data['fleurs'].'" /><br /> 
       '.$data['texte'].'<br />déposé par <br />'.$data['deposant'].'<br />le '.$data['datemessage'].'</div>'; 
     
        }
    }
    mysql_free_result ($req);  
    mysql_close ();
    Je pense qu'il y a surement mieux à faire mais là, je patauge un peu

    ça fonctionnait bien sur J1.5 et là, ça plante !

    Merci de votre aide.
    On a tous 2 vies et la seconde commence le jour où l'on s'aperçoit qu'on en a qu'une ...

  • #2
    Re : ma requete ne marche plus sous 2.5

    Bonjour,

    La requête est catastrophique, il y a un mélange entre de l'instanciation via JFactory::getDBO() et des appels directs à mysql_query et autres...
    C'est déjà étonnant que ça ait pu fonctionner sur 1.5, mais en 2.5, ça ne risque pas.
    Code PHP:
    $db JFactory::getDBO();

    $sql $db->getQuerytrue );
    $sql->select$db->quoteName( array( 'recordid''fleurs''texte''deposant','datemessage' ) ) );
    $sql->from$db->quoteName('table' ) );
    $sql->where($db->quoteName('recordid') . '= '$item->id);
    $sql->order('datemessage DESC');

    $db->setQuery$sql ) ;

    $result $db->loadObjectList();
    $num_rows $db->getNumRows();

    if (
    $num_rows == 0){
        echo 
    '<div class="nomessage">Pas encore de message</div>';
    }else{
        foreach ( 
    $result AS $row ) {
            echo 
    '<div class="fleurs"><img src="http://www.monsitedetest.fr/'.$row->fleurs.'" /><br /> 
       '
    .$row->texte .'<br />déposé par <br />'.$row->deposant '<br />le '$row->datemessage '</div>'
     
        }

    serait dans la logique Joomla! 2.5.
    Pas de demande de support par MP.
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

    Commentaire


    • #3
      Re : ma requete ne marche plus sous 2.5

      Merci !
      ça semble fonctionner mais sans la condition !
      Si je laisse le if / else, cela met "pas encore de message" alors que pour le recordid 2 par exemple, j'ai bien 2 enregistrements et ils apparaissent bien si j'enlève la condition
      Pourtant, en toute logique, ton code devrait marcher ! Je en vois pas ce qui bloque !

      MERCI !!
      On a tous 2 vies et la seconde commence le jour où l'on s'aperçoit qu'on en a qu'une ...

      Commentaire


      • #4
        Re : ma requete ne marche plus sous 2.5

        essaies d'inverser les lignes $num_rows = et $result =

        J'ai répondu vite fait, sans tester
        (quoique pour tester il m'aurait fallu une table identique...)
        Pas de demande de support par MP.
        S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

        Commentaire


        • #5
          Re : ma requete ne marche plus sous 2.5

          L'inversion ne change rien !

          J'ai fais un var_dump des variables $result et $num_rows et j'ai ça :

          record sans message:

          var_dump num_rows : NULL
          var_dump result : array(0)
          Pas de message déposé

          record avec 2 message:

          var_dump num_rows : NULL
          var_dump result : array(2) { [0]=> object(stdClass)#535 (5) { ["recordid"]=> string(1) "2" ["fleurs"]=> string(25) "images/fleurs/fleurs8.gif" ["texte"]=> string(10) "I miss you" ["deposant"]=> string(2) "JM" ["cf_created"]=> string(10) "2013-09-11" } [1]=> object(stdClass)#534 (5) { ["recordid"]=> string(1) "2" ["fleurs"]=> string(25) "images/fleurs/fleurs1.gif" ["texte"]=> string(17) "testetstetst" ["deposant"]=> string(4) "test" ["cf_created"]=> string(10) "2013-09-11" } }
          Pas de message déposé

          Merci
          On a tous 2 vies et la seconde commence le jour où l'on s'aperçoit qu'on en a qu'une ...

          Commentaire


          • #6
            Re : ma requete ne marche plus sous 2.5

            Bon, essaies de remplacer
            Code PHP:
            $num_rows $db->getNumRows(); 
            par
            Code PHP:
            $num_rows count$result ); 
            dans le code de départ.
            Pas de demande de support par MP.
            S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

            Commentaire


            • #7
              Re : ma requete ne marche plus sous 2.5



              MERCI !!
              ça à l'air de bien fonctionner, $num_rows ne me donne plus NULL mais un int()

              Merci encore !!
              On a tous 2 vies et la seconde commence le jour où l'on s'aperçoit qu'on en a qu'une ...

              Commentaire


              • #8
                Re : ma requete ne marche plus sous 2.5

                Il te reste à passer ton sujet en Réglé
                Pas de demande de support par MP.
                S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                Commentaire

                Annonce

                Réduire
                Aucune annonce pour le moment.

                Partenaire de l'association

                Réduire

                Hébergeur Web PlanetHoster
                Travaille ...
                X