Zend Framework et MYSQL

willimartial - 31 mai 2013 à 07:10
 willimartial - 31 mai 2013 à 07:13
Bonjour moi c'est Willi tchatchouang je suis un etudiant en troisième année a IUT fotso victor de bandjoun Comme chaque année nous sommes appele réaliser des application
Au fait je développe en PHP5 avec le framework zend et je suis vraiment depuis je suis encore au début de mon projet
voici mon problème
J'ai un modelé appelle guichet ou je mets l'ensseble de mes requte sql j'ai egalment une vue appéle guichet et un fichier Indexcontroler (le controlleur par defaut) je voudrais qu'a caque enregistrment d'un guichet je me rassure si ce sernier n'existe pas deja
voici les code

La classe l'action enregistrementguichet
public function enregistreguichetAction()
{
// action body

$guichet = new Application_Model_DbTable_Guichet();
$this->view->guichet = $guichet->fetchAll(); // affecton a la vue ce formulaire

$formguichet = new Application_Form_Formulaireenregistrementguichet(); // Insbtance du formulaire d'enregistrement du guichet
$formguichet->submit->setLabel("Valider"); // libele du formulaie
$this->view->form = $formguichet;

if ($this->getRequest()->isPost()) // on teste si le formulaire a été soumis si la valeur retourner par la methode ispost de l'objet requestest true alor on conclus que oui
{
$DonneeFormulaire = $this->getRequest()->getPost(); // etant donné que le formulaire a été soumis nous pouvons dont récupére les information du formulaire avec la methode getpost
if ($formguichet->isValid($DonneeFormulaire)) // on verifie si ces données sont valides avec la methode isvalid();
{
$NomGuichet = $formguichet->getValue("NOM_GUICHET"); // si les donnée sont valide on récuper dont les donneé les valeurs soumis
$Requette_Guichet_Model = new Application_Model_DbTable_Guichet(); // cree un instance de la classe model relatif au requet du guichet
//$resultat = $Requette_Guichet_Model->RechercheDonneDB($NomGuichet);
//Application_Model_DbTable_Guichet(). RechercheDonneDB();
// foreach ($resultat as $valeur):
if ( empty($Requette_Guichet_Model->RechercheDonneDB($NomGuichet)))
{
$formguichet->populate($DonneeFormulaire);
}
else
{
$Requette_Guichet_Model->EnregistreGuichet($NomGuichet); // appale de la methode enregistrement_guichet pour l_ajout dans la base de donne
$this->_helper->redirector('index'); // redirection vers la page index

}
//endforeach;









/*foreach ($this->guichet as $valeur)
{
if ($valeur->NOM_GUICHET == $NomGuichet)
{
$formguichet->populate($DonneeFormulaire);
//$Requette_Guichet_Model->EnregistreGuichet($NomGuichet); // appale de la methode enregistrement_guichet pour l_ajout dans la base de donne
//$this->_helper->redirector('index'); // redirection vers la page index

}
else
{
$Requette_Guichet_Model->EnregistreGuichet($NomGuichet); // appale de la methode enregistrement_guichet pour l_ajout dans la base de donne
$this->_helper->redirector('index'); // redirection vers la page index

}
}
*/
//$tab = $Requette_Guichet_Model->RechercheDonneDB();
//$tab =0;

//$tab = $Requette_Guichet_Model->fetchAll();
$tab = Array();
//$tab = $Requette_Guichet_Model->RechercheDonneDB();
$i=0;

/*
foreach($this->guichet as $valeur)
{
$tab = array( $valeur->NOM_GUICHET);
}
$NbreData = mysql_num_rows($tab);
$num = array_count_values($tab);

//for ($i=0 ; $i< $tab->length ; $i ++)
//{
for ($j=0 ; $j< $tab->length ; $j ++)
{
if ($tab[$j] == $NomGuichet)
{
$formguichet->populate($DonneeFormulaire);
//$Requette_Guichet_Model->EnregistreGuichet($NomGuichet); // appale de la methode enregistrement_guichet pour l_ajout dans la base de donne
//$this->_helper->redirector('index'); // redirection vers la page index
}
else
{
//$formguichet->populate($DonneeFormulaire);
$Requette_Guichet_Model->EnregistreGuichet($NomGuichet); // appale de la methode enregistrement_guichet pour l_ajout dans la base de donne
$this->_helper->redirector('index'); // redirection vers la page index
}
}


*/

//}


/*
$tab = $Requette_Guichet_Model->fetchAll();
$NbreData = mysql_num_rows($tab); $i=0;

foreach($tab as $colonne)
{

if ($tab[$colonne]==$NomGuichet)
{
$formguichet->populate($DonneeFormulaire);

}

else {
$Requette_Guichet_Model->EnregistreGuichet($NomGuichet); // appale de la methode enregistrement_guichet pour l_ajout dans la base de donne
$this->_helper->redirector('index'); // redirection vers la page index

}

}*/


}
else
{
$formguichet->populate($DonneeFormulaire); // si les donné ne sous pas valide nous remplissons les donne avec les valeur remplis précedent et nous lui reaffichons
}
}



}



Le modelle

class Application_Model_DbTable_Guichet extends Zend_Db_Table_Abstract
{

protected $_name = 'guichet';

public function EnregistreGuichet($Nom_guichet)
{

$options = array(
Zend_Db::AUTO_QUOTE_IDENTIFIERS => false
);

$params = array(
'host' => 'localhost',
'username' => 'root',
'password' => '',
'dbname' => 'memoirefinetude',
'options' => $options
);

$db = Zend_Db::factory('Pdo_Mysql', $params);

$donne array('ID_GUICHET'> "", 'NOM_GUICHET' => $Nom_guichet);
$db->insert('guichet', $donne);
//echo $db->getConnection()->getAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY);

//$donne array('ID_GUICHET'> NULL, 'NOM_GUICHET' => $Nom_guichet);
//$this->insert($donne);

}
public function RechercheDonneDB($Nom_guichet)
{


$host = "localhost";
$user = "root";
$password = "";
$base = "memoirefinetude";
// connection a la base de donnée
$mysqlconnection = new mysqli($host,$user,$password );

$basedonne = $mysqlconnection->select_db($base);

$requete="SELECT NOM_GUICHET from guichet where = '$Nom_guichet'";
// $result=$mysqlconnection->query($requete);
// return $result->toArray();

// retrouve la première colonne de résultat
// $result = $mysqlconnection->fetchCol("SELECT NOM_GUICHET from guichet",
// array('NOM_GUICHET' => 'Sir')
// );

// $sql = 'SELECT bug_id, bug_description, bug_status FROM bugs';

$stmt = $mysqlconnection->query($requete);

// $NOM_GUICHET = $stmt->fetchColumn(1);
// return $NOM_GUICHET->toArray();

$NOM_GUICHET = $stmt->fetchObject();
return $NOM_GUICHET->NOM_GUICHET;

}


public function liste_guichet($id_guichet)
{
$id_guichet= (int) $id_guichet;
$colonne = $this->fetchRow('ID_GUICHET=' .$id_guichet);

return $colonne->toArray();

}


Voici le formulaire



class Application_Form_Formulaireenregistrementguichet extends Zend_Form
{

public function init()
{
/* Form Elements & Other Definitions Here ... */

$this->setName("guichet");
$id = new Zend_Form_Element_Hidden('ID_GUICHET');
$id->addFilter('Int');
$nomguichet = new Zend_Form_Element_Text('NOM_GUICHET');
$nomguichet->setLabel('Nom Guichet')
->setRequired(true)
->addFilter('StripTags')
->addFilter('StringTrim')
->addValidator('NotEmpty');
$initialise = new Zend_Form_Element_Reset("effacer");
$initialise->setName("Annuler");
$submit = new Zend_Form_Element_Submit('submit');
$submit->setAttrib('id', 'submitbutton');
$this->addElements(array($id, $nomguichet , $submit, $initialise));




}


}

1 réponse

willimartial
31 mai 2013 à 07:13
Merci pour votre aide
0
Rejoignez-nous