Использование флажков ввода с базой данных - часть 2 - PullRequest
0 голосов
/ 10 августа 2011

Предупреждение: этот вопрос может быть немного длинным, мои извинения заранее.

Итак, в моем последнем вопросе видно здесь: Использование флажков ввода с базой данных Я задал вопрос: «Как мне управлять посещением рейдов несколькими пользователями с помощью флажков и цикла базы данных», и я получил решение, которое работало в краткосрочной перспективе, но не работало в долгосрочной перспективе.

Вот код, который запускает цикл / позволяет пользователю выбирать, кто совершал набег: проверил />

Когда я добавляю это в базу данных, я фактически использую 3 запроса, показанных здесь:

foreach($_POST['member'] as $member)
{
    mysql_query("UPDATE attend set rAttend=(rAttend+1) WHERE UserName='$member'");
    mysql_query("INSERT INTO attend set rDate =(CURDATE()) WHERE UserName='$member'");
    mysql_query("UPDATE attend set rTotal=(rTotal+1) WHERE UserName='$member'");
}

Причина, по которой я не могу использовать одну «итоговую сумму», заключается в том, что каждому пользователю необходимо, чтобы общая сумма была основана на количестве посещенных им рейдов. Прямо сейчас страница отображается так:

http://i.imgur.com/dwxLf.png

Несмотря на то, что я ввел дату (с помощью CURDATE ()) и установил флажок для проверки.

Вот полный код запроса, который отображает выше: (предупреждение долго)

    $query="SELECT rTotal FROM rAttend WHERE Username=('$v_member')";
    $total=mysql_query($query) or die(mysql_error());

    $query="SELECT * FROM rAttend WHERE UserName =('$v_member') order by UserName";
    $result=mysql_query($query);
    $num=mysql_num_rows($result);
?>
<center><h3><?php echo ($v_member)?>'s attendence record</h3></center>
<?php
$i=0;
$j=0;
while ($i < $num) {

$f1=mysql_result($result,$i,"rDate");
$f2=mysql_result($result,$i,"UserName");
$f3=mysql_result($result,$i,"rAttend");
?>

<tr>
<td><?php echo $f1; ?></td>
<td><?php echo '<a href="'.$f2.'.php">'.$f2.'</a>'; ?></td>
<?php if ($f3 == 1){
echo "<td>yes"; $j++;
}else{ echo "<td>no" ;} ?></td>
</tr>

<?php
$i++;
}
?>
<center>"Raid Attendence: "<?php echo ($j/$total)*100; ?> %</center><br />
</table>

Если бы кто-нибудь мог помочь мне отладить это, я был бы очень признателен, так как php / mysql никогда не был моим любимым языком.

Спасибо за тонну !!!

Редактировать 1: укороченный отправленный код примерно на 30%.

Ответы [ 2 ]

2 голосов
/ 10 августа 2011

Во второй строке вашего кода дисплея:

$total=mysql_query($query) or die(mysql_error());

Кажется, вы ожидаете, что $total будет числом, но на самом деле это ресурс (это то, что делает mysql_query, он возвращает ресурс в набор результатов). Вам нужно что-то вроде этого:

$total_query = mysql_query($query) or die(mysql_error());
$total_row = mysql_fetch_array($total_query);
$total = $total_row['rTotal'];
1 голос
/ 10 августа 2011

Проработав несколько последних часов, мы с HunderThooves наконец-то нашли решение.Ха-ха.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...