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

PHP & Base de données Discussion :

Requête d'extraction de données [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Requête d'extraction de données
    Bonjour
    je ne parviens pas a extraire des donnees de ma BDD pour creer un graphique via jpgraph .
    Apres avoir fouille sur le forum je ne vois pas le probleme, quelqu un peut il m aider ?
    J obtiens toujours le message parse error a la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	$tableaut_int[] =$row['t_interieur'];
    Voici mon code:
    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
    $tableaut_int = array();
     
     
    // ********************************************************************
    // PARTIE : Production des données avec Mysql
    // ********************************************************************
     
    $sql = <<<EOF
    	SELECT  
    		t_interieur,t_exterieur FROM 'aktuell' 
    	EOF;
     
    // Connexion à la BDD
     
    $mysqlCnx=mysql_connect($host,$user,$password)
    or die("connexion au serveur impossible");
    // Sélection de la base de données
    @mysql_select_db("meteo") or die('Pb de sélection de la base');
     
    // Requête
    $mysqlQuery =@mysql_query($sql,$mysqlCnx) or die('Pb de requete');
     
    // Fetch sur chaque enregistrement
    while ($row = mysql_fetch_array($mysqlQuery,MYSQL_ASSOC))
     {
    	// Alimentation des tableaux de données
    	$tableaut_int[] =$row['t_interieur'];
     
    }

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Bonsoir,

    plusieurs choses,

    l'API mysql_ est obsolète et être sera supprimer des prochaines versions de PHP, pour les nouveaux site il vaut mieux se tourner vers les APIs mysqli_ ou PDO,

    tu cache les éventuelles erreur avec le caractère spécial '@', si tu ne l'utilisait pas l'erreur s'afficherait peut-être d'elle même sur ta page,

    à la ligne 10 tu utilise les caractères '' pour entourer le nom de la table, l'erreur vient peut être de la, il faut soit utiliser les caractères ``(Alt GR + 7) soit ne pas les utiliser, ces caractères sont utilent seulement si tu utilise les noms réservés de MySQL comme une colonne que tu nommerait date ou autre.
    une réponse vous a permis d'avancer ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Re
    Bonjour
    merci de ta reponse.
    J ai fait les modif que tu m as suggere mais ca ne change rien .
    J ai toujours cette erreur:
    Parse error: syntax error, unexpected ']', s'attendant T_STRING ou T_VARIABLE ou T_NUM_STRING dans C: \ wamp \ www \ Météo \ jpgraph \ src \ Exemples \ Sanstitre-1.php sur la ligne 40

    Peut tu m expliquer comment faire sur la base de la nouvelle typologie ?
    Je dois simplement recuperer la temperature interieure et exterieure de ma table aktuell correspondant aux heures pleines pour ensuite les inserer dans un graphique avec jpgraph .
    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
     
    $tableaut_int = array();
     
     
    // ma selection des enregistrements
     
    $sql = <<<EOF
    	SELECT  
    		t_interieur,t_exterieur FROM aktuell
    	EOF;
     
    // Connexion à la BDD
    // $host $user $ password definis dans un fichier a part et appele par un include
    $mysqlCnx=mysql_connect($host,$user,$password)
    or die("connexion au serveur impossible");
     
    // Sélection de la base de données
    mysql_select_db("meteo") or die('Pb de sélection de la base');
     
    // Requête
    $mysqlQuery =@mysql_query($sql,$mysqlCnx) or die('Pb de requete');
     
    // Fetch sur chaque enregistrement <-- c est ici que je me perds 
    while ($row =@mysql_fetch_array($mysqlQuery,MYSQL_ASSOC))
     {
    	// Alimentation des tableaux de données
    	$tableaut_int[]=$row['t_interieur'];
     
    }

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Dans ton erreur il parle de la ligne 40, à quoi correspond la ligne 40 dans le code que montre ?

    Essaye en enlevant le @ à la ligne 24.
    une réponse vous a permis d'avancer ?

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Re
    J ai enlevé le @ sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mysqlQuery =mysql_query($sql,$mysqlCnx) or die('Pb de requete');
    ca ne modifie rien .
    La ligne 40 correspond a:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tableaut_int[]=$row['t_interieur'];
    Le message erreur est :
    Parse error: syntax error, unexpected ']', s'attendant T_STRING ou T_VARIABLE ou T_NUM_STRING dans C: \ wamp \ www \ Météo \ jpgraph \ src \ Exemples \ Sanstitre-1.php sur la ligne 40

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    cette ligne la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while ($row =@mysql_fetch_array($mysqlQuery,MYSQL_ASSOC))
    supprime le @.
    une réponse vous a permis d'avancer ?

  7. #7
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut RE
    Re
    Je ne comprenais pas le code de la requete, du coup je l ai refaite sous une autre forme qui m apparait plus claire .
    je te livre ce que cela donne en entier : ca fonctionne en plus alors tout va bien.
    Peut tu simplement me dire si cette facon d ecrire est obsolette?
    Si oui il faudra que je tente de modifier cet exemple .
    Merci
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     $connection=mysql_connect($host,$user,$password) or die("connexion au serveur impossible :trunk données aktuelles");
      mysql_select_db("meteo"); 
    /* REQUETE DE SELECTION DES DONNEES DANS LA BASE DE DONNEES MYSQL*/
     
    	$sql = 'SELECT t_interieur,t_exterieur, pluie ,hum_exterieur, pression, force_vent  FROM aktuell ';
     
    	print_r(mysql_error());
    	$req = mysql_query($sql);
     
    	while ( ($data = mysql_fetch_assoc($req))!== false) {
    		$V1[] = $data['pluie'];
    		$V2[] = $data['t_exterieur'];
    		$V3[] = $data['hum_exterieur'];
    		$V4[] = $data['pression'];
    		$V5[] = $data['force_vent'];
    		$V6[] = $data['t_interieur'];
     
    	}
     
     
     
     
    $ydata=array( 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23);
     /* Activation des bibliotheques */
    	require_once ('jpgraph/jpgraph.php');
    	require_once ('jpgraph/jpgraph_line.php');
    	require_once("jpgraph/jpgraph_date.php");
    	require_once ('jpgraph/jpgraph_bar.php');
    	// constitution du graphique taille 500 pixels par 500 pixels
    	$graph = new Graph(500,500);
    	$graph->SetScale("textlin");
     	$graph->img->SetMargin(40,20,20,40);
    	$graph->title->Set('Evolution de la journee');
    	 $graph->xaxis->SetTickLabels($ydata);	/* l'axe du bas   */ 
    	$graph->xaxis->SetFont(FF_ARIAL,FS_NORMAL,6);
    	$graph->xgrid->SetColor('#E3E3E3');
    	// Les lignes qui vont apparaitre dans le graphique 
     
    	$p1 = new LinePlot($V2);
    	$graph->Add($p1);
    	$p1->SetColor("#38FFFF");
    	$p1->SetLegend('Temperature exterieure');
     
     
    	$p1 = new LinePlot($V6);
    	$graph->Add($p1);
    	$p1->SetColor("#3019FF");
    	$p1->SetLegend('Temperature interieure');
    	$graph->legend->SetFrameWeight(1);
     
    	// Output line
    	$graph->Stroke();
    	echo "<center><img src='graph.png' /></center>";
    	?>

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    tout "mysql_" est obsolète.
    Tu peux remplacer par les fonctions "mysqli_" qui fonctionnent quasiment avec la même syntaxe.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Re
    Je te remercie, je vais essayer.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [OpenOffice][Base de données] Problème sur requète d'extraction de données
    Par jjack76 dans le forum OpenOffice & LibreOffice
    Réponses: 7
    Dernier message: 27/04/2015, 17h13
  2. Requète d'extraction de données de formulaire
    Par Gratiano dans le forum Développement Sharepoint
    Réponses: 1
    Dernier message: 04/03/2014, 19h14
  3. Extraction de données dans une requête
    Par alainGL dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 05/02/2008, 01h43
  4. Requête d'extraction des données d'une table
    Par sylsau dans le forum Oracle
    Réponses: 5
    Dernier message: 18/12/2007, 10h39
  5. Réponses: 4
    Dernier message: 07/11/2007, 16h44

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