Aller au contenu

[RESOLU]PHP et Variable


pathos_01

Messages recommandés

Bonjour,

j'aimerai réaliser une page php qui me stocke des valeurs dans un tableau (valeur lu dans une BDD oracle 10g)

récuperer ce tableau dans une autre page php pour pouvoir utiliser ses valeurs

voici le code actuel :

1ère page:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Resultat</title>

</head>

<body bgcolor="#FFFFCC">

<?php

include("En-tete.html");

?>

</br>

</br>

<?php

include("connexionbd.php");

$parametre[]='';

$row[]='';

$cpt=1;

$res= odbc_prepare($conn,"select SFBATA from ATLAS where ddate='4/22/2009' order by heure") or die ("Select impossible");

$result= odbc_execute($res) or die ("erreur d'execution de la requête");

while($row = odbc_fetch_row($res)){

$parametre[] .=odbc_result($res,1);

$cpt++;

}

var_dump($parametre);

echo "<IMG SRC=CourbeJpGraphe.php?$parametre>";

2ème page (pour dessiner une courbe a jpgraphe)

<?php

dl('php_gd2.dll'); // Import de la Dll pour utiliser GD avec php

include ("jpgraph1/src/jpgraph.php");

include ("jpgraph1/src/jpgraph_line.php");

$parametre[]= isset($_GET['parametre[]']) & !empty($_GET['parametre[]']);

var_dump($parametre);

/*if ($parametre == '')

echo "erreur";*/

//$ydata = array(11,3,8,12,5,1,9,13,5,7);

// Create the graph. These two calls are always required

$graph = new Graph(350,250,"auto");

$graph->SetScale("textlin");

// Create the linear plot

$lineplot=new LinePlot($parametre);

$lineplot->SetColor("blue");

// Add the plot to the graph

$graph->Add($lineplot);

// Display the graph

$graph->Stroke();

?>

sauf que cela ne fonctionne pas :

je n'arrive pas a récupérer ma variable ($paramètre)

Merci d'avance

Lien vers le commentaire
Partager sur d’autres sites

Je n'ai pas beaucoup de temps, mais dans la première page je ferais :

$parametre[$cpt] .=odbc_result($res,1);

Si tu veux utiliser des variables de pages en pages avec PHP; sois tu utilises GET ou POST; ou les variables de SESSION qui fonctionnent bien ;-).

Aussi, si tu fais un var_dump de $_GET ou de $_POST sur ta deuxième page, ca te fait quoi ?

Lien vers le commentaire
Partager sur d’autres sites

Je n'ai pas beaucoup de temps, mais dans la première page je ferais :

$parametre[$cpt] .=odbc_result($res,1);

Si tu veux utiliser des variables de pages en pages avec PHP; sois tu utilises GET ou POST; ou les variables de SESSION qui fonctionnent bien ;-).

Aussi, si tu fais un var_dump de $_GET ou de $_POST sur ta deuxième page, ca te fait quoi ?

un var_dump de $_GET me retourne NULL !

la ligne

$parametre[$cpt] .=odbc_result($res,1); me retourne une erreur

Undefined offset: 54 in D:\WWWRoot\service-Gas-monitoring-TS-LEA\Resultat.php on line 20 PHP Notice: Undefined offset: 55 in D:\WWWRoot\service-Gas-monitoring-TS-LEA\Resultat.php on line 20

quand je fais un var_dump($parametre) dans la 1 ère page, ca m'affiche bien ce que je demande

simplement je n'arrive pas a la recupérer dans mas 2ème page

au faite, merci de ton aide

Lien vers le commentaire
Partager sur d’autres sites

C'est ta ligne echo "<IMG SRC=CourbeJpGraphe.php?$parametre>"; qui pose problème. PHP ne vas pas transformer tout seul ton tableau en chaîne, et la fonction var_dump est très spéciale et ne sert qu'a vérifier le contenu d'une variable pour le développeur, mais n'est pas du tout représentative de ce que tu obtiendra en convertissant ton tableau en chaîne de caractères ! Tu devrais pouvoir t'en apercevoir en regardant la source de ta page.

Pour bien faire les choses tu devrais plutot utiliser une fonction spéciale pour transformer les tableau en chaînes de caractères, du genre :

echo "<IMG SRC=\"CourbeJpGraphe.php?t=" . implode(",", $tableau) . "\">";

La fonction implode va mettre tous les éléments du tableau dans une chaine, séparés par une virgule (parce que j'ai mis une virgule en premier paramètre mais tu peux changer).

Dans ta version il est normal que $_GET soit vide car il faut donner un nom à tes variables get ! dans l'exemple au-dessus je l'ai appelé "t".

Donc maintenant il faut faire l'opération inverse : transformer la chaine de caractères en tableau. Pour cela il y a la fonction inverse de implode : explode

$tableau = explode(",", $_GET["t"]);

Bon j'ai pas testé mais la solution devrait ressembler à ça :)

Lien vers le commentaire
Partager sur d’autres sites

C'est ta ligne echo "<IMG SRC=CourbeJpGraphe.php?$parametre>"; qui pose problème. PHP ne vas pas transformer tout seul ton tableau en chaîne, et la fonction var_dump est très spéciale et ne sert qu'a vérifier le contenu d'une variable pour le développeur, mais n'est pas du tout représentative de ce que tu obtiendra en convertissant ton tableau en chaîne de caractères ! Tu devrais pouvoir t'en apercevoir en regardant la source de ta page.

Pour bien faire les choses tu devrais plutot utiliser une fonction spéciale pour transformer les tableau en chaînes de caractères, du genre :

echo "<IMG SRC=\"CourbeJpGraphe.php?t=" . implode(",", $tableau) . "\">";

La fonction implode va mettre tous les éléments du tableau dans une chaine, séparés par une virgule (parce que j'ai mis une virgule en premier paramètre mais tu peux changer).

Dans ta version il est normal que $_GET soit vide car il faut donner un nom à tes variables get ! dans l'exemple au-dessus je l'ai appelé "t".

Donc maintenant il faut faire l'opération inverse : transformer la chaine de caractères en tableau. Pour cela il y a la fonction inverse de implode : explode

$tableau = explode(",", $_GET["t"]);

Bon j'ai pas testé mais la solution devrait ressembler à ça :)

MERCIIIIIIII

ca fonctionne

J'avais pas du tout penser transformer mon tableau en chaine de caractre

Lien vers le commentaire
Partager sur d’autres sites

C'est ta ligne echo "<IMG SRC=CourbeJpGraphe.php?$parametre>"; qui pose problème. PHP ne vas pas transformer tout seul ton tableau en chaîne, et la fonction var_dump est très spéciale et ne sert qu'a vérifier le contenu d'une variable pour le développeur, mais n'est pas du tout représentative de ce que tu obtiendra en convertissant ton tableau en chaîne de caractères ! Tu devrais pouvoir t'en apercevoir en regardant la source de ta page.

Pour bien faire les choses tu devrais plutot utiliser une fonction spéciale pour transformer les tableau en chaînes de caractères, du genre :

echo "<IMG SRC=\"CourbeJpGraphe.php?t=" . implode(",", $tableau) . "\">";

La fonction implode va mettre tous les éléments du tableau dans une chaine, séparés par une virgule (parce que j'ai mis une virgule en premier paramètre mais tu peux changer).

Dans ta version il est normal que $_GET soit vide car il faut donner un nom à tes variables get ! dans l'exemple au-dessus je l'ai appelé "t".

Donc maintenant il faut faire l'opération inverse : transformer la chaine de caractères en tableau. Pour cela il y a la fonction inverse de implode : explode

$tableau = explode(",", $_GET["t"]);

Bon j'ai pas testé mais la solution devrait ressembler à ça :)

MERCIIIIIIII

ca fonctionne

J'avais pas du tout penser transformer mon tableau en chaine de caractre

DSL dernière question

si je veux renvoyer plusieurs variable en meme temps, comment je fais ?

Parce que si je fais ca :

$parametre[] =0;

$row[]='';

$res= odbc_prepare($conn,"select $GAS$BATA from ".$EXPERIENCE." where ddate='".$DATE."' order by heure") or die ("Select impossible");

$result= odbc_execute($res) or die ("erreur d'execution de la requête");

while($row = odbc_fetch_row($res)){

$parametre[] .=odbc_result($res,1);

}

//fonction spéciale pour transformer les tableau en chaînes de caractères

echo "<IMG SRC=\"CourbeJpGraphe.php?t=" . implode(",", $parametre) . "\">";

?>

<br/>

<br/>

<?

$bat[] =0;

$rowbat[]='';

$resbat= odbc_prepare($conn,"select $GAS$BATB from ".$EXPERIENCE." where ddate='".$DATE."' order by heure") or die ("Select impossible");

$result= odbc_execute($resbat) or die ("erreur d'execution de la requête");

while($rowbat = odbc_fetch_row($resbat)){

$bat[] .=odbc_result($resbat,1);

}

//fonction spéciale pour transformer les tableau en chaînes de caractères

echo "<IMG SRC=\"CourbeJpGraphe.php?t2=" . implode(",", $bat) . "\">";

?>

<br/>

<br/>

<?

$bat2[] =0;

$rowbat2[]='';

$resbat2= odbc_prepare($conn,"select $GAS$OUT from ".$EXPERIENCE." where ddate='".$DATE."' order by heure") or die ("Select impossible");

$result= odbc_execute($resbat2) or die ("erreur d'execution de la requête");

while($rowbat2 = odbc_fetch_row($resbat2)){

$bat2[] .=odbc_result($resbat2,1);

}

//fonction spéciale pour transformer les tableau en chaînes de caractères

echo "<IMG SRC=\"CourbeJpGraphe.php?t3=" . implode(",", $bat2) . "\">";

?>

me dessine 3 fois mon image au lieu de me mettre mes 3 courbes sur 1 seule imange

merci

Lien vers le commentaire
Partager sur d’autres sites

C'est ta ligne echo "<IMG SRC=CourbeJpGraphe.php?$parametre>"; qui pose problème. PHP ne vas pas transformer tout seul ton tableau en chaîne, et la fonction var_dump est très spéciale et ne sert qu'a vérifier le contenu d'une variable pour le développeur, mais n'est pas du tout représentative de ce que tu obtiendra en convertissant ton tableau en chaîne de caractères ! Tu devrais pouvoir t'en apercevoir en regardant la source de ta page.

Pour bien faire les choses tu devrais plutot utiliser une fonction spéciale pour transformer les tableau en chaînes de caractères, du genre :

echo "<IMG SRC=\"CourbeJpGraphe.php?t=" . implode(",", $tableau) . "\">";

La fonction implode va mettre tous les éléments du tableau dans une chaine, séparés par une virgule (parce que j'ai mis une virgule en premier paramètre mais tu peux changer).

Dans ta version il est normal que $_GET soit vide car il faut donner un nom à tes variables get ! dans l'exemple au-dessus je l'ai appelé "t".

Donc maintenant il faut faire l'opération inverse : transformer la chaine de caractères en tableau. Pour cela il y a la fonction inverse de implode : explode

$tableau = explode(",", $_GET["t"]);

Bon j'ai pas testé mais la solution devrait ressembler à ça :)

MERCIIIIIIII

ca fonctionne

J'avais pas du tout penser transformer mon tableau en chaine de caractre

DSL dernière question

si je veux renvoyer plusieurs variable en meme temps, comment je fais ?

Parce que si je fais ca :

$parametre[] =0;

$row[]='';

$res= odbc_prepare($conn,"select $GAS$BATA from ".$EXPERIENCE." where ddate='".$DATE."' order by heure") or die ("Select impossible");

$result= odbc_execute($res) or die ("erreur d'execution de la requête");

while($row = odbc_fetch_row($res)){

$parametre[] .=odbc_result($res,1);

}

//fonction spéciale pour transformer les tableau en chaînes de caractères

echo "<IMG SRC=\"CourbeJpGraphe.php?t=" . implode(",", $parametre) . "\">";

?>

<br/>

<br/>

<?

$bat[] =0;

$rowbat[]='';

$resbat= odbc_prepare($conn,"select $GAS$BATB from ".$EXPERIENCE." where ddate='".$DATE."' order by heure") or die ("Select impossible");

$result= odbc_execute($resbat) or die ("erreur d'execution de la requête");

while($rowbat = odbc_fetch_row($resbat)){

$bat[] .=odbc_result($resbat,1);

}

//fonction spéciale pour transformer les tableau en chaînes de caractères

echo "<IMG SRC=\"CourbeJpGraphe.php?t2=" . implode(",", $bat) . "\">";

?>

<br/>

<br/>

<?

$bat2[] =0;

$rowbat2[]='';

$resbat2= odbc_prepare($conn,"select $GAS$OUT from ".$EXPERIENCE." where ddate='".$DATE."' order by heure") or die ("Select impossible");

$result= odbc_execute($resbat2) or die ("erreur d'execution de la requête");

while($rowbat2 = odbc_fetch_row($resbat2)){

$bat2[] .=odbc_result($resbat2,1);

}

//fonction spéciale pour transformer les tableau en chaînes de caractères

echo "<IMG SRC=\"CourbeJpGraphe.php?t3=" . implode(",", $bat2) . "\">";

?>

me dessine 3 fois mon image au lieu de me mettre mes 3 courbes sur 1 seule imange

merci

Problème résolu !

Lien vers le commentaire
Partager sur d’autres sites

1- Ce peut être sympa d'expliquer quel était le problème

2- Merci d'indiquer "Résolu" dans ton titre : ça peut aider les autres aussi

3- Pour faciliter la lecture du code, utilise la balise BBCode "code" (ou codebox quand le code est vraiment long)

4- Inutile de citer les précédents messages pour ajouter une réponse : il faut dans ce cas utiliser le bouton t_reply.gif et non p_quote.gif

PS : Mon post se veut tout à fait cordial et vise à améliorer le contenu :cartonjaune:

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...