2016-08-05 111 views
-1

我遇到過這個問題一段時間,我似乎無法在google上找到正確的答案。我不知道,也許我只是不幸。如何從輸入的數據中獲取行號(sql和php)

反正我怎樣才能從一個PHP文本字段中的特定記錄我輸入行號,例如:

ID   NAME 
11111  john 
11112  roger 
11113  ellis 
11114  jack 
11115  wendy 

所以,如果我輸入11113,輸出會像「這個ID是3號「。

這裏是我的代碼:

$id=$_POST['id']; 
$query="SELECT COUNT(*) from employee where id like '%$id%'"; 
$num=mysql_query($query); 
echo "this ID is at number $num"; 

任何人都可以指出在哪裏我會錯呢?

+1

'COUNT'計算匹配WHERE條件的行。這不是你所期望的。另外,您的表格中沒有行號。沒有使用'ORDER BY'的行的順序可能不同 – Ahmad

+0

您沒有編號的字段,添加一個編號爲'ellis'的編號爲3的字段,然後您就可以獲得該結果。 –

+1

**警告**:如果您只是學習PHP,請不要使用['mysql_query'](http://php.net/manual/en/function.mysql-query.php)界面。它是如此可怕和危險的,它是PHP 7.更換喜歡[PDO是不難學(http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps刪除-pdo-for-database-access /)以及[PHP The Right Way](http://www.phptherightway.com/)等指南介紹了最佳實踐。您的用戶參數** **不[正確轉義(http://bobby-tables.com/php)和有[SQL注入漏洞(http://bobby-tables.com/),可以利用。 – tadman

回答

0

這裏是你如何能做到這一個查詢例子不添加另一列數:

SELECT e.*,b.count FROM employee as e, (SELECT COUNT(*) as count FROM employee WHERE id <= 3) as b WHERE e.id = 3 

使用另一個選擇查詢與id計算所有的行小於該id要求

或者行的,如果你只想要偏移沒有它的數據:

SELECT COUNT(*) as count FROM employee WHERE id <= 3 
0
  1. 起初,你應該選擇*從僱員表

  2. 然後解析結果陣列,

  3. 掃描上述陣列(步驟2),並找到自己的價值(11113)

  4. 如果(3)被找到,那麼你可以返回數組索引。

0

第一件事: 您正在使用舊的PHP-方法數據庫,使用PDO

如果你wan't得到最後插入的ID,很可能與PDO

抓住它

我不明白你的SQL,因爲你想獲得一個ID,通過篩選ID?而當你的ID是INTEGER/NUMBER時,你的陳述是毫無意義的。