sql count()和

gmol1639  于 2021-06-19  发布在  Mysql
关注(0)|答案(2)|浏览(484)

我在用angular显示sql命令(count())时遇到问题。
php文件(此文件没有问题):

$app->get('/animal/{idA}/nb', function ($idA) use ($app) {
$sql = "SELECT COUNT(*) as nbTotal FROM animal WHERE idAnimal = :idA;
$animalCount = $app['db']->fetchAssoc($sql, array('idA' => (int) $idA));

 return json_encode($animalCount); });

但要以Angular 显示它:
动物服务.ts

getNbAnimals(idA: number){ return this.http.get(this.apiUrl + '/animal/' + idA + '/nb'); }

动物组件.ts

getNbAnimals(idA: number){ this.animalService.getNbAnimals(idA); }

动物组件.html

<p>{{getNbAnimals(idAnimal.value)}}</p>

这个html文件的结果是[object]。我不知道如何显示我的count()。如果你能帮助我,谢谢你!

1szpjjfi

1szpjjfi1#

我想你有一件东西

this.http.get(this.apiUrl + '/animal/' + idA + '/nb');

所以在回来之前多做一步

phpObj = this.http.get(this.apiUrl + '/animal/' + idA + '/nb');
 //and then return object property value
 return phpObj.nbTotal;

或者您可以修复php响应以仅返回值而不返回数组:

return json_encode($animalCount['nbTotal']);
6uxekuva

6uxekuva2#

这是因为您试图显示该函数返回的内容,这通常是可观察的。相反,请尝试:

<p>{{getNbAnimals(idAnimal.value) | async}}</p>

subscribe 关于ts部分的服务:

getNbAnimals(idA: number){ 

    return this.animalService.getNbAnimals(idA)
           .subscribe((response)=> return response);
 }

相关问题