Problème de mysqli_query (y marche chez moi mais pas chez OVH)

Problème de mysqli_query (y marche chez moi mais pas chez OVH) - PHP - Programmation

Marsh Posté le 12-04-2007 à 23:52:52    

Bonsoir,

 

petit souci qui me gâve :o

 


bon voilà j'ai fait un script qui va chercher des infos dans une base de données (champs "code postal de l'évènement" ), et affiche tous ces CP sous forme de menu déroulant.

 
Code :
  1. <form method="post" action="index.php5" name="cp">
  2.    <br>Veuillez sélectionner un CP, puis cliquer sur OK :<br><br>
  3.    <select name="cp">
  4.    <option value="">-CP-</option>
  5.    <?php $sql = '
  6.    SELECT DISTINCT cal_cp
  7.    FROM px_calepin
  8.    ORDER BY cal_cp';
  9.    $resultat_cp = mysqli_query($sql, $link) or die(mysql_error());
  10.    while ($row_cp = mysqli_fetch_assoc($resultat_cp))
  11.    {
  12.     echo '<option value="'.$row_cp['cal_cp'].'">'.$row_cp['cal_cp'].'</option>';
  13.    }?>
  14.    </select>
  15.    <input name="ok" value="OK" type="submit">
  16.   </form>
 


Il y a aussi un include, contenant les paramètres de la BDD :

Code :
  1. <?php
  2. $mysqlserver = 'mysql5-2';
  3. $mylogin = 'login';
  4. $mypass = 'pass';
  5. $bdd = 'bdd';
  6. $link = mysqli_connect($mysqlserver , $mylogin , $mypass , $bdd);
  7. ?>
 

Ca marche nickel chez moi sous wamp, le menu déroulant affiche bien les CP, dans l'ordre et sans doublon, mais chez OVH rien à faire... J'ai tenté de renommé en php5 pour activer cette version, mais j'ai encore des soucis.

 

Voici le message d'erreur que j'ai :

 
Citation :

Warning:  mysqli_query() expects parameter 1 to be mysqli, string given in /home/blabla/index.php5 on line 43


La ligne d'erreur est : $resultat_cp = mysqli_query($sql, $link) or die(mysql_error());

 

Si quelqu'un voit où est le problème :??: Merci :)


Message édité par Donzeky le 13-04-2007 à 00:07:54

---------------
Dans les magasins de lingerie, on ne voit pas de calendriers avec des photos de garage. (JCVD)
Reply

Marsh Posté le 12-04-2007 à 23:52:52   

Reply

Marsh Posté le 13-04-2007 à 12:12:23    

http://fr.php.net/manual/en/function.mysqli-query.php
Tu utilises la librairie de manière procédurale, il faut donc passer la connexion en premier et la requete en second.
 
Autre méthode, celle en orienté objet :
 
$link = new mysqli($mysqlserver , $mylogin , $mypass , $bdd);
$resultat_cp = $link->query($sql, $link) or die(mysql_error());
$row_cp = $link->fetch_assoc($resultat_cp);
 
etc...
 

Reply

Marsh Posté le 13-04-2007 à 18:04:02    

J'avais aussi tenté de passer la connexion en premier, mais j'ai le même problème :/
 
Je vais regarder comment faire en orienté objet.


---------------
Dans les magasins de lingerie, on ne voit pas de calendriers avec des photos de garage. (JCVD)
Reply

Marsh Posté le 14-04-2007 à 11:04:59    

Plutot que de casser un code qui marchait, essaye plutot de voir pourquoi y'a pas de connexion ;)

Reply

Marsh Posté le 14-04-2007 à 14:03:46    

C'est vrai que ça marchait sous WAMP, c'est bizarre quand même...

Reply

Marsh Posté le 18-04-2007 à 23:47:51    

Alors, j'ai fait un test pour vérifier que la connexion fonctionne :

Code :
  1. <?php
  2.  if ($link > 0)//Si la connexion mysql est OK
  3.  {
  4.   echo 'connexion OK';
  5.  }
  6.  else
  7.  {
  8.   echo 'connexion pas OK';
  9.  }
  10.  ?>


Ce code m'affiche "connexion OK", donc de ce coté là à priori c'est bon.
Pour etre sûr, j'ai changé le login ou mot de passe ou le nom de la base dans les paramètres de connexion, et là ça plante totalement, une grosse erreur apparait.

 


Sinon ce qui revient souvent quoique je fasse, c'est ce type d'erreur :

Citation :

mysql_fonctionblabla() expects parameter 1 to be mysql(i), string given in <b>/home/blabla/index.php5 on line X


La line X est souvent celle où se trouve le "query".

 

Donc je ne comprend pas...


Message édité par Donzeky le 18-04-2007 à 23:48:57

---------------
Dans les magasins de lingerie, on ne voit pas de calendriers avec des photos de garage. (JCVD)
Reply

Marsh Posté le 20-04-2007 à 23:44:42    

C'est bizarre, quand je change le nom des tables ou des champs, en mettant des noms n'existant pas, j'ai exactement le même message d'erreur.
 
Vraiment, je ne comprends pas :??:


---------------
Dans les magasins de lingerie, on ne voit pas de calendriers avec des photos de garage. (JCVD)
Reply

Marsh Posté le 21-04-2007 à 02:08:25    

Une petite réminescence, il me semble qu'il y a un souci avec mysql 5 et mysqli pour les versions de php4 (ie il gère pas les nouveautés de mysql 5 et mysqli marchait pas ou mal).
 
Es tu vraiment en php5 avec mysql5 :??:
 
Un petit phpinfo() t'en diras plus :) Visiblement il faut une extension .php5 chez ovh et avec ta version initiale sauf l'invertion à la ligne 10 ;)

Reply

Marsh Posté le 22-04-2007 à 19:19:46    

Oui, j'avais mis l'extension .php5
J'avais aussi interverti les valeurs de la ligne 10 :)
 
Mais comme j'ai toujours des problèmes comme ça, je remets une extension .php, et enlève les requetes mysqli.  
 
Donc je reviens au point de départ :/
 
 
Mon phpinfo, lui, me dit ça :
 
http://www.izipik.com/images/20070410/k506ynhq3ivfklpcs2-php.jpg
 
Peut-être que je dois reformuler mes requetes en mysql4 :??:


---------------
Dans les magasins de lingerie, on ne voit pas de calendriers avec des photos de garage. (JCVD)
Reply

Marsh Posté le 22-04-2007 à 23:19:43    

Bon, j'ai trouvé quoi faire :)

 

Je me suis inspiré de ce modèle, trouvé dans les tutos de OVH :

 
Code :
  1. $host = la_machine;
  2. $user = votre_login;
  3. $bdd = Nom_de_la_base_de_donnees;
  4. $passwd = Mot_de_passe;
  5. mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur" );
  6. mysql_select_db($bdd) or die("erreur de connexion a la base de donnees" );
  7. $query = "SELECT nom,url FROM sites ORDER BY nom";
  8. $result = mysql_query($query);
  9. while($row = mysql_fetch_row($result)){
  10. $Nom = $row[0];
  11. $Url = $row[1];
  12. echo "<tr>
  13. <td><a href="$Url">$Nom</a></td>


Je n'ai pas placé le mysql_connect dans une variable, ai viré tous les mysqli, et ça a marché.

 

Merci à tous :)


Message édité par Donzeky le 22-04-2007 à 23:20:02

---------------
Dans les magasins de lingerie, on ne voit pas de calendriers avec des photos de garage. (JCVD)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed