par
michmich30 » 07 avr. 2010, 11:18
tu mets ta connexion pg en premier, ensutie ta condition POST et apres tout le reste
ca avance ca avance et je te remercie vivement bravo l'expert PHP j'ai plus l'erreur grace a toi
grosso modo mon programme est un editeur de requete
je selectionne ma table , champ mets une valeur je clique sur le bouton validation cela s'affiche
puis sur export j'exporte en excel
-- un dernier bemol quand je valide (bouton valider) je recupere la requete dans $param_requete
et quand je clique sur le bouton export j'aimerez l'envoyer dans if(isset($_POST['Export']))
mais $param_requete est a blanc , existe t'il une facon de passer ce parametre
je te remercie
Code : Tout sélectionner
<?php
$conn = pg_pconnect("host=localhost port=5432 dbname=eco user=postgres password=postgres");
if(isset($_POST['Export']))
{
[b]/*$values = pg_query("SELECT * FROM w_exemple.fos_sur_mer limit 10 ");*/
$values = pg_query($param_requete); */ ici $param_requete est a vide */[/b]
while ($rowr = pg_fetch_row($values)) {
for ($j=0;$j<100;$j++) {
$csv_output .= $rowr[$j]."; ";
}
$csv_output .= "\n";
}
$filename = $file."_".date("Y-m-d_H-i",time());
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=".$filename.".csv");
print $csv_output;
exit;
}
?>
<html>
<!-- CSS pour contourner le bug du textarea sous mozilla -->
<style type="text/css">
textarea#contenu {
height: 20px;
width:10%;
}
</style>
<!-- PHP_SELF lors de la validation rememorise les variables -->
<form name="unform" action="<?$_SERVER['PHP_SELF'];?>" method="post">
tables : <BR>
<SELECT NAME="tables" MULTIPLE SIZE="8" onchange="document.unform.submit();">
<?php
/*récupére le nom du schema envoyé par tigra menu voir menu_items.js*/
$nom1 = $_GET['schemaInput'];
$Schema=$nom1;
/* AFFICHE LES TABLES DU SCHEMA et les mets dans une liste */
$requete_tables_du_schema ="select distinct(relname) from pg_attribute, pg_class, pg_namespace where
attnum>0 and attrelid=pg_class.oid and relnamespace=pg_namespace.oid and nspname="."'".$Schema."'";
$resultat = pg_query($conn,$requete_tables_du_schema);
$tableau = array();
while($ligne = pg_fetch_assoc ($resultat))
{
$tableau[] = $ligne; /* memorisation des tables du schema dans un tableau */
}
?>
tables : <BR>
<?php
/* lit le tableau et affiche les schemas */
foreach ($tableau as $tab1)
{
$sel=isset($_POST['tables'])&&($tab1[relname]==$_POST['tables'])?'selected="selected"':' ';
echo "<OPTION VALUE=".$tab1["relname"]." ".$sel." >".$tab1["relname"]."</option>";
}
?>
</SELECT>
<!-- espace presentation -->
Chercher Pour :
<?php
/* MEMORISE Le click de la selection de la table */
if(isset($_POST["tables"])){
$tavariable=$_POST["tables"];
}
?>
<?php
/* affiche le resultat dans un tableau */
include('cmb_champs_table.php');
?>
<?php
/* AFFICHE LES criteres > < = etc ... */
include('criteres.php');
?>
<TEXTAREA id="contenu" NAME="contenu" COLS=1 ROWS=1>
<?php
/* recupere le contenu du textarea */
if(isset($_POST["contenu"]))
echo $_POST["contenu"];
?>
</TEXTAREA>
<!-- Validation du bouton -->
<INPUT TYPE="submit" NAME="Valider" VALUE="OK">
<INPUT TYPE="submit" NAME="Export" VALUE="Export">
</FORM>
<?php
/* BOUTON VALIDER RECUPERATION PARAMETRE */
if(isset($_POST['Valider']))
{
$criteres =$_POST['criteres'];
$ChoixTable =$_POST['tables'];
$ChoixChamp =$_POST['cmb_champs_table'];
$Choixvaleur=$_POST['contenu'];
$nomschema = $_GET['schemaInput'];
if ($criteres=="Egal")
{
[b] $param_requete="select * from ".$nomschema.".".$ChoixTable." where ".$ChoixChamp."=". "'" .$Choixvaleur."'". " limit 500 ";[/b]
}
// Affichage dans un tableau
include('tableau.php');
}
?>
</html>
[quote="stealth35"]tu mets ta connexion pg en premier, ensutie ta condition POST et apres tout le reste[/quote]
ca avance ca avance et je te remercie vivement bravo l'expert PHP j'ai plus l'erreur grace a toi
grosso modo mon programme est un editeur de requete
je selectionne ma table , champ mets une valeur je clique sur le bouton validation cela s'affiche
puis sur export j'exporte en excel
-- un dernier bemol quand je valide (bouton valider) je recupere la requete dans $param_requete
et quand je clique sur le bouton export j'aimerez l'envoyer dans if(isset($_POST['Export']))
mais $param_requete est a blanc , existe t'il une facon de passer ce parametre
je te remercie
[code]
<?php
$conn = pg_pconnect("host=localhost port=5432 dbname=eco user=postgres password=postgres");
if(isset($_POST['Export']))
{
[b]/*$values = pg_query("SELECT * FROM w_exemple.fos_sur_mer limit 10 ");*/
$values = pg_query($param_requete); */ ici $param_requete est a vide */[/b]
while ($rowr = pg_fetch_row($values)) {
for ($j=0;$j<100;$j++) {
$csv_output .= $rowr[$j]."; ";
}
$csv_output .= "\n";
}
$filename = $file."_".date("Y-m-d_H-i",time());
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=".$filename.".csv");
print $csv_output;
exit;
}
?>
<html>
<!-- CSS pour contourner le bug du textarea sous mozilla -->
<style type="text/css">
textarea#contenu {
height: 20px;
width:10%;
}
</style>
<!-- PHP_SELF lors de la validation rememorise les variables -->
<form name="unform" action="<?$_SERVER['PHP_SELF'];?>" method="post">
tables : <BR>
<SELECT NAME="tables" MULTIPLE SIZE="8" onchange="document.unform.submit();">
<?php
/*récupére le nom du schema envoyé par tigra menu voir menu_items.js*/
$nom1 = $_GET['schemaInput'];
$Schema=$nom1;
/* AFFICHE LES TABLES DU SCHEMA et les mets dans une liste */
$requete_tables_du_schema ="select distinct(relname) from pg_attribute, pg_class, pg_namespace where
attnum>0 and attrelid=pg_class.oid and relnamespace=pg_namespace.oid and nspname="."'".$Schema."'";
$resultat = pg_query($conn,$requete_tables_du_schema);
$tableau = array();
while($ligne = pg_fetch_assoc ($resultat))
{
$tableau[] = $ligne; /* memorisation des tables du schema dans un tableau */
}
?>
tables : <BR>
<?php
/* lit le tableau et affiche les schemas */
foreach ($tableau as $tab1)
{
$sel=isset($_POST['tables'])&&($tab1[relname]==$_POST['tables'])?'selected="selected"':' ';
echo "<OPTION VALUE=".$tab1["relname"]." ".$sel." >".$tab1["relname"]."</option>";
}
?>
</SELECT>
<!-- espace presentation -->
Chercher Pour :
<?php
/* MEMORISE Le click de la selection de la table */
if(isset($_POST["tables"])){
$tavariable=$_POST["tables"];
}
?>
<?php
/* affiche le resultat dans un tableau */
include('cmb_champs_table.php');
?>
<?php
/* AFFICHE LES criteres > < = etc ... */
include('criteres.php');
?>
<TEXTAREA id="contenu" NAME="contenu" COLS=1 ROWS=1>
<?php
/* recupere le contenu du textarea */
if(isset($_POST["contenu"]))
echo $_POST["contenu"];
?>
</TEXTAREA>
<!-- Validation du bouton -->
<INPUT TYPE="submit" NAME="Valider" VALUE="OK">
<INPUT TYPE="submit" NAME="Export" VALUE="Export">
</FORM>
<?php
/* BOUTON VALIDER RECUPERATION PARAMETRE */
if(isset($_POST['Valider']))
{
$criteres =$_POST['criteres'];
$ChoixTable =$_POST['tables'];
$ChoixChamp =$_POST['cmb_champs_table'];
$Choixvaleur=$_POST['contenu'];
$nomschema = $_GET['schemaInput'];
if ($criteres=="Egal")
{
[b] $param_requete="select * from ".$nomschema.".".$ChoixTable." where ".$ChoixChamp."=". "'" .$Choixvaleur."'". " limit 500 ";[/b]
}
// Affichage dans un tableau
include('tableau.php');
}
?>
</html>
[/code]