Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何设置PHP输出的样式?_Php_Sql_Echo - Fatal编程技术网

如何设置PHP输出的样式?

如何设置PHP输出的样式?,php,sql,echo,Php,Sql,Echo,我正在学习php,并制作了一个简单的应用程序,将人名保存到数据库中,然后将所有保存的人名放到页面下方的列表中 这是获取名称的代码:echo“$row[Name]” 我在成绩类别上加了一个div,这样我就可以设计它了。在这一点上,我只想把结果放在中心。在使用css将其样式设置为居中后,查看页面源,每个被回送的名称周围都有一个div,其中包含结果类。它们都以我想要的方式为中心,这很好,但这似乎不是最好的方法,因为数据库中的每个新名称都会创建一个新的div(现在有18个div,太多了!)。我希望只创建

我正在学习php,并制作了一个简单的应用程序,将人名保存到数据库中,然后将所有保存的人名放到页面下方的列表中

这是获取名称的代码:
echo“$row[Name]”

我在成绩类别上加了一个div,这样我就可以设计它了。在这一点上,我只想把结果放在中心。在使用css将其样式设置为居中后,查看页面源,每个被回送的名称周围都有一个div,其中包含结果类。它们都以我想要的方式为中心,这很好,但这似乎不是最好的方法,因为数据库中的每个新名称都会创建一个新的div(现在有18个div,太多了!)。我希望只创建一个div,但我显然错了

那么,是否可以在html标记中预先创建一个div,而不包含任何内容,并将名称回显到div中?或者你认为有没有一种方法可以让它一次全部输出,所以它都在一个div中

下面是代码的其余部分,以便您了解发生了什么:

<?php 
$connect = mysql_connect("localhost","user","0123");
if(!$connect){
    die("Failed to connect: " . mysql_error());
}

if(!mysql_select_db("Test")) {
    die("Failed to select database: " . mysql_error());
}

$results = mysql_query("SELECT * FROM Friends");

while($row = mysql_fetch_array($results)){
    echo "<div class=\"results\"> $row[Name] </div>";
}

if ($_POST[name] !="") { $sql="INSERT INTO Friends 
(name) VALUES('$_POST[name]')";

if (!mysql_query($sql,$connect))
  {
  die('Error: ' . mysql_error());
  }
echo "<div id=\"added\"> $_POST[name] added to the database </div>";
}
else die("")

?>

由于您在while循环中输出div,因此每个结果都将获得一个新的div。只需将div移出循环:

echo "<div class=\"results\">";
while($row = mysql_fetch_array($results)){
    echo $row['Name'];
}
echo "</div>";
echo”“;
while($row=mysql\u fetch\u数组($results)){
echo$row['Name'];
}
回声“;

请注意,您应该始终引用密钥。使用
$row['Name']
而不是
$row[Name]
(如果Name是一个已定义的常量,则显然不是)。

我认为最好使用一些变量来存储输出:

$out .= "<div class=\"results\">";
while($row = mysql_fetch_array($results)){
  $out .= $row[Name]."<br />";
}
$out .= "</div>";

echo $out;
$out.=”;
while($row=mysql\u fetch\u数组($results)){
$out.=$row[Name]。“
”; } $out.=”; 回音$out;
您可以将div创建与结果回显分开:

echo';
while($row=mysql\u fetch\u数组($results)){
echo$row['Name']。
; } 回声';

如果您不想要
div
如果没有结果(没有朋友),您可以使用不要让php输出html标记。它的代码看起来很糟糕,您的编辑器将无法识别它为html,并且在给它着色时会把它弄得一团糟。一般来说,我建议您首先进行所有的php处理,然后在其中生成包含php输出片段的HTML。大概是这样的:

请注意,我将您的
div
替换为
ul
,因为您的人员列表似乎更适合作为
ul
而不是
div
。显然,您可以在HTML中使用任何想要的标记

<?php
 // do all php stuff here
 $persons = /* get collection from database here */
?>

<html>
 <head>
 </head>
 <body>
  <ul id="ListOfPersons">
   <? foreach ($persons as $person): ?>
    <li>
      <?= $person["Name"] ?>
    </li>
   <? endforeach ?>
  </ul>
 </body>
</html>


>使用一些变量来存储输出。为什么?@Boann在这种情况下,按正确的顺序打印每件事要容易得多。例如:如果您需要在输出的开头添加
something
,但是这个
something
只能在脚本的末尾计算。一些“总”价值等,也是一个有趣的方式来绕过它谢谢。我也将尝试这种方法。可能使用
echo$row['Name']。
在每个字符后添加换行符result@BillyMoon我错过了。谢谢,谢谢!我一定会把它放到我的应用程序中,当表中有0行时,它会显示“列表为空”或类似的内容。谢谢,我会在搞乱第一个家伙说的话后尝试这个。这是一个不错的选择,因为我想要一个名单。太棒了,谢谢。正是我想要的。另外,如果名称用倒逗号
$row['name']
开头,则无法加载页面(出现服务器错误),但如果没有它们,则可以正常加载。现在它与它们一起工作,我认为这是因为您的代码在同一语句中没有html标记。这是正确的吗?如果是,你知道为什么会发生这种情况吗?
<?php
 // do all php stuff here
 $persons = /* get collection from database here */
?>

<html>
 <head>
 </head>
 <body>
  <ul id="ListOfPersons">
   <? foreach ($persons as $person): ?>
    <li>
      <?= $person["Name"] ?>
    </li>
   <? endforeach ?>
  </ul>
 </body>
</html>