Tableau de conversion de chaîne de caractères d'erreur dans Codeigniter
J'essaie d'afficher une moyenne des résultats de la base de données de la vue, mais je reçois ce message d'erreur:
Une Erreur PHP a été rencontrée
Gravité: Avis
Message: Tableau de conversion de chaîne de caractères
Nom de fichier: views/resultview.php
Numéro De Ligne: 38
Voici le code à partir du Contrôleur:
$average['avg'] = $this->quiz->getAverage($quizid);
$this->load->view('resultview',array('quiz' => $quiz,
'score' => $score,
'average_score' => $average));
La fonction à partir du modèle est le suivant:
function getAverage($quiz)
{
//get percentage from the database
$this->db->select_avg('score');
$this->db->where('id', $quiz);
$res = $this->db->get('userScoreQuiz');
if ($res->num_rows() != 1) {
//there should only be one row - anything else is an error
return false;
}
return $res->result_array();
}
et le code de la vue, c'est:
<h4> Avg. score on all previous attempts: <?php echo $average_score['avg'] ?> %</h4>
Je ne peux pas couture pour savoir pourquoi il fait cela.
Merci pour votre aide les gars.
- votre fonction retourne un tableau
return $res->result_array();
Et$average_score['avg']
est un tableau qui pourquoi vous obtenez cette erreur print_r($average_score)
et vérifier sa valeur- au lieu de cela return false; pass return array(); et de vérifier la fonction isset() si nécessaire
Vous devez vous connecter pour publier un commentaire.
C'est trop de codage, vous obtenu, Voici une solution Élégante:
Pour votre point de vue
Et ils seront accessible que
$quiz, $average_score, $score
de docs:
remplacer le
à
parce que pas une variable, c'est l'ensemble de la matrice de
Avg. score on all previous attempts: <?php echo $average_score['avg'] ?>
codeigniter result_array() retourne les données sous forme de tableau. Et d'index de tableau commence à 0 index.
"$average_score['moy']" ce qui devrait être undefined index. Essayez d'accéder à matrice de résultats que $average_score['moy'][0]['score'] si vous ne voulez pas changer dans votre fonction.
si vous voulez éviter supplémentaire index de tableau, puis renvoyer les résultats à l'aide de ligne() à la place sur result_array().