<?php $sql = " SELECT e.*, l.counts AS l_counts, l.date AS l_date, lo.counts AS lo_counts, lo.date AS lo_date FROM employee e LEFT JOIN logs l ON l.employee_id = e.employee_id LEFT JOIN logout lo ON lo.employee_id = e.employee_id WHERE e.employee_id =" .(int)$_GET['salary']; $query = mysql_query($sql); $rows = mysql_fetch_array($query); while($countlog = $rows['l_counts']) { echo $countlog; } echo $rows['first_name']; echo $rows['last_name_name']; ?>
Я получил то, что хочу, с моим первым именем и last_name (получить только 1 результат). l_counts Я хотел бы зациклить эту вещь, но результат не останавливается, пока мой компьютер не перезагрузится. Лол. Как я могу получить точный результат? Мне нужно только получить точные результаты l_counts.
Спасибо
Иордания Пагадуан
вы должны выполнить цикл rows
, а не над $row[key]
while($row = mysql_fetch_array($query)) {
echo $row['l_counts'];
}
Вы используете оператор присваивания =
не оператор сравнения ==
.
так что эта линия равна while(1) { }
то, что вы пытаетесь сделать, как предложено @zerkms, и зацикливать на возвращенные записи.
edit re: дополнительные комментарии OP
чтобы получить 1-ю строку, а затем петлю над остальными
$firstrow = mysql_fetch_array($query);
while($rows = mysql_fetch_array($query)
{
//fun PHP скрипт
}
$mysqli = new mysqli("localhost", "root", "", "test");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
if ($result = $mysqli->query("DO HERE WHAT YOU WANT TO DO (:")) {
while($row = $result->fetch_row()){
echo $row[0];
}
$result->close();
}
last_name_name
из первой итерации для дальнейшего использования. но в любом случае это плохая идея. если вам нужно: 1) всеl_counts
2) первоеlast_name_name
то вам нужно выполнить 2 запроса: первый получит толькоl_count
s, а второй получит только одну запись с одним полем.