2013-03-21 32 views
0

我想從數據庫中提取的數據創建一系列鏈接。從MySQL查詢結果中只檢索一列

這裏是我運行查詢:

<?php 
$result = $db->query("SELECT imageurl FROM products WHERE name LIKE '%$id%' OR title LIKE '%$id%' OR category LIKE '%$id%' LIMIT 0, 15"); 
while($row = $result->fetch_row()) 
{ 
echo '<a href="'.print_r($row).'">'.$row.'</a>'.'<br />'; 
} ?> 

列「IMAGEURL」包含完整URL的圖像。請注意,我正在使用ProcessWire CMS,這是唯一查詢參考的來源。

生成的輸出從數據庫返回正確的條目。搜索工作。然而,他們從字面上這樣的一系列的線:

Array ([0] => http://imagesource.net/graphics/product_images/pACE3-8573838t212.jpg) Array 

末字「陣列」包含超鏈接,但它不會鏈接到正確的URL。

我相信這是一個明顯的錯誤。任何人都可以指出什麼是錯的?

+0

當前您正在打印一個數組,而不是獲取您正在查找的字符串值。 – datasage 2013-03-21 20:38:55

+0

RTLM:http://php.net/mysqli_fetch_row mysql/mysqli函數返回一個** ARRAY **。和print_r()不會返回它的轉儲,它會立即輸出,所以你的echo/concat操作是錯誤的。 – 2013-03-21 20:39:25

+0

馬修,不要忘記勾選最能幫助你的答案':)'。 – halfer 2013-03-24 11:42:31

回答

2

試試這個:

echo '<a href="'.$row[0].'">'.$row[0].'</a>'.'<br />'; 
+0

感謝你!它不僅解決了這個問題,而且教會了我一些東西。 – MatthewSchenker 2013-03-23 14:24:12

0
while($row = $result->fetch_row()) 
{ 
    echo '<a href="'.print_r($row[0]).'">'.$row[0].'</a>'.'<br />'; 
} ?> 
+0

根本不需要'print_r',實際上 - 只需要'$ row [0]'。 ':)'。 – halfer 2013-03-21 20:46:37

+0

你好,我只是複製他的答案。他應該明白... – Adidi 2013-03-21 20:48:51

2

變化:

echo '<a href="'.print_r($row).'">'.$row.'</a>'.'<br />'; 

到:

echo '<a href="'.$row['imageurl'].'">'.$row['imageurl'].'</a>'.'<br />'; 

或:

echo '<a href="'.$row['imageurl'].'">'.basename($row['imageurl']).'</a>'.'<br />'; 
+0

謝謝!很有幫助。 – MatthewSchenker 2013-03-23 14:24:47