2015-01-24 3 views
-2

Я получаю действительно раздражающую ошибку Undefined variable: count. Вот мой код:

<?php 
    $user = getUserData('Username'); 
    $sql = "SELECT `Username`, `Uplata`, `Dobivka`, `Date` FROM `kladilnica` WHERE `Username`='$user'"; 
    $result = $conn->query($sql); 
    if($result === false) { 
     echo "<b>Could not connect to database.</b>"; 
     trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $conn->error, E_USER_ERROR); 
    } else { 
     if($result->num_rows == 0) { 
      echo "<b>Something went wrong try again later.</b>"; 
     } else if($result->num_rows >= 1) { 
      echo "<table id='t01'><tr><th>ID</th><th>Username</th><th>Uplata</th><th>Dobivka</th><th>Date</th></tr>"; 
      while($row = $result->fetch_assoc()) { 
       $count = $count + 1; 
       echo "<tr><td>".$count."</td> <td>".$row["Username"]."</td> <td>".$row["Uplata"]."</td> <td>".$row["Dobivka"]."</td> <td>".$row["Date"]."</td></tr>"; 
      } 
       echo "<tr><th colspan='5'>Vkupna Uplata:</th></tr>"; 
       echo "<tr><th colspan='5'>Vkupna Dobivka:</th></tr>"; 
       echo "</table>"; 
      } 
     } 
    $conn->close(); 
    ?> 
+5

Вы не можете увеличить значение, которое даже не задано ранее. Инициализируйте переменную с начальным значением перед циклом while. – CBroe

ответ

1

Вы читаете переменную $count в выражении $count + 1. На первой итерации цикла while переменная еще не назначена, и это вызывает вашу ошибку. Вы не можете читать/использовать переменную, которая еще не определена.

Решение прост: Инициализировать $count до 0 перед циклом.

$count = 0; 
while($row = $result->fetch_assoc()) { 
    $count = $count + 1; 
    echo "<tr><td>".$count."</td> ......"; 
} 
3

Вы должны инициализировать $count до некоторого значения, прежде чем пытаться увеличить его с $count = $count + 1. Вы можете изменить цикл while к for цикла и инициализировать $count в for заявлении:

for ($count = 0; $row = $result->fetch_assoc(); $count++){ 
    // do something 
} 
+0

Спасибо за ваш ответ. У меня есть другой вопрос, и я знаю, что мне не разрешено это делать, но его по одному и тому же коду ... как я беру все числа из строки «Уалата» и собираюсь, чтобы получить их общее количество? – Stefan

+0

Если это массив чисел, почему бы не использовать 'array_sum'? Например, '$ sum = array_sum ($ row [" Uplata "])'. – celeritas

+0

это дает мне ошибку: 'Warning: array_sum() ожидает, что параметр 1 будет массивом, null given' – Stefan

-3

Я хотел бы предложить, чтобы изменить

$count = $count + 1; 

в

$count+=1; 

Это должно сделать трюк ,

+1

Вся проблема в том, что $ count не инициализируется в первую очередь. – celeritas

Смежные вопросы