好的,我创建了一个简单的页面,可以让我计算在我店里工作的领导者的客户满意度。基本上,我有一个mysql数据库,其中包含在那里工作的所有领导者的名字,以及他们工作的日期和时间。我还有一个数据库,其中包含客户访问的日期,时间以及他们访问的评级。
我创建了一个查询行为,当我查询领导者的名字时,它会返回客户在特定领导者工作的日期和时间提交的所有评分/分数。
客户通常会将他们的体验评为1 - 10,其中10是最好的。我想把那些得分的回答转换成一个简单的字母系统,其中9-10的得分等于“G”表示良好,7-8等于“O”表示ok,而低于6的任何表示等于“B”表示不好。< / p>
使用mysqli_fetch_array和switch语句,我试图将数字转换为字母。但是,我似乎没有从中得到任何结果。我已经测试了查询和fetch_array,如果我自己使用它们(没有switch语句),它们会产生正确的评分响应(即Paul的得分10,9,9)。但是当我插入switch语句时,它们不会转换为字母,屏幕上也不显示任何内容。 问题:我使用此switch语句或mysqli_fetch_array的方式有问题。我对编码很陌生,所以我可能会误解它们的使用方式。
这是php
<html>
<body>
<?php
include("db.php");
echo $_POST['searched']; // temp. check to see if post came through
echo '<br>';
$searched = $_POST["searched"]; // create variable to put searched name in query.
$good = array(); //create array to store good scores
$ok = array(); //create array to store ok scores
$bad = array(); //create array to store bad scores
// Search the database and retrieve all ratings That matches a managers name
$query = "SELECT leaders.name, responses.score
FROM leaders
INNER JOIN responses
ON leaders.shift_date = responses.visit_date
AND leaders.shift_time = responses.visit_time
AND leaders.name = '$searched' ORDER BY leaders.id;";
$result = $db->query($query); //store that query
//iterate through result and grab each score
while ($row = $result->fetch_array()){ // place scores into an array
// use a switch statement to change numbered system to lettered
switch($row[1]) {
case 10:
case 9:
array_push($good, "G");
break;
//echo $row[1] . ' '; temp check to ensure array call was successful
echo $good[0] . ' ';
}
}
//echo "<script>window.location = 'http://localhost/~baronjon/ilotf/main.php'</script>";
?>
</body>
</html>
答案 0 :(得分:1)
您必须打开阵列的特定字段,而不是整个阵列。
试试这个
//iterate through result and grab each score
while ($row = $result->fetch_array()){ // place scores into an array
// use a switch statement to change numbered system to lettered
switch($row['score']) {
case 10:
case 9:
array_push($good, $row);
break;
case 8:
case 7:
array_push($ok, $row);
break;
default:
array_push($bad, $row);
} // endswitch
}
print_r( $good );
print_r( $ok );
print_r( $bad );
现在你有了3个新数组,每个数组都包含属于3个类别的结果行。
PS不要使用row [0]语法,因为只要更改select语句并将另一个字段添加到字段列表的前面,您就会在交换机中测试错误的字段。