PHP - 将db ID附加到变量

时间:2017-09-14 16:19:44

标签: php mysql

我需要做些什么: 我根据项目ID使用来自mySQL的数据填充div。我需要创建要调用div的变量,例如$ tip_ + $ 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中?

5 个答案:

答案 0 :(得分: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 :(得分: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;
    }
}  
?>

希望你需要这个解决方案..我在你的问题中感到困惑。

答案 2 :(得分:1)

您可以创建一个$ tooltips数组,如下所示:

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

答案 3 :(得分: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;
}

答案 4 :(得分: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];?>