【问题标题】:echo PHP variable within CSS在 CSS 中回显 PHP 变量
【发布时间】:2014-03-10 23:53:27
【问题描述】:

我试图在我的styles.php 中回显一个php 变量。这个变量,我在一个单独的(和包含的)php文件中定义的,包含来自数据库的几个值:

$db_handle = mysql_connect($server, $user_name, $password);
$db_found = mysql_select_db($database, $db_handle);
if ($db_found) {
     $SQL = "SELECT NumDep, DENS FROM france WHERE DENS BETWEEN '0' AND '45' ";
     $result = mysql_query($SQL);
while ( $db_field = mysql_fetch_assoc($result) )
{
$dens = $db_field['NumDep'] . ",<BR>";
echo $dens;

当我在 index.php 文件中回显变量 $dens 时,20 个值正常显示。但是当我在我的 styles.php 文件中回显 $dens 变量时,只打印了 last 值。

<?php
echo $dens; ?> <?php echo "
{
   fill: #FFC285;
   fill-opacity:1;
   stroke:white;
   stroke-opacity:1;
   stroke-width:0.5;
   stroke-miterlimit: 3.97446823;
   stroke-dasharray: none;
}

我想要的是打印 20 个值,就像它们在 index.php 文件中打印的方式一样。

谁能帮助我? (欢迎将这些值从数据库打印到 styles.php 中的替代解决方案!)

提前致谢。 乔纳斯

【问题讨论】:

  • 顺便说一句:我希望您使用 PHP 来预处理这个 CSS,而不是在每个请求上都执行它。这是一个巨大的资源。
  • $dens = $db_field['NumDep'] . ",&lt;BR&gt;"; - 您将 HTML 放入 CSS 文件中。您的意思是使用\n 而不是&lt;br&gt;?此外,请考虑切换到 MySQLi 或 PDO 进行查询,因为 mysql_ 函数现已弃用并被视为不安全。
  • 发生这种情况是因为在您的index.php 文件中在循环中输出它,而在您的styles.php 文件中却没有,所以它只是输出最后一个结果。我不想认为您要为每个数据库行打印该 CSS 样式,您应该为具有这些名称的元素分配一个类并定义一个 CSS 类样式。
  • @Marty 我不明白你的意思。我认为我的 css 是由每个请求生成的......有没有更好的方法?

标签: php mysql css variables echo


【解决方案1】:

index.php 中的echo 位于while 循环中,因此它会打印多次。当您点击styles.php 时,while 循环已完成,因此$dens 的值就是循环结束时的值。

您需要在 CSS 中使用 while 循环才能使其按预期工作。

【讨论】:

  • 请注意,我认为这不是一个好主意。这就是您遇到问题的原因。
  • 非常感谢。实际上,我没有找到更好的方法来在我的 css 中回显一系列 ID,因为这些 ID 应该很容易更改(使用命令 BETWEEN 来选择我的数据库中的特定字段)。也许有更好的方法?
  • 我不记得在我的 PHP 时代找到了 much 更好的方法,但是 .css.php 文件让我不寒而栗。如果可以,我会尝试重构,以便您可以动态分配执行所需操作的类(在普通 php 文件中),而不是走 .js.php 或 .css.php 路线。
  • 好的,我会探索这个。感谢您的建议。
【解决方案2】:

相反

$dens = $db_field['NumDep'] . "\n";

使用

$dens .= $db_field['NumDep'] . "\n";

【讨论】:

  • 这也将起作用(假设while 循环保留在 index.php 中并且不仅仅是为了调试)。
【解决方案3】:

因为您在执行 echo 时正在循环,所以它会显示每个结果。你需要在你的 CSS 中用一个 while 来模仿这个,就像你对 echo 一样,或者在 while 循环中创建一个值数组,然后在你的 CSS 中循环。

或者你可以在你的while循环中使用.=而不是=追加到$dens

【讨论】:

    【解决方案4】:

    在更多地参与编程之后,我得出的结论是,我的问题可能的答案是:使用 d3.js 而不是使用“动态 CSS”使事情变得复杂!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多