2
votes

Compter les données de la base de données sur laravel

Sur php, je pourrais utiliser ce code pour obtenir combien d'articles sur mes marchandises db

function show(Request $request){
    $c = DB::select("SELECT count(*) as total FROM goods");
    if($c > 0 ): a ? b;
}

puis-je faire ça sur laravel? si j'utilise ce code sur mon contrôleur

$total = 0;
$sql = "select count(*) as total from goods";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $total = $row['total'];
    }
}
echo $total;
// example return 5

il recevrait un message d'erreur car il renverrait JSON à l'intérieur du tableau. Y a-t-il une meilleure façon de faire cela? Ou comment obtenir ce total à partir de $ c à l'intérieur du contrôleur


0 commentaires

4 Réponses :


4
votes

a utilisé la méthode de Agrégats count

$count = DB::table('goods')->count();

if($count > 0) {
     //more than one raw
}else {
     //zero raw
}


0 commentaires

-2
votes

c'est beaucoup plus propre avec l'éloquent

$c=goods::where('value',$val)->get()->count();

puisque ce qui précède va extraire toute la collection et compter, le moyen le plus efficace est

$c=goods::all()->count();


2 commentaires

Cela récupérera tous les marchandises et comptera collection , pas bon, s'il y a des millions d'enregistrements.


Je sais que ce n'est pas une bonne pratique mais en regardant son code, il va chercher tous les enregistrements



1
votes

Vous pouvez utiliser la fonction count () comme ceci:

$count = Good::all()->count();

Vous pouvez également utiliser Laravel Eloquent sur un modèle Bon comme ceci:

$count = DB::table('goods')->count();


0 commentaires

0
votes
$count = DB::table('goods')->count();
Please refer link

0 commentaires