Question requete sql composant joomla2.5
- smiley88
- Auteur du sujet
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 12
- Remerciements reçus 3
20 Juil 2012 15:50 #1
par smiley88
requete sql composant joomla2.5 a été créé par smiley88
Bonjour à jour, après avoir compris le principe du fonctionnement MVC de joomla. Mon soucis se situe dans le rapatriement des données à partir d'une base de donnée.
Je déclare ma fonction dans le modèle
réception des données dans view.html.php dans la fonction display.
et affichage des données dans le template
cela est censé afficher les last_name dans un combobox.
Mais cela m'indique une erreur :
Invalid argument supplied for foreach() in C:\wamp\www\open88\administrator\components\com_double_open88\views\open88\tmpl\edit.php on line 50
Je déclare ma fonction dans le modèle
function ListeJoueuse()
{
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->select(
$this->getState(
'list.select',
'a.*'
)
);
$query->from('`#__bl_players` AS a');
//echo $query;
$db->setQuery($query);
return $db->loadObjectList();
}
réception des données dans view.html.php dans la fonction display.
/*chargement modèle*/
$model = &$this->getModel();
/*appel fonction*/
$liste = $model->ListeJoueuse();
/*recuperation résultat*/
$this->assignRef( 'liste', $listej );
et affichage des données dans le template
<select name="thelist" onChange="combo(this, 'theinput')">
<?php foreach($this->liste as $l) {?>
<option><?php $l->last_name?></option>
<?php } ?>
</select>
cela est censé afficher les last_name dans un combobox.
Mais cela m'indique une erreur :
Invalid argument supplied for foreach() in C:\wamp\www\open88\administrator\components\com_double_open88\views\open88\tmpl\edit.php on line 50
Le sujet a été verrouillé.
- lavsteph
- Hors Ligne
- V.I.P
- Fondateur
Réduire
Plus d'informations
- Messages : 9394
- Remerciements reçus 500
21 Juil 2012 09:52 #2
par lavsteph
Réponse de lavsteph sur le sujet requete sql composant joomla2.5
Le sujet a été verrouillé.
- smiley88
- Auteur du sujet
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 12
- Remerciements reçus 3
23 Juil 2012 11:32 #3
par smiley88
Réponse de smiley88 sur le sujet requete sql composant joomla2.5
oui il m'aide beaucoup mais actuellement je suis coincé au niveau de l'affichage de mes donnée. Je récupère correctement mes données mais l'affichage dans le combobox est assez difficile :
template :
echo var_dump($this->nom_joueuse); m'affiche mes données :
ma boucle :
template :
echo var_dump($this->nom_joueuse); m'affiche mes données :
array 0 => object(JObject)[339] protected '_errors' => array empty public 'value' => string '1' (length=1) public 'text' => string 'AKIKI' (length=5) public 'disable' => boolean false 1 => object(JObject)[340] protected '_errors' => array empty public 'value' => string '2' (length=1) public 'text' => string 'BARBAT' (length=6) public 'disable' => boolean false 2 => object(JObject)[341] protected '_errors' => array empty public 'value' => string '131' (length=3) public 'text' => string 'SIBILLE' (length=7) public 'disable' => boolean false 3 => |
ma boucle :
<li><?php echo $this->form->getLabel('joueuse1'); ?>
<select name="thelist" onChange="combo(this, 'theinput')">
<?php foreach ($this->nom_joueuse as $l) {?>
<option><?php $l->id;?></option>
<?php } ?>
</select>
Le sujet a été verrouillé.
- smiley88
- Auteur du sujet
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 12
- Remerciements reçus 3
23 Juil 2012 12:10 #4
par smiley88
Réponse de smiley88 sur le sujet requete sql composant joomla2.5
Je tiens à préciser que la table que je désire afficher dans mon combobox n'a pas de classe dans mon composant celle-ci est défini dans un autre composant. Je sais pas si cela peut-être utile.
Le sujet a été verrouillé.
- smiley88
- Auteur du sujet
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 12
- Remerciements reçus 3
23 Juil 2012 16:42 #5
par smiley88
Réponse de smiley88 sur le sujet requete sql composant joomla2.5
voila pour fermer ce sujet j'ai réussi à afficher mes données depuis ma base de données dans ma combobox.
Voici le code pour les futurs recherches :
modèle :
Vue :
Template :
En espérant que cela vous aidera !
Voici le code pour les futurs recherches :
modèle :
function ListeJoueuse()
{
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->select(
$this->getState(
'list.select',
'a.*'
)
);
$query->from('#__bl_players AS a');
//echo $query;
// execution de la requéte
$db->setQuery($query);
// récupération des données
$listej = $db->loadObjectList();
return $listej;
}
Vue :
public function display($tpl = null)
{
$this->state = $this->get('State');
$this->item = $this->get('Item');
$this->form = $this->get('Form');
// Check for errors.
if (count($errors = $this->get('Errors'))) {
JError::raiseError(500, implode("\n", $errors));
return false;
}
//chargement modèle
$model = &$this->getModel();
//appel fonction
$nom = $model->ListeJoueuse();
//print_r($nom);
//recuperation résultat
$this->assignRef('nom_joueuse', $nom );
$this->addToolbar();
parent::display($tpl);
}
Template :
$nb = count($this->nom_joueuse);
//echo $nb;
?>
<li><?php echo $this->form->getLabel('joueuse1'); ?>
<select style="display:block; width:100px;"name="joueuse" onChange="combo(this, 'theinput') ">
<?php for ($i = 1; $i < $nb; $i++) {?>
<option><?php echo $this->nom_joueuse[$i]->last_name; ?></option>
<?php } ?>
</select>
En espérant que cela vous aidera !
Les utilisateur(s) suivant ont remercié: lavsteph, Peter
Le sujet a été verrouillé.
- lavsteph
- Hors Ligne
- V.I.P
- Fondateur
Réduire
Plus d'informations
- Messages : 9394
- Remerciements reçus 500
27 Juil 2012 15:56 #6
par lavsteph
Réponse de lavsteph sur le sujet requete sql composant joomla2.5
Bonjour,
je clos donc le sujet pour qu'il ne soit pas pollué à l'avenir.
je clos donc le sujet pour qu'il ne soit pas pollué à l'avenir.
Le sujet a été verrouillé.
Droit d'accès du forum
- Vous ne pouvez pas: Créer un nouveau sujet.
- Vous ne pouvez pas: Répondre au sujet.
- Vous ne pouvez pas: Éditer votre message.
Modérateurs: lavsteph, xillibit, tramber91, Scottux, serge, starter
Temps de génération de la page : 0.848 secondes