2016-07-01 5 views
0

Добрый день, у меня есть таблица в php, которая суммирует значения, которые хранятся в MySQL.Как получить максимальное значение из суммы значений в php, которая не находится в MySQL

MySQL таблицы:

USER 1: 
crit_1 = 75 
crit_2 = 75 
USER2: 
crit_1 = 100 
crit_2 = 100 

Мой PHP выглядит следующим образом:

$crit_1 = $row["crit_1"]; 
$crit_2 = $row["crit_2"]; 
$sum = ($crit_1 + $crit_2); 
$total = number_format ($sum/2, 2, '.',' '); 

и вот мой HTML

<th><strong>Score from Crit_1</strong></th> 
<th><strong>Score from Crit_2</strong></th> 
<th><strong>TOTAL SCORE OF crit_1 and crit_2</strong></th> 

<td align="center"><?php echo $crit_1; ?></td> 
<td align="center"><?php echo $crit_2; ?></td> 
<td align="center"><?php echo $total; ?></td> 

Теперь это подводит итог crit_1 и crit_2, которая хранится в MySQL с использованием PHP. То, что я хотел сделать, - это получить наивысшую ценность из третьего столбца, который равен $total, и поместить его в другой столбец или другое текстовое поле где-нибудь (любые будут делать)

То, что я пробовал до сих пор.

$value = max($total); 
    $key = array_search($value, $total); 

<td align="center"><?php echo (max($total)); ?></td> 

но я имею эту ошибку:

max(): When only one parameter is given, it must be an array 

Так что я думаю, мой вопрос в том, как я могу конвертировать $ всего в массив строки, так что я могу получить максимальное значение. Или если у вас есть другой подход к моей проблеме. Благодарю.

+0

где же MySQL для этого, или это «писать для вас» типа вопроса? Если этот тег не имеет значения, его следует удалить. –

+0

* Мой запрос выглядит следующим образом * Это не запрос, это PHP-код. – shmosel

+0

Я включил пример таблицы MySQL. Я просто хотел знать, есть ли я на правильном пути, но мне нужно что-то сделать, или мне нужно сделать что-то еще, а не max(). – Joshua

ответ

0

Я создал array по имени $max_total и каждый раз во время в нем loopinginsert $ общей value. Затем используйте max()fuction, чтобы получить макс.

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$mysql_database = "a"; 

$max_total = array(); 
$conn = mysqli_connect($servername, $username, $password) or die ("Connection failed: " . mysqli_connect_error()); 
mysqli_select_db($conn,$mysql_database) or die("Opps some thing went wrong"); 
$result = mysqli_query($conn, "select * from reg")or die("error"); 
echo '<table border="1">'; 
echo '<tr><th><strong>Score from Crit_1</strong></th> 
<th><strong>Score from Crit_2</strong></th> 
<th><strong>TOTAL SCORE OF crit_1 and crit_2</strong></th></tr>'; 
while($row = mysqli_fetch_assoc($result)){ 
    $max_total[] = $row['crit_1'] + $row['crit_2']; 
    echo '<tr><td align="center">'.$row['crit_1'].'</td><td align="center">'.$row['crit_2'].'</td><td align="center">'.($row['crit_1'] + $row['crit_2']).'</td></tr>'; 
    } 
echo '</table>'; 
echo(max($max_total)); 

table name Изменения и database name в соответствии с вашим.

для получения дополнительной информации о пожалуйста Раеде http://php.net/manual/en/function.max.php

+0

Это работало. Но это то же самое, что и комментарий Шона. Еще раз спасибо – Joshua

+0

Последний вопрос, хотя, как я могу эхо целовать строку, которая имеет наибольшее значение? не только оценка. – Joshua

+0

очень просто, если у вас есть первичный идентификатор в вашей таблице, а затем при создании вашего $ max_total создать первичный идентификатор в качестве его ключа, например, внутри цикла while. $ max_total [$ row ['id']] = $ row ['crit_1'] + $ row ['crit_2'] ;. Затем получите идентификатор наибольшего значения и с помощью этого идентификатора введите нужный результат. – user1234