Où est l'erreur SVP?

Résolu
yaya -  
nirG95 Messages postés 319 Statut Membre -
Bonjour,

Je suis assez novice dans la programmation PHP et je suis bloqué sur le script suivant, il y a une erreur mais je ne trouve pas la solution:

$sql2 = mysql_query("SELECT * FROM meteo WHERE id_ville = ".$webcamville['id_ville2']." ORDER BY temperature DESC LIMIT 0,50" ) or die(mysql_error());
$data2 = mysql_fetch_array($sql2);

7 réponses

  1. Xav
     
    Bonjour,

    je pense que l'erreur vient de la variable. Essai de faire :

    $sql2 = mysql_query("SELECT * FROM meteo WHERE id_ville = " . $webcamville['id_ville2'] . " ORDER BY temperature DESC LIMIT 0,50" ) or die(mysql_error()); 


    Cdlt
    0
  2. Defouille Messages postés 404 Statut Membre 54
     
    Essaye :
    die($sql2)

    après que tu forges ta chaine, pour voir si c'est bien ce que tu veux.
    0
  3. yaya
     
    Merci Xav!

    Réponse super rapide en plus!
    Il n'y a plus d'erreur de syntaxe même si ça ne fait pas ce que je voudrais que ça fasse, je m'explique:
    avec cette requête, je voudrais que le programme affiche les 50 webcams de ma bbd où la température externe est la plus haute, par ordre décroissant.
    Là, il m'affiche 50 webcams aléatoirement
    0
  4. Defouille Messages postés 404 Statut Membre 54
     
    As-tu essayé ta requête sur le gestionnaire de base (phpmyadmin ou autre) ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. yaya
     
    oui Defouille mais Xav a bien répondu à ma demande, il fallait mettre des espace au niveau de la variable pour que ça marche je pense.
    0
  7. yaya
     
    En fait Xav, il n'y a plus d'erreur de syntaxe, malgrès tout le ORDER BY temperature DESC LIMIT 0,50 n'est pas pris en compte
    0
    1. nirG95 Messages postés 319 Statut Membre 32
       
      Oulà, niveaux requete je n'ai jamais été très fort ! Mais logiquement (pour moi lol) la requete est bonne.Directement dans phpmyadmin quand tu fais la requete

      SELECT * FROM meteo order by temperature desc

      Es-ce que ça tri bien ?

      Mais sinon post un autre message quelqu'un de plus compétent pourras te répondre :p

      Cdlt.
      0
    2. nirG95 Messages postés 319 Statut Membre 32
       
      ps : tu as quoi comme données dans ton champ temperature ?

      39 ou 39° (numerique ou txt)

      cdlt.
      0
    3. nirG95 Messages postés 319 Statut Membre 32
       
      Car si tu es en varchar :

      $sql2 = mysql_query("SELECT * FROM meteo WHERE id_ville = " . $webcamville['id_ville2'] . " ORDER BY temperature *1 DESC LIMIT 0,50" ) or die(mysql_error()); 


      *1 force la transformation en nombre

      Sinon faut passer ton champ en INT

      Cdlt.
      0
    4. yaya
       
      merci Xav,

      alors oui ça tri bien, oui c'est en "integer" et non ça ne marche pas.
      0
    5. nirG95 Messages postés 319 Statut Membre 32
       
      peut tu me mettre les champs de ta table avec un exemple pour que je puisse faire un essai ? :)

      Cdlt.
      0
  8. nirG95 Messages postés 319 Statut Membre 32
     
    De rien, bonne continuation.

    Xav
    0