Checkbox requete base de données

Résolu
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009 - 9 févr. 2006 à 18:25
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 13 févr. 2006 à 20:38
Bonjour tout le monde!
J'ai le formulaire suivant qui permet à l'utilisateur de sélectionner les données qu'il veut afficher :
Comment faire pour que selon les cases cochées, cela frée une requete pour aller chercher les bons champs dans ma base de données??? Merci d'avance!!

<form name="Annuaire" action="convert_pdf.php" method="POST">


Site

N° téléphone fixe

N° fax

N° portable

Adresse e-mail


</form>
<?php


$Site = $_POST ['Site'];

$Fixe = $_POST ['Fixe'];


$Fax = $_POST ['Fax'];

$Portable = $_POST ['Portable'];


$Mail = $_POST ['Mail'];


?>

37 réponses

flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
10 févr. 2006 à 11:26
Pfff je m'excuse j'avais pas vu.... Ouais comme ça c'est ok!!
Maintenant, je dois sortir tout ça en pdf, et ca me donne une erreur qui me dit que sur les lignes en rouge, les variables ne sont pas définies, comment déclarer tout ca??

$base="D:\\Qualite\Annuaire\Annuaire.mdb";
$Annuaire="Annuaire";


//connection au serveur:
$cnx = odbc_connect( "DSN_Annuaire","" ,"") or die ("Impossible de se connecter à la base de donnée") ;

//PDF


define('FPDF_FONTPATH','font/');
require('fpdf/fpdf.php');


$pdf=new FPDF('L','cm','A4');

//Titres des colonnes
$header=array('Nom - Prénom','Site','N° Téléphone fixe','N° fax','N° Portable','Adresse e-mail');

$pdf->SetFont('Arial','B',14);
$pdf->AddPage();
$pdf->SetFillColor(96,96,96);
$pdf->SetTextColor(255,255,255);



if (isset ($_POST['submit']) && $_POST['submit'] === 'Valider') {


$addInQuery = implode (', ', $_POST['choix']);

$resultat = odbc_exec( $cnx, "SELECT '$addInQuery' FROM Annuaire ORDER BY Nom");

$pdf->SetXY(3,3);
for($i=0;$i<sizeof($header);$i++)
$pdf->cell(5,1,$header[$i],1,0,'C',1);

$pdf->SetFillColor(0xdd,0xdd,0xdd);
$pdf->SetTextColor(0,0,0);
$pdf->SetFont('Arial','',10);
$pdf->SetXY(3,$pdf->GetY()+1);
$fond=0;
while( $row = odbc_fetch_array( $resultat ) ) //tant que c pas la fin de la table
{
$pdf->cell(5,0.7,$row['Nom'],1,0,'C',$fond);
$pdf->cell(5,0.7,$row['Societe'],1,0,'C',$fond);
$pdf->cell(5,0.7,$row['Fixe'],1,0,'C',$fond);
$pdf->cell(5,0.7,$row['Fax'],1,0,'C',$fond);
$pdf->cell(5,0.7,$row['Portable'],1,0,'C',$fond);
$pdf->cell(5,0.7,$row['Mail'],1,0,'C',$fond);

$pdf->SetXY(3,$pdf->GetY()+0.7);
$fond=!$fond;
}
$pdf->output();
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
10 févr. 2006 à 11:34
il ne manquerait pas quelques accolades par ci par là ??
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
10 févr. 2006 à 11:45
"SELECT $addInQuery FROM Annuaire ORDER BY Nom" ça donne quoi (au lieu de "SELECT '$addInQuery' FROM Annuaire ORDER BY Nom")

ensuite ta variable $addInQuery contient quoi ?

concernant le formulaire n'oublie pas les (ou balises de type block genre div m'enfin c'est encore plus crade) sinon ton formulaire ne sera pas valide.

Sinon avant de faire l'implode n'oublie pas de vérifier que le post est un array :

if(isset($_POST['choix']) AND is_array($_POST['choix']))
{
$addInQuery=implode(',',$_POST['choix']);
}

il faudrait voir ce que contient on addInquery mainteannt.
<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
10 févr. 2006 à 12:00
Mon code complet est le suivant :

Ma var $addInQuey contient bien Societe, Fixe, etc...

<form action="convert_pdf.php" method="POST">


Site

N° téléphone fixe

N° fax

N° portable

Adresse e-mail


</form>



<?php


$base="D:\\Qualite\Annuaire\Annuaire.mdb";
$Annuaire="Annuaire";


//connection au serveur:
$cnx = odbc_connect( "DSN_Annuaire","" ,"") or die ("Impossible de se connecter à la base de donnée") ;

//PDF


define('FPDF_FONTPATH','font/');
require('fpdf/fpdf.php');


$pdf=new FPDF('L','cm','A4');

//Titres des colonnes
$header=array('Nom - Prénom','Site','N° Téléphone fixe','N° fax','N° Portable','Adresse e-mail');

$pdf->SetFont('Arial','B',14);
$pdf->AddPage();
$pdf->SetFillColor(96,96,96);
$pdf->SetTextColor(255,255,255);


if (isset ($_POST['submit']) && $_POST['submit'] === 'Valider') {


$addInQuery = implode (', ', $_POST['choix']);
echo "$addInQuery";
$resultat = odbc_exec( $cnx, "SELECT Nom,'.$addInQuery.' FROM Annuaire ORDER BY Nom");
echo "$resultat";
$pdf->SetXY(3,3);
for($i=0;$i<sizeof($header);$i++)
$pdf->cell(5,1,$header[$i],1,0,'C',1);

$pdf->SetFillColor(0xdd,0xdd,0xdd);
$pdf->SetTextColor(0,0,0);
$pdf->SetFont('Arial','',10);
$pdf->SetXY(3,$pdf->GetY()+1);
$fond=0;
while( $row = odbc_fetch_array( $resultat ) ) //tant que c pas la fin de la table
{
$pdf->cell(5,0.7,$row['Nom'],1,0,'C',$fond);
$pdf->cell(5,0.7,$row['Societe'],1,0,'C',$fond);
$pdf->cell(5,0.7,$row['Fixe'],1,0,'C',$fond);
$pdf->cell(5,0.7,$row['Fax'],1,0,'C',$fond);
$pdf->cell(5,0.7,$row['Portable'],1,0,'C',$fond);
$pdf->cell(5,0.7,$row['Mail'],1,0,'C',$fond);

$pdf->SetXY(3,$pdf->GetY()+0.7);
$fond=!$fond;
}
$pdf->output();

}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
10 févr. 2006 à 12:58
oui je veux bien, mais que contient $addinquery ?

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
10 févr. 2006 à 14:32
$AddInQuery contient la value de toutes les cases puisque par défaut là, elles sont toutes cochées.
Si je fais un echo, ca me renvoie donc : Societe, Fixe, Fax, Portable, Mail
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
10 févr. 2006 à 16:05
QQ'un a t-il une idée de la boulette que j'ai bien pu faire svp?????
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
10 févr. 2006 à 17:13
T'as pas une erreur qui s'affiche quelque part ?

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
10 févr. 2006 à 20:25
Si, ca me donne "Notice: Undefined index: Societe...."
Et cela pour toutes les variables cochées....
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
10 févr. 2006 à 20:28
En fait, on dirait que ce que contient la var $addInQuery n'est pas correctement en lien avec les lignes suivantes ou apparraisent :

$pdf->cell(5,0.7,$row['Societe'],1,0,'C',$fond);
$pdf->cell(5,0.7,$row['Fixe'],1,0,'C',$fond);
$pdf->cell(5,0.7,$row['Fax'],1,0,'C',$fond);
$pdf->cell(5,0.7,$row['Portable'],1,0,'C',$fond);
$pdf->cell(5,0.7,$row['Mail'],1,0,'C',$fond);

Je ne sais pas comment etablir un lien entre tout ça....
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
10 févr. 2006 à 20:37
Ok donc soit ta requête ne s'est pas effectuée correctement (ce que tu pourrais voir en faisant un die('erreur'.odbc_error());

fais ça :

$resultat = odbc_exec( $cnx, "SELECT Nom,'.$addInQuery.' FROM Annuaire ORDER BY Nom") OR die(odbc_error());

et dis-nous ce qui s'affiche.

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
10 févr. 2006 à 20:45
J'ai toujours la même erreur undefined index....etc...
apparemment, j'ai une erreur par ligne enregistrée dans ma base et par variable(societe, fixe, etc...)
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
10 févr. 2006 à 20:47
Est ce que je ne pourrais ma imaginer une solution qui consisterait a faire l'inverse de ce que je fais avec l'implode?
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
10 févr. 2006 à 21:01
Non. si tu nous disais ce qui s'affiche avec le or die() par exemple..
<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
10 févr. 2006 à 23:51
Ca me donne toujours :

Notice: Undefined index: Societe...."
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
11 févr. 2006 à 00:38
Bon ta requête est exécutée correctement apparemment alors.

et si tu mets $row['societe'] au lieu de $row['Societe'] ça change quelque chose ?

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
13 févr. 2006 à 20:31
Non, ça ne me change rien puisque j'ai une erreur pour chaque variable :

Notice: Undefined index: Societe in D:\qualite\convert_pdf.php on line 70

Notice: Undefined index: Fixe in D:\qualite\convert_pdf.php on line 71

Notice: Undefined index: Fax in D:\qualite\convert_pdf.php on line 72

Notice: Undefined index: Portable in D:\qualite\convert_pdf.php on line 73

Notice: Undefined index: Mail in D:\qualite\convert_pdf.php on line 74

Notice: Undefined index: Societe in D:\qualite\convert_pdf.php on line 70

etc......
0
Rejoignez-nous