2010-04-14 79 views
2

有人可以告訴/告訴我如何在PHP中使用PHP。 我正在嘗試使圖像更改的URL取決於MySQL數據庫中的值。 下面是我想要做的一個例子。請記住,$ idx已經從頁面的URL中獲得了一個值。如何在Php裏面使用Php?

<?php 
$query = "SELECT * FROM comment WHERE uname='$idx'"; 
$result = mysql_query($query); 
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{ 
echo "<img src='' name='comm' width='75px' height='60px' id='mainimage' />"; 
} 
?> 

我該如何讓源圖像的源值來自不同的表格?

+0

該標題的+1。 – 2010-04-15 08:43:53

回答

5

你會做while環路內的另一個SQL查詢。我喜歡你如何表達,「Php內部的Php」,這幾乎就是你所做的。

while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{ 
    $image_query = "SELECT image_url FROM your_table"; 
    $image_result = mysql_query($image_query); 
    $image = mysql_fetch_assoc($image_result); 

    echo "<img src='" . $image['image_url'] . "' name='comm' width='75px' height='60px' id='mainimage' />"; 
} 

確保您的查詢和結果的變量名是從原始查詢不同,因爲你還在使用$result變量從原來的查詢循環的每個迭代。所以我在這裏以「image_」爲前綴。

7

您可以在單個SQL查詢中連接來自多個表的數據。請參閱:http://www.w3schools.com/sql/sql_join.asp

例子:

SELECT column_name(s) 
FROM table_name1 
JOIN table_name2 
ON table_name1.column_name=table_name2.column_name 
0

我該如何使源圖像的源值來自不同的表格?

您必須簡單地詢問不同的表格。您可以通過創建子查詢(或連接)或在循環內創建第二個查詢來進行詢問。

1

假設另一個表可能被稱爲accounts,並且uname是其主鍵,您可以執行JOIN以一次獲取兩個表中的數據。如果你能適應你想在一個查詢這通常比每行

<?php 
    $result = mysql_query(
     "SELECT comment.*, account.url AS imgurl ". 
     "FROM comment JOIN account ON comment.uname=account.uname ". 
     "WHERE comment.uname='".mysql_real_escape_string($idx)."'" 
    ); 
?> 
<?php while($row = mysql_fetch_array($result, MYSQL_ASSOC)) { ?> 
    <img src="<?php echo htmlspecialchars($row['imgurl']) ?>" alt="" class="mainimage" /> 
<?php } ?> 

注意事項做一個額外的查詢速度更快做什麼:

  • 你需要逃避你插入到一個SQL文本查詢,或者你有嚴重的安全問題。使用mysql_real_escape_string,或讓參數化查詢處理它;

  • 類似地,當將文本放入HTML字符串時,需要htmlspecialchars或者您有其他(較不嚴重但仍不是很好的)安全問題;

  • 你不能在一個元素上多次使用同一個id(它將在一個循環中)。 <img>上的name也是如此,儘管你幾乎沒有理由使用img name;

  • width="75px"將無法​​在屬性中工作px單位測量值不是HTML。省略單元,或者,最好在CSS中設置規則(.mainimage { width: 75px; height: 60px; }),以便一次完成它們。