IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème function utilisant mysql


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Par défaut Problème function utilisant mysql
    Bonjour, je réalise une fonction qui puis se me permettre de récupèrer des informations sur un serveur MySQL.

    Cette fonction est prévue pour être générique à toutes tables, quelque soit leurs nombre de ligne, ou de champs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    function test()
    {
    	$dbhost = 'sql.free.fr';
    	$dbname = '******';
    	$dbuser = '******';
    	$dbpass = '******';
    	$dbpfix = 'console';
    	mysql_connect($dbhost, $dbuser, $dbpass);
    	mysql_select_db($dbname);
    	$query = mysql_query('SELECT * FROM `******`.`'.$dbpfix.'_blocks`');
    	$result = array();
    	$result[] = array('rows' => mysql_num_rows($query),'fiels' => mysql_num_fields($query));
    	while($datas = mysql_fetch_row($query))
    	{
    		$result[] = array($datas[0], $datas[1], $datas[2], $datas[3]);
    	}
    	return $result;
    	mysql_close();
    }
    $test = test();
    print_r($test);
    Le code ci-dessus n'est pas générique. Il cible le contenu d'une table en particulier. Il fonctionne très bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    function test()
    {
    	$dbhost = 'sql.free.fr';
    	$dbname = '******';
    	$dbuser = '******';
    	$dbpass = '******';
    	$dbpfix = 'console';
    	mysql_connect($dbhost, $dbuser, $dbpass);
    	mysql_select_db($dbname);
    	$query = mysql_query('SELECT * FROM `******`.`'.$dbpfix.'_blocks`');
    	$result = array();
    	$result[] = array('rows' => mysql_num_rows($query),'fiels' => mysql_num_fields($query));
    	$a = 1;
    	while($datas = mysql_fetch_row($query))
    	{
    		$result[$a] = array();
    		$b = 0;
    		while($b = mysql_num_fields($query))
    		{
    			$result[$a][$b] = $datas[$b];
    			$b++;
    		}
    		$a++;
    	}
    	return $result;
    	mysql_close();
    }
    $test = test();
    print_r($test);
    Et là, c'est le drame !
    J'ai systématiquement un INTERNAL SERVER ERROR.
    J'ai tenté de le retourné dans différent sens, sa ne change rien.

    Je ne parviens pas a résoudre si sa vient de la syntaxe, ou si c'est dû à une mauvaise utilisation des fonctions !

    D'avance merci pour votre aide.

  2. #2
    Membre chevronné
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Par défaut
    Exercice intéressant..

    J'ai peut-être loupé un truc mais je ne vois pas à quoi te sert cette partie de code si tu travailles sur la même table => mysql_num_fields($query) est constant, mais tu le compares avec $b++ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while($b = mysql_num_fields($query))
    		{
    			$result[$a][$b] = $datas[$b];
    			$b++;
    		}
    Ou alors, il faut que tu changes ton "=" pour un "<"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while($b < mysql_num_fields($query))

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Par défaut
    Je test avec "<"

    A vrai dire, le mysql_num_fields, est pas constant, car une fois que se code fonctionne, je souhaite utiliser un argument sur la fonction pour changer de table !

    Et chacune de mes tables à un nombre de champs qui lui est propre.

    Et je souhaite pas ajouter une condition pour chaque table de ma base de donnée (ce qui serai bien trop lourd ...)

    ^^

Discussions similaires

  1. [Débutant] Problème d'utilisation MySQL Connector
    Par Invité dans le forum C#
    Réponses: 0
    Dernier message: 21/06/2015, 20h36
  2. Problème d'utilisation des commandes mysql
    Par Drogba11 dans le forum MySQL
    Réponses: 2
    Dernier message: 17/12/2008, 13h48
  3. Problème d'utilisation de MySql++
    Par Verbalinsurection dans le forum C++
    Réponses: 0
    Dernier message: 24/03/2008, 19h35
  4. [Embedded Matlab Function] Problème d'utilisation
    Par berberat dans le forum Simulink
    Réponses: 1
    Dernier message: 21/09/2007, 15h27
  5. Problème d'utilisation de Mysql avec dev-c++
    Par Watchi dans le forum Dev-C++
    Réponses: 10
    Dernier message: 06/08/2004, 14h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo