2010-06-03 129 views
0
 
<?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']; 
?> 


我得到了我想要我的FIRST_NAME和姓氏(只得到1的結果)。 l_counts我想循環的東西,但結果是不停止計數,直到我的電腦需要重新啓動。大聲笑。我怎樣才能得到確切的結果呢?我只需要得到l_counts的確切結果。

謝謝
喬丹PagaduanPHP MySQL的選擇結果

回答

3

你應該遍歷rows,不超過$row[key]

while($row = mysql_fetch_array($query)) { 
    echo $row['l_counts']; 
} 
+0

如果我這樣做了$行[ 'last_name_name'];會受到影響。我只想循環是l_counts; – Jorge 2010-06-03 00:31:51

+0

那麼你應該從第一次迭代中存儲'last_name_name'以便進一步使用。但無論如何,這是一個壞主意。如果你需要:1)所有'l_counts'2)第一個'last_name_name',那麼你必須執行2個查詢:第一個將只獲得** l_count's,第二個將只獲得** **一個記錄一個領域。 – zerkms 2010-06-03 00:34:09

+0

是可能的嗎? 2一次選擇查詢? – Jorge 2010-06-03 00:44:48

1

您正在使用賦值運算符=不比較運算符==

所以基本上是行等於while(1) { }

您的概率意味着該怎麼辦,@zerkms建議和遍歷返回的記錄。

編輯回覆:附加OP評論

因此要獲得第1行,然後遍歷其餘

$firstrow = mysql_fetch_array($query); 
while($rows = mysql_fetch_array($query) 
{ 
    //fun php script 
} 
1
$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(); 
}