Я пытаюсь создать систему рекомендаций, сейчас я просто хочу, чтобы функция getRecommendation не возвращала ноль. Я проверил все восстановленные данные из sql, и эти данные получены, нет проблем с восстановленными данными все еще учатся php, обратная связь очень ценится
<?php
require('connection.inc.php');
require('recommend.php');
$matrix=array();
$userID=$_SESSION['USER_ID'];
$reco=mysqli_query($con,"select userrating.*,product.id,product.productName from userrating inner join product ON userrating.userID='$userID' AND userrating.productID=product.id");
while($rec=mysqli_fetch_array($reco))
{
$users=mysqli_query($con,"select users.name from users where users.id=$rec[userID]");
$username=mysqli_fetch_array($users);
$matrix[$username['name']][$rec['productName']]=$rec['rating'];
$getName= $username['name'];
}
var_dump(getRecommendation($matrix,$getName));
?>
**this is the function file **
<?php
function similarityDistance($matrix,$product1,$product2)
{
$similar=array();
$sum=0;
foreach($matrix[$product1] as $key=>$value)
{
if(array_key_exists($key,$matrix[$product2]))
{
$similar[$key]=1;
}
}
if($similar==0)
{
return 0;
}
foreach($matrix[$product1] as $key=>$value)
{
if(array_key_exists($key,$matrix[$product2]))
{
$sum=$sum+pow($value - $matrix[$product2][$key],2);
}
}
return 1/(1+sqrt($sum));
}
function getRecommendation($matrix,$prod)
{
foreach($matrix as $otherProduct=>$value)
{
if($otherProduct!=$prod){
$sim=similarityDistance($matrix,$prod,$otherProduct);
var_dump($sim);
}
}
}
?>