2017-09-14 49 views
0

我需要做什麼: 我使用基於項目ID的mySQL中的數據填充div。我要創立一個變量被稱爲成的div如$ tip_ + $ id,這將導致:PHP - 將變量追加數據庫ID

$tooltip_1 
$tooltip_2 
$tooltip_3 

我迄今所做的:

$query = 'SELECT * FROM top_tips WHERE type = "aw"'; 
$result = mysqli_query($link, $query); 

while ($row = mysqli_fetch_row($result)) { 
    $tip_ID = $row[0]; 
    $tip_text = $row[2]; 
    $tip_link = $row[3]; 

    $tooltip = "<div class='tooltip-close'><a href='#' class='close'>&times;</a></div>" .$tip_text . " <a href='" .$tip_link . "'>read more ...</a>"; 

    echo $tooltip; 
} 

我在哪裏卡住: 什麼是最有效的方式來輸出$ tooltip + $ tip_id所以變量可以被調用到各自的div?

+1

任何時候,你發現你自己創建這樣的變量,你應該使用數組來代替。在foreach裏面的 – Barmar

回答

1

增加了的foreach爲你的代碼..

<?php 
$query = 'SELECT * FROM top_tips WHERE type = "aw"'; 
$result = mysqli_query($link, $query); 

while ($results = mysqli_fetch_row($result)) { 
    foreach($results as $row){ 
    $tip_ID = $row[0]; 
    $tip_text = $row[2]; 
    $tip_link = $row[3]; 

    $tooltip = "<div class='tooltip-close'><a href='#' class='close'>&times;</a></div>" .$tip_text . " <a href='" .$tip_link . "'>read more ...</a>"; 

    echo $tooltip; 
    } 
} 
?> 

希望你需要這個解決方案..在你​​的問題即時通訊困惑。

1

您可以創建$數組,像這樣的工具提示:

$tooltip[] = "<div class='tooltip-close'><a href='#' class='close'>&times;</a></div>" .$tip_text . " <a href='" .$tip_link . "'>read more ...</a>"; 
2

你會做這樣的:

while ($row = mysqli_fetch_row($result)) { 
    $tip_ID = $row[0]; 
    $tip_text = $row[2]; 
    $tip_link = $row[3]; 

    $tooltip = "tooltip_{$tip_ID}"; 

    $$tooltip = "<div class='tooltip-close'><a href='#' class='close'>&times;</a></div>" .$tip_text . " <a href='" .$tip_link . "'>read more ...</a>"; 

    echo "tooltip_{$tip_ID}"; 
} 

這會給你的變量,如tooltip_1 $,$ tooltip_2等上。也就是說,我建議你爲此使用一個數組。

1

看起來你關心效率以及如何連接你的$tooltip_$tip_ID。首先關於效率,我總是學到:當你通過一個循環獲取結果時,決不會創建變量。總是在外面!

<?php 
$tooltip_array = array(); //Future array containing your $tooltip_1, $tooltip_2... 
$query = 'SELECT * FROM top_tips WHERE type = "aw"'; 
$result = mysqli_query($link, $query); 

然後,在你的循環中,您可以在每個提示推到你的數組是這樣的::

while ($row = mysqli_fetch_row($result)) { 
array_push($tooltip_array,"<div class='tooltip-close'><a href='#' class='close'>&times;</a></div>" .$row[2] . " <a href='" . $row[3] . "'>read more ...</a>"); 
} 

在你的情況,你可以在獲取結果之前,這樣的創建最後你可以用foreach循環來回顯:

// Iterating through the values 
foreach($tooltip_array as $value) 
{ 
    echo $value; 
} 
+0

,我該如何將db ID附加到變量中?所以我可以通過$ tooltip_1等訪問 – Johanna

+0

@johanna你不會。 foreach循環允許您訪問數組中每個包含每個工具提示的項目,而不必爲每個工具提供一個變量。如果你需要的話,你需要在每個$ tooltip_array項目中添加另一個元素。 –

+0

因此在編譯時將ID拉入工具提示數組中。從數組中選擇項像$ array [id] [value]? – Johanna

0

我想發佈我最終使用的工作解決方案,供任何閱讀此線程的人使用。

 $query = 'SELECT * FROM tool_tips WHERE tip_type = "aw"'; 
    $result = mysqli_query($link, $query); 
     while ($row = mysqli_fetch_row($result)) { 
       $tooltip_array[$row[0]] = "<div class='tooltip-close'><a 
     href='#' class='close'>&times;</a></div>" .$row[2]. "<a href='" .$row[3]. "'>read more ...</a>"; 
     } 

然後我打電話像個人提示:

<?php echo $tooltip_array[12];?>