OVH Community, votre nouvel espace communautaire.

Warning: mysql_fetch_array()


Nowwhat
12/06/2011, 14h37
Le est plus moderne, et te prépare pour le jour ou que ton code ne marchera plus car ne sera plus accepté.

Ton $bd que tu mélange avec $db: c'est un bug de ton code, et ça ne pourrait marcher chez Free non plus.

zabuze
12/06/2011, 10h37
Bonjour
J'ai modifié (étourderies !!!) les Je suis finalement passé par la requète SHOW TABLES FROM nomdelabase LIKE nomdelatable. Ca a l'air de bien marcher !
Il y a sans aucune doute plus adapté ! mais bon, mieux vaut être humble !
Par contre, pouvez-vous me dire pourquoi, chez Free, le et $db ne génaient en rien le bon fonctionnement ???
Code PHP:
// Description : Retourne 1 si la table citée existe.  0 sinon.
function mysql_table_exists($table){
$sql "SHOW TABLES FROM masaplongeelic LIKE '".$table."' ";
$requete mysql_query($sql) or die('Erreur SQL !
'
.$sql.'
'
.mysql_error());
$nbr mysql_num_rows($requete);
if (
$nbr == 1) {
    return 
1
    } 
return 
0;
}
?>

Nowwhat
11/06/2011, 11h53
Ah, ça, oui !

L'accès à ta base marche, je n'ai pas douté.
Donc, ceci:
$connx=mysql_connect("serveur","utilisateur","motd epasse");
$bd=mysql_select_db("nomdelabase",$connx);
fonctionne bien, $bd est initialisé.
Et après tu utilise $db, inconnu au bataillon.

Gaston_Phone
11/06/2011, 11h40
@ zabuze : donc tes identifiants de connexion de ta base sont corrects. Regarde du coté des remarques de Nowwhat.

zabuze
11/06/2011, 10h46
merci pour votre aide. Voiçi le résultat :
mysql_connect=Resource id #1 - Erreur=
mysql_select_db=1 - Erreur=

Test de DROP/CREATE de la table 'Tab_test_DB' dans la base 'nomdelabase' sur le serveur 'mysql1-2.perso'

Supression de la table Tab_test_DB - Erreur= - $sql_query=DROP TABLE IF EXISTS `Tab_test_DB` - $result_query=1
Création de la table Tab_test_DB- Erreur= - $sql_query=CREATE TABLE `Tab_test_DB` ( `Id` int(11) NOT NULL auto_increment, `NOM` varchar(32) NOT NULL default '', `PRENOM` varchar(32) NOT NULL default '', PRIMARY KEY (`Id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 - $result_query=1
Ajout d'un enregistrement - Erreur= - $sql_query=INSERT INTO `Tab_test_DB` values ('','DURANDAL','Michel') - $result_query=1
Ajout d'un enregistrement - Erreur= - $sql_query=INSERT INTO `Tab_test_DB` values ('','DURANDAL','Pierre') - $result_query=1
Ajout d'un enregistrement - Erreur= - $sql_query=INSERT INTO `Tab_test_DB` values ('','accents-éèàâ','Jean-Noël') - $result_query=1
SELECT dans la table Tab_test_DB - Erreur= - $sql_query=SELECT Id, NOM, PRENOM FROM `Tab_test_DB` WHERE NOM='DURANDAL' - $result_query=Resource id #2
SELECT dans la table Tab_test_DB - Erreur= - $sql_query=SELECT Id, NOM, PRENOM FROM `Tab_test_DB` - $result_query=Resource id #3
Nombre d'enregistrements trouvés = 3
Table Tab_test_DB : 1 - $NOM=DURANDAL - $PRENOM=Michel
Table Tab_test_DB : 2 - $NOM=DURANDAL - $PRENOM=Pierre
Table Tab_test_DB : 3 - $NOM=accents-éèàâ - $PRENOM=Jean-Noël

Durée du traitement = 0.14 secondes

Nowwhat
11/06/2011, 10h34
Salut !!

Citation Envoyé par zabuze
Code:

Ici tu utilise $db comme variable.
T'as testé si il contient quelque chose de valable ??

Regarde ici ...
Citation Envoyé par zabuze
Code:
Jolie, un $bd, mais $bd n'est pas $db.

Ce que je n'arrive pas à comprendre est que "ça" marche chez Free

De plus, utilise php ... ?> car sinon ......

Gaston_Phone
11/06/2011, 08h29
Test de base de données :

Puis-je te suggérer de faire un tout petit script en PHP test_SQL.php, dans lequel tu vas :
- Ouvrir une connexion à ta base,
- Supprimer une table si elle existe,
- Créer une table,
- Faire une requête dans une table,
- Afficher les résultats de ta requête,
- Fermer ta connexion.

Ce script te permettra, indépendamment de tous tes autres scripts, de voir si ta base de données est accessible ou non, ainsi que la durée du traitement.

Peux-tu nous donner le résultat de ce test ? Merci.

test_SQL.php

Code PHP:

   error_reporting
(E_ALL);   // Activer le rapport d'erreurs PHP


function getmicrotime()
   { 
   list(
$usec$sec) = explode(" ",microtime()); 
   return ((float)
$usec + (float)$sec); 
   } 

   
$Date_start getmicrotime();


// ******  Exemples de configuration selon les hébergements mutualisés ******

//   Perso
//   ------
//      $DBhost  = "mysql5-14.perso";
//      $DBowner = "";  // Ton login SQL
//      $DBName  = $DBowner;

//   Pro
//   ---
//      $DBhost  = "mysql5-6.pro";
//      $DBowner = "";  // Ton login SQL
//      $DBName  = $DBowner;

// ******  Fin des exemples de configuration


// ******  Configuration - Debut ******
   
$DBhost  "mysql5-6";   // Par exemple
   
$DBowner "";  // ton login SQL
   
$DBpw    "";  // ton password SQL
   
$DBName  $DBowner;
// ******  Configuration - Fin ******
    

      
$Table_SQL "Tab_test_DB";

      
$fh_db mysql_connect($DBhost$DBowner$DBpw);
      
$Erreur mysql_error();
      echo 
" mysql_connect=".$fh_db." - Erreur="
.mysql_error()." 
 \n";
      if (
strlen($Erreur) > 0)   exit;

      
$sel mysql_select_db($DBName$fh_db);
      echo 
" mysql_select_db=".$sel." - Erreur=".mysql_error()." 
 
\n";

      echo 
" Test de DROP/CREATE de la table '.$Table_SQL"' dans la base '.$DBName"' sur le serveur '.$DBhost"
  
";

      
//  Supression de la table Tab_test_DB

      
$sql_query="DROP TABLE IF EXISTS `Tab_test_DB` ";    // Requête
      
$result_query=mysql_query($sql_query);     // Exécution de la requête
      
$Erreur mysql_error();
      echo 
"Supression de la table Tab_test_DB - Erreur=".mysql_error()." - \$sql_query=$sql_query - \$result_query=$result_query 
 \n";
      if (
strlen($Erreur) > 0)   exit;

      
//  Création de la table Tab_test_DB

      
$sql_query="CREATE TABLE `Tab_test_DB` (  `Id` int(11) NOT NULL auto_increment,  `NOM` varchar(32) NOT NULL default '',  `PRENOM` varchar(32) NOT NULL default '', PRIMARY KEY  (`Id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 ";    // Requête
      
$result_query=mysql_query($sql_query);     // Exécution de la requête
      
$Erreur mysql_error();
      echo 
"Création de la table Tab_test_DB- Erreur=".mysql_error()."  - \$sql_query=$sql_query - \$result_query=$result_query 
 \n";
      if (
strlen($Erreur) > 0)   exit;

      
//  Ajout d'un Premier enregistrement

      
$sql_query="INSERT INTO `Tab_test_DB`  values ('','DURANDAL','Michel')  ";    // Requête
      
$result_query=mysql_query($sql_query);     // Exécution de la requête
      
$Erreur mysql_error();
      echo 
"Ajout d'un enregistrement - Erreur=".mysql_error()." - \$sql_query=$sql_query - \$result_query=$result_query 
 \n";
      if (
strlen($Erreur) > 0)   exit;

      
//  Ajout d'un Deuxième enregistrement

      
$sql_query="INSERT INTO `$Table_SQL`  values ('','DURANDAL','Pierre')  ";    // Requête
      
$result_query=mysql_query($sql_query);     // Exécution de la requête
      
$Erreur mysql_error();
      echo 
"Ajout d'un enregistrement - Erreur=".mysql_error()." - \$sql_query=$sql_query - \$result_query=$result_query 
 \n";
      if (
strlen($Erreur) > 0)   exit;

      
//  Ajout d'un Troisième enregistrement

      
$sql_query="INSERT INTO `Tab_test_DB`  values ('','accents-éèàâ','Jean-Noël')  ";    // Requête
      
$result_query=mysql_query($sql_query);     // Exécution de la requête
      
$Erreur mysql_error();
      echo 
"Ajout d'un enregistrement - Erreur=".mysql_error()." - \$sql_query=$sql_query - \$result_query=$result_query 
 \n";
      if (
strlen($Erreur) > 0)   exit;

      
//  SELECT dans la table Tab_test_DB : NOM='DURANDAL'

      
$sql_query="SELECT Id, NOM, PRENOM FROM `Tab_test_DB` WHERE NOM='DURANDAL' ";    // Requête
      
$result_query=mysql_query($sql_query);     // Exécution de la requête
      
$Erreur mysql_error();
      echo 
"SELECT dans la table Tab_test_DB  - Erreur=".mysql_error()." - \$sql_query=$sql_query - \$result_query=$result_query 
 \n";
      if (
strlen($Erreur) > 0)   exit;

      
//  SELECT dans la table Tab_test_DB : tous les enregistrements

      
$sql_query="SELECT Id, NOM, PRENOM FROM `Tab_test_DB` ";    // Requête
      
$result_query=mysql_query($sql_query);     // Exécution de la requête
      
$Erreur mysql_error();
      echo 
"SELECT dans la table Tab_test_DB  - Erreur=".mysql_error()." - \$sql_query=$sql_query - \$result_query=$result_query 
 \n";
      if (
strlen($Erreur) > 0)   exit;
      
$result_count_row_get mysql_num_rows($result_query);  
      
$Erreur mysql_error();
      echo 
" Nombre d'enregistrements trouvés = $result_count_row_get 
 \n";
      if (
strlen($Erreur) > 0)   exit;

      if (
$result_query)
         {
         
$Count 0;
         while (
$result_query && $row=mysql_fetch_array($result_query)) 
            { 
            
$Count     $Count 1;
            
$NOM       $row['NOM'];
            
$PRENOM    $row['PRENOM'];
            echo 
" Table  Tab_test_DB : ".$Count." - \$NOM=".$NOM." - \$PRENOM=".$PRENOM." 
 \n";
            }
         }

      
// Fermeture de la connexion    
      
mysql_close($fh_db);                                 


      
$Date_end getmicrotime();
      
$Duree $Date_end $Date_start;
      
$Duree sprintf("%01.2f"$Duree);

      echo 

  Durée du traitement = 
$Duree secondes 
 \n";
?>

zabuze
11/06/2011, 08h14
Bonjour
J'ai mis les paramètres qui m'ont été retourné par OVH pour les accès à la base de données :
Serveur : mysql1-2.perso
Utilisateur : utilisateur
Nom de la base : nomdelabase
Mot de passe : motdepasse

Gaston_Phone
10/06/2011, 19h53
OK, mais qu'as-tu mis pour "serveur","utilisateur" ?

zabuze
10/06/2011, 19h39
Code:

Gaston_Phone
10/06/2011, 18h46
Alors ta seule différence se trouverait dedans :
include ('../../../../CONNECTION/connection.php');

zabuze
10/06/2011, 17h38
Hello
Dans le script, je dois avoir une erreur de version dans la requète Mysql.
Je viens de migrer de chez Free, et cela fonctionnait bien !!!

Gaston_Phone
10/06/2011, 17h27
Rien compris.

zabuze
10/06/2011, 17h05
Bonjour à tous !
quelques déboires de jeunesse sur un requête qui me lance un message :
"Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /homez.367/masaplon/www/LICENCIES/FORM_CLUB/formation_niveau1/leqcm/fonctions.php on line 8".
Pouvez-vous m'indiquer le chemin ?
Merci beaucoup.

Code:
");
return ("#FF0000"); 
}
?>