Requête SQL dans une fonction

Résolu
Chers confrères,
Dans une page PHP, je gère l'ajout, la modification et la suppression. Pour chacune de ces actions, j'affiche un formulaire (sous forme de fonction ) issu d'une autre page. Je la passe bien an appel dans ma page
include 'inc2.php';


Je problème est le suivant. Je souhaite pouvoir sélectionner un propriétaire dans une liste déroulante (<select></select>). Lorsque je crée mon select avec une connexion à la base de données propriétaire, le menu déroulant n'affiche rien et les reste de champs ne s'affiche pas.
require 'connexion.php';

function paradd($id_prop,$nom,$commune,$cadastre,$annnee,$mess=false)
		{
			
		if($mess){
			echo 'Veuillez saisir les champs avec <img src="img/uncheckp.jpg" /><br /><br />';
		}
		
			
		echo '<form action="gestion_parcelle.php" method="post">';
			
		echo '<table border="0">';
			echo '<tr>';
				echo '<td>Propriétaire</td>';				
				echo '<td>';
				echo '<select name="id_prop">';
		$sql = 'SELECT id,nom,prenom,actif FROM proprietaire 
		WHERE actif = 1 	
		ORDER BY nom';
		$pdo->exec("SET NAMES utf8");
		$resultat = $pdo->query($sql);
		echo '<option value="">-- Chosir proriétaire --</option>';
		while($var = $resultat->fetch()){

			echo '<option value="'.$var['id'].'">'.$var['prenom'].' '.$var['nom'].'</option>';
		}	
		 //On vide
		$resultat->closeCursor();
		echo '</select>';
		
				echo '</td>';	
echo '</tr>';	
//la suite des champs ......
//ici la fin du formulaire et de la fonction 
echo '<tr>';
				echo '<td><img src="img/uncheckp.jpg" />Champs obligatoires<br /><br /></td>';
				
				
				
				echo '<td align="right"><input type="submit" value="Envoyer" name="envoyer"><br /><br /></td>';				
			echo '</tr>';
					 	
		echo '</table>';
		
			
		echo '</form>';
			
			
			
		}



Pouvez vous m'aider à résoudre ce problème.

Merci d'avance



--
Bien PHPment et MySQLment
Delaville

2 réponses

  1. Bonjour,

    La variable $pdo n'existe pas à l'intérieur de la fonction !
    Il faut soit la redéfinir, soit utiliser le mot clef global, soit le passer en paramètre de la fonction.

    Par exemple :
    function paradd($id_prop, $nom, $commune, $cadastre, $annnee, $mess = false)
    {
    	global $pdo;
    	if($mess){
    [...]
    


    Xavier