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

Réseau C Discussion :

[MySQL] Lancer des requêtes


Sujet :

Réseau C

  1. #1
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut [MySQL] Lancer des requêtes
    Bonjour à tous..
    J'essaie de lancer une requête SQL sur une base mySQL de chez Free mais en vain. J'implore votre aide !

    Code C : 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    #include <unistd.h>
    #include <winsock.h>
    #include <mysql/mysql.h>
     
     
    void requete(MYSQL *conn)
    {
    	MYSQL_RES *result;
    	MYSQL_ROW elementsColonne;
    	unsigned int nbColonnes;
    	int i;
     
    	if (mysql_query(conn,"SELECT * FROM compteur"))
    	{
    		printf("Erreur dans la requête\n");
    		return;
    	}
    	else // requête bonne, traitons les données qu'elle renvoit
    	{
    		result = mysql_store_result(conn);
    		if (result != NULL)  // MySQL peut extraire des résultats
    		{
    			nbColonnes = mysql_num_fields(result);
     
    			// récupère les enregistrements un par un
    			while ((elementsColonne = mysql_fetch_row(result)))
    			{
    				for (i = 0; i < nbColonnes; i++)
    					printf("%s\t", (elementsColonne[i] != NULL) ? elementsColonne[i] : "NULL");
    				printf("\n");
    			}
    			// on libère la mémoire prise pour les résultats
    			mysql_free_result(result);
    		}
    		else
    			printf("Aucun résultat à la requête !\n");
    	}
    }
     
     
    int main(int argc, char*argv[])
    {
    	MYSQL *conn;
     
    	// initialisation
    	if((conn = mysql_init(NULL)) == NULL)
    	{
    		printf("Erreur d'initialisation\n");
    		return 0;
    	}
     
    	// connexion au serveur (ici, en local)
    	if(mysql_real_connect(conn,"sql.free.fr","pseudo","pass","bdd",0,NULL,0)==NULL)
    	{
    		printf("Erreur de connexion\n");
    		return 0;
    	}
     
    	// on lance la requête
    	requete(conn);
     
    	// on ferme la connexion au serveur MySQL
    	mysql_close(conn);
    }

    Erreurs retournées :
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    main.o(.text+0x15):main.cpp: undefined reference to `mysql_query@8'
    main.o(.text+0x38):main.cpp: undefined reference to `mysql_store_result@4'
    main.o(.text+0x53):main.cpp: undefined reference to `mysql_num_fields@4'
    main.o(.text+0x64):main.cpp: undefined reference to `mysql_fetch_row@4'
    main.o(.text+0xdf):main.cpp: undefined reference to `mysql_free_result@4'
    main.o(.text+0x128):main.cpp: undefined reference to `mysql_init@4'
    main.o(.text+0x18c):main.cpp: undefined reference to `mysql_real_connect@32'
    main.o(.text+0x1be):main.cpp: undefined reference to `mysql_close@4'
    collect2: ld returned 1 exit status

    Merci à tous

    J'ai aussi essayer la méthode de : Dark_Ebola

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Quel EDI ?
    Tu as ajouté la librairie My_Sql .lib ou .a au linkage de ton projet ?

  3. #3
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut
    Je suis sous Dev-C++ et j'ai ajouté le package mysql.devpack.. pour mysql.h

    Je viens de lire qu'il n'était pas possible de se connecter sur une base Free depuis sa machine.
    Pour les bases de chez OVH ça marche ?
    Il semblerait qu'il faille ajouter mysql.lib dans le même répertoire..

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Citation Envoyé par d-Rek
    Je suis sous Dev-C++ et j'ai ajouté le package mysql.devpack.. pour mysql.h
    Je ne connais pas Dev-C++ et encore moins ce que représente un package pour lui.
    my_sql.h c'est un header pas une librairie.

    Tu as un probléme de linkage parce que le .lib ou le .a de lib my_sql n'est pas lié à ton projet.

    Dans le menu Project/propertie tu as pas une partie qui te permet d'ajouter tes libs ?

  5. #5
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut
    Oui j'ai linké libmysql.a et je n'ai plus d'erreurs, j'arrive à compiler le projet mais pas à lancer l'exe.

  6. #6
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Bonjour,

    Citation Envoyé par d-Rek
    J'essaie de lancer une requête SQL sur une base mySQL de chez Free mais en vain. J'implore votre aide !
    [HS]
    Pour info, Free n'acepte que les connexions locales à la base de données. Tu doit pouvoir disposer d'un répertoire CGI pour y mettre ton programme pour régler le problème
    [/HS]

  7. #7
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut
    Euh ok je prends note, je vais potasser le sujet..
    Merci

    Edit : je posterai ici mon avancement : si ça fonctionne ou pas

  8. #8
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Rares sont les hebergeurs à accepter les cgis, je pense pas que free le gere..
    Et pour la connexion directe sur le serveur mysql, je pense qu'aucun hebergeur serieux ne l'autoriserait, sinon c'est la porte ouverte au crackage des bdd par force brute (remarque, ya toujours le ftp qui est crackable par force brute)

    Sinon, un truc m'a choqué, tu as inclus à la fois windows.h et unistd.h, je pensais pas qu'il existait un unistd.h pour windows

  9. #9
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut
    Gruik> I'm a newbie in C

    Bon.. CGI, CGI, CGI...
    Programme exécuté par le serveur web pour généner du html.. donc une méthode de scripting pour serveur..

    Mon but était d'afficher une console ou une truc pas trop moche sur le bureau avec le résultat de ma requête rafraichie toutes les X minutes.
    Genre afficher le nombre de visiteurs live.. rien de bien compliqué

    Donc plouf.. ?

  10. #10
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut
    Ou sinon, faut que j'affiche dans mon soft une page PHP..
    C'est plus simple..

    PS : le but est de mettre en place un PTI (Pratique des Techniques Informatiques ou quelque chose comme ça) Client/Serveur..

  11. #11
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Oui c'est plus simple de faire du php si t'as jamais fait de CGI C

  12. #12
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut
    Est-il possible d'afficher dans mon programme une page web sans ouverture de navigo ?

  13. #13
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Tu peux executer des requetes http avec libcurl, mais j'ai jamais utilisé

  14. #14
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Bonsoir,

    Citation Envoyé par d-Rek
    Mon but était [...] Genre afficher le nombre de visiteurs live.. rien de bien compliqué [...]
    Citation Envoyé par d-Rek
    Est-il possible d'afficher dans mon programme une page web sans ouverture de navigo ?
    Il faudrait commencer par choisir : juste le nombre de visiteurs ou une page "web" complète ?

    Imaginons que vous choisissiez de commencer par le plus simple : afficher le nombre de visiteurs.

    Etapes :
    1) Ecrire un script PHP qui exécute la requête SQL et écrit le résultat.
    On peut évidemment commencer avec un script qui ne fait pas de requête mais renvoie toujours le même nombre, comme :
    Code PHP : 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
    <?php
     
    /**** Ici, on exécutera la requête ****/
     
    // Entêtes pour éviter que ce qu'on envoie ne soit mis en cache
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");
     
    // On envoie du texte
    header("Content-type: text/plain");
     
    /**** Ce qui suit sera remplacé par l'écriture du résultat de la requête ****/
    // On écrit un nombre
    echo '1337';
    /**** Ce qui précède sera remplacé par l'écriture du résultat de la requête ****/
     
    ?>
    2) On met le script PHP en ligne et on le teste.
    3) On télécharge et on installe la version de libcurl qui conviendra à notre compilateur.
    4) On fait un copier/coller d'un exemple de téléchargement en mémoire depuis http://curl.haxx.se/lxr/source/docs/.../getinmemory.c
    5) On complète l'exemple (à la fin) pour qu'il affiche ce qui a été téléchargé.
    6) On rend l'affichage joli comme tout avec des fleurs et des p'tits soleils.
    7) On modifie le script PHP pour qu'il exécute la requête voulue.

    Voilà.

    Des questions ?

  15. #15
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut
    Citation Envoyé par David.Schris
    Il faudrait commencer par choisir : juste le nombre de visiteurs ou une page "web" complète ?
    Merci pour cette méthode.

    Juste pour aller de coucher moins con, c'est donc possible d'afficher une page web dans mon pti exe ?
    Auquel cas, je pense que ça serait plus simple pour moi

  16. #16
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Tu peux creer un IE embedded, mais tu vas devoir faire une application windows, et si tu n'en a jamais fait, bonne chance

  17. #17
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par Gruik
    Tu peux creer un IE embedded, mais tu vas devoir faire une application windows, et si tu n'en a jamais fait, bonne chance
    VADE RETRO !!!
    Pourquoi IE ? Pourquoi ?
    Pourquoi pas une solution libre et portable ?
    Roll your own browser - An embedding HowTo
    GtkMozEmbed: Gtk Mozilla Embedding Widget (+ "petit" exemple)

    Citation Envoyé par d-Rek
    Merci pour cette méthode.
    Merci de nous tenir au courant de tes résultats et, pourquoi pas, de poster ton code afin que d'autres puissent s'en inspirer.

    Citation Envoyé par d-Rek
    Juste pour aller de coucher moins con, c'est donc possible d'afficher une page web dans mon pti exe ?
    Auquel cas, je pense que ça serait plus simple pour moi
    C'est possible mais j'émettrais deux réserves :
    1) "pti" ne sera peut-être plus un qualificatif approprié ;
    2) Je doute que cela soit réellement "plus simple" (sinon j'aurai préconisé cette méthode).

    Bon courage pour la suite

  18. #18
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    J'ai essayé GtkMozEmbed mais il semble trop dépendant de Mozilla (malgrés ce qui est annoncé sur le site).

    Par contre il existe GtkHTML qui semble pas mal

  19. #19
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Citation Envoyé par David.Schris
    VADE RETRO !!!
    Pourquoi IE ? Pourquoi ?
    Oh c'est bon papy reste tranquille, t'as craqué ou quoi.. chuis james bond quand meme... tu peux pas test..

    Plus serieusement, jdisais ça comme ça en neophite des navigateurs embedded, mais c'est clair que le truc de mozilla a l'air bien

  20. #20
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par Gruik
    [...] t'as craqué ou quoi [...]
    Un peu, oui

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MySQL] Tracage des requêtes lentes
    Par GyZmoO dans le forum Administration
    Réponses: 1
    Dernier message: 29/06/2010, 14h53
  2. [Oracle] Outil graphique pour lancer des requêtes ,
    Par falco- dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/02/2010, 10h50
  3. Lancer des requêtes DB2 par ligne de commande Unix
    Par rstephane dans le forum DB2
    Réponses: 3
    Dernier message: 27/05/2009, 15h36
  4. Réponses: 7
    Dernier message: 31/08/2006, 18h03
  5. [Delphi 2005] Lancer des requêtes MicroSoft Query
    Par Frank dans le forum Bases de données
    Réponses: 2
    Dernier message: 21/10/2005, 19h27

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