2015-06-26 23 views
8

Tôi đang có truy vấn PDO này để gọi dữ liệu từ một MySQL.Nhận các bản ghi tiếp theo và trước đó trong cùng một truy vấn

$sql = "SELECT itemName FROM furniture WHERE itemID = :item"; 

Trong khi kêu gọi ITEMNAME đặc biệt này, là nó có thể để có được những itemNames tiếp theo và trước bằng cách sử dụng ItemID của nó trong cùng một truy vấn này chính nó mà không cần phải viết một truy vấn mới để có được những itemNames tiếp theo và trước đó?

ví dụ: nếu

itemID | itemName 
___________________________ 
553  | Mahogani Black Chair 
554  | Teak Round Table 
555  | Thulang Relaxing Chair 
556  | Teak Relaxing Chair 

$sql = "SELECT itemName FROM furniture WHERE itemID = :item"; 
$stmt = $connect->prepare($sql); 
$stmt->execute(array(':item'=>"554")); 
$rslt = $stmt->fetchAll(PDO::FETCH_ASSOC); 

Tôi đang tìm cách nhận Teak Round TableMahogani Black ChairThulang Relaxing Chair

+0

nơi itemID trong (id1, id2, id3) .... – user1844933

+0

@ user1844933 cảm ơn. Bạn có thể giải thích thêm một chút không? – Becky

+0

$ sql = "SELECT itemName FROM đồ nội thất WHERE itemID không in (554)"; nếu bạn thích mans này hiển thị tất cả các id khác với 554 – Ramki

Trả lời

2

Vui lòng sử dụng mã này:

(SELECT itemName FROM furniture WHERE itemID < 554 order by itemID desc limit 1) 
UNION 
(SELECT itemName FROM furniture WHERE itemID >= 554 order by itemID asc limit 2) 

Đối với mã Ví dụ:

MyTable: 
================ 
id Store_name 
================ 
1 English 
2 French 
3 Tamil 
4 Uk 
5 US 

<?php 
$con = mysqli_connect("localhost","root","ramki","ramki"); 
$sql = "(SELECT store_name FROM store WHERE id < 2 order by id desc limit 1) 
     UNION 
     (SELECT store_name FROM store WHERE id >= 2 order by id asc limit 2)"; 
$query = mysqli_query($con,$sql); 
while ($row = mysqli_fetch_assoc($query)) { 
echo $row['store_name']; 
echo "<br>"; 
} 
?> 
1
$sql = "SELECT itemName FROM furniture WHERE itemID IN (:item-1, :item, :item+1) ORDER BY itemID"; 

Để lặp lại kết quả, bạn cũng có thể sử dụng PDO fetch() function để nhận từng hàng.

+0

cảm ơn. Có vẻ tốt. Làm thế nào để tôi có được tiếng vang cho điều này? – Becky

+0

Tôi không hiểu câu hỏi của bạn. Bạn có thể thực hiện cùng một mã mà bạn đã trình bày ở trên, bằng cách thay đổi biến $ sql query với biến này. – Dimos

+0

Tôi đã làm điều đó. Tôi đang hgavving các vấn đề gán các giá trị trả về trong 2 biến trong vòng lặp 'foreach()'? – Becky

Các vấn đề liên quan