-3

标题

我已经很好地设置了我的 wordpress 网站,但是我在我的数据库的 wp-post 表中做了一些额外的行。我添加了一个名为“periode”的行,但我不知道坐在 Dreamweaver 中时如何显示该行。

我在用着

<?php get_header(); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

        <h2><?php the_title(); ?></h2>

            <?php the_content(); ?>

            <?php wp_link_pages(array('before' => 'Pages: ', 'next_or_number' => 'number')); ?>

        <?php edit_post_link('Edit this entry.', '<p>', '</p>'); ?>

    <?php endwhile; endif; ?>

我想在标题和内容之间显示“句号”的行数据。any1 知道任何 php 代码来获取单页信息吗?

4

1 回答 1

1

好吧,您必须使用 post meta 来获取更多信息,但是如果您想这样做,那么这里是从 sql 获取数据以显示的完整方法。

必需:运行 PHP 和 MySQL 的服务器。如果您没有通过网络使用或测试,则需要在您的 PC 上安装 WAMP,在您的 Mac 上启用 Apache,或者在您的 Linux 机器上安装 Apache。所需技能:

创建 MySQL 数据库和表 基本 HTML:创建表单和表单元素 基本 PHP:创建变量 echo 语句

我们将通过创建一个真实世界的应用程序来探索这个主题。我们的目标是访问车辆(汽车)的 MySQL 数据库,通过它们的制造和/或出售/租赁可用性动态选择它们。创建你的 MySQL 数据库

您应该已经熟悉在服务器上创建 MySQL 数据库。请参阅其他教程和参考资料以获取具体帮助。w3schools.com 是一个很好的信息来源。

将您的数据库命名为“myDatabase”或您选择的任何其他名称。跟踪用于设置此数据库的用户名以及使用的密码。您还需要通常是 localhost 的服务器名称,但这取决于您的服务器/网络主机。如果您不确定,请查看他们的文档。创建一个新表

在此数据库中创建一个新表。将其命名为车辆或您选择的任何其他名称。现在,创建一个包含 5 个字段和 7 行的表。我创建了这样的 5 个字段:

field: increment, Type: int(1), Extra: auto_increment, Primary Key
field: make, Type: varchar(15), Index
field: model, Type: varchar(15)
field: year, Type: year(4)
field: availability, Type: varchar(5), Index

'make' 和 'availability' 字段已编入索引,以提高搜索效率。对于这种大小的表来说,这并不重要,但对于一个大表来说,它可以帮助提高性能。将数据插入字段。对于此示例,我的表如下所示:

增量 制造 车型年 可用性
1 福特嘉年华 2011 销售
2 福特野马 2011 销售
3 福特野马 2010 租赁
4 福特嘉年华 2010 租赁
5 雪佛兰伏特 2011 销售
6 雪佛兰伏特 2011 租赁
7 雪佛兰伏特 2010 租赁

创建您的网页

创建、命名和保存网页为 .html 或 .php,无论您喜欢哪个。此页面将包含一个带有单选按钮的表单,允许用户根据品牌(在本例中为福特或雪佛兰)和/或可用性(车辆是出售还是租赁)缩小对汽车的搜索范围. 创建带有单选按钮的表单

这将是一个简单的表格,有 2 个单选按钮组 - 一个选择车辆制造商,另一个选择车辆可用性。该表单将有一个提交按钮,该按钮将作为其发布到 php 页面“vehicles.php”的操作。您可以使用 CSS 随意设置样式。这是代码:

<form name="input" action="vehicles.php" method="post">
<fieldset>
<legend>Make you are looking for:</legend>
<input type="radio" name="make" value="ford" /> Ford
<input type="radio" name="make" value="chevy" /> Chevy
<input type="radio" name="make" value="all" checked /> All
</fieldset>
<fieldset>   
<legend>Looking to:</legend>    
<input type="radio" name="availability" value="sale" /> Buy
<input type="radio" name="availability" value="lease" /> Rent 
<input type="radio" name="availability" value="all" checked /> All 
</fieldset>
<input type="submit" value="Submit" />   
</form>

我们来看看表格

此提交的表单将发送值并触发文件“vehicles.php”。该文件将处理在此表单上单击的项目,并将查询 MySQL 数据库以返回请求的信息。

第一个单选按钮组被命名为“make”,以对应数据库表中的相同字段,可以选择的值与数据库表的“make”字段中的数据相同。换句话说,由于我们在数据库中有数据为“ford”和“chevy”,然后我们对按钮使用相同的区分大小写的值。'All' 按钮的值为 'all' 并且是一种特殊情况,我们稍后会看到。第二个单选按钮组名为“availability”,对应数据库表中的相同字段,其值与数据库表的“availability”字段中的数据相同(“sale”、“lease”和特殊情况“全部”)。

由于此表单将发布到“vehicles.php”,接下来让我们创建它。PHP 文件

创建一个新的空 php 文件并将其命名为“vehicles.php”。这个页面/文件需要完成几件事:

从单选按钮接收值 连接到数据库 根据从单选按钮传递的值查询数据库 打印出正确的信息

编写 PHP

为了访问数据库,我们需要用户名、密码、数据库名、服务器名和数据库表名。让我们首先将用户名、密码和数据库名称放入 php 变量中:

$username="myUserName";
$password="myPassWord";
$database="myDatabaseName";

我们可以通过将这些信息放在它自己的单独的 php 文件中,例如命名为“config.php”,从而使其更加安全。然后我们通过在主 php 文件中包含或要求它来访问它。如果放置在根文件夹之外,它会增加另一层安全性。

ob_start();
require("config.php");
ob_end_clean();

包装在命令中开始,然后结束并擦除(清理)输出缓冲(ob),我们也增加了一些安全问题。请查阅 PHP 资源以最好地满足您的安全需求。为请求创建一些变量

接下来我将创建一些变量以用作请求。这些将是从表单的 2 个单选按钮组发送的值。所以第一个,'$req' 将等于我们从'make'按钮组获得的值。第二个 $req2' 将等于从“可用性”单选按钮组中获得的值。

$req=$_REQUEST['make'];
$req2=$_REQUEST['availability'];

连接到数据库

我们接下来可以连接到数据库。任何打开的连接都必须在某个时候关闭!如果您需要复习 PHP 的这个或其他细节,请查阅其他 PHP 文档和手册。

mysql_connect("localhost",$username,$password);
mysql_select_db($database) or die( "Unable to select database");

“localhost”是数据库所在服务器的名称。这将因您的服务器而异。许多服务器将其定位为“本地主机”。其他将是特定地址,例如“sql28e8d34f.carrierzone.com”或其他内容。请咨询您的网络主机或服务器管理员以了解您的具体设置。

如果连接出现问题,您将看到消息“无法选择数据库”。选择要使用的表

在一个简单的场景中,您只需说明要在哪个数据库表中工作。在我们的例子中,我们正在使用“车辆”表。选择此表的简单代码(遍历每一行)如下所示:

$query="SELECT * FROM vehicles";

我们想要做的比这复杂一点。让我们来复习。我们想先看看选择了哪个“品牌”。如果选择了“ford”,我们只想将填写“make”字段的行视为“ford”。同样,如果选择了“chevy”,我们只想选择值为“chevy”的“make”字段。但是如果选择了“all”,那么我们确实要考虑所有行。

同样,如果选择了“购买”或“租赁”按钮,我们只想显示“购买”或“租赁”的行,如果选择了“全部”,则我们要考虑所有行。

仅从一个字段中进行选择也相当简单。例如,要只考虑'ford'的行,我们可以要求我们的查询从车辆表中选择所有行,其中字段'make'是'ford'。看起来像这样:

$query="SELECT * FROM vehicles WHERE make='ford'";

由于我们不知道将选择哪个“品牌”,因此我们无法对值进行硬编码。我们希望使用从表单中选择的按钮传递的值。请记住,我们将此值存储为 '$req',因此现在我们可以将此查询设为:

$query="SELECT * FROM vehicles WHERE make='$req'";

没那么糟糕。但是由于我们想检查 make 和可用性,我们可以使用一个查询,它使用 '$req' 来查找 'make' 和 '$req2' 来查找可用性:

$query="SELECT * FROM vehicles WHERE make='$req' AND availability='$req2'";

好的。仍然没有那么糟糕。但是现在如果为“全部”选择​​一个或两个按钮会发生什么?基本上,对于这 2 个单选按钮组,可能会发生 4 种不同的情况:

选择了特定的品牌并选择了特定的可用性 为“品牌”选择了“全部”,并选择了特定的可用性 为“可用性”选择了“全部” “制造”和“可用性”

可能还有其他方法可以处理这个问题。我选择将其作为一系列“if/else”条件句。这是处理这4个条件的代码:

if ($req!="all" && $req2!="all")  $query="SELECT * FROM vehicles WHERE make='$req' AND availability='$req2'";
else if($req=="all" && $req2!="all" ) $query="SELECT * FROM vehicles WHERE availability='$req2'";
else if($req!="all" && $req2=="all" ) $query="SELECT * FROM vehicles WHERE make='$req'";
else if($req=="all" || $req2=="all" ) $query="SELECT * FROM vehicles";

您可能会注意到所有这些条件实际上只是检查一个值是否设置为“全部”:

if(&req=='all') 

或者它是否被设置为其他东西(因此它不等于“全部”):

if(&req!='all') 

完成查询并关闭连接

以下 4 行标准代码用于完成查询并关闭连接。从中,我们了解哪些行包含我们要求的信息,哪些信息存储在变量“$result”中,以及该信息所在的行数,该信息存储在变量“$num”中。另外,请注意连接现在已关闭。请参阅 PHP 手册以进行进一步讨论。

$result=mysql_query($query);
$num=mysql_numrows($result);
mysql_query($result);
mysql_close();

使用此信息

我们现在可以实际使用这些信息了!我们需要做的是迭代(循环)包含所请求数据的行,并将其打印出来('echo' it,用 php 行话)。我们将使用“for”循环来完成此操作。您将看到其他人使用“while”循环来执行此操作。根据手头的情况,两者之间的差异可能是微妙的或深刻的。在这种情况下,这并不重要,所以任何一个都可以。

$i=0;
for ($i; $i < $num; $i++){
$f12=mysql_result($result,$i,"model");
$f13=mysql_result($result,$i,"year");
$f14=mysql_result($result,$i,"availability");

请注意,在第 2 行的左大括号中尚未关闭。它很快就会关闭。解释

创建了一个变量“$i”,并将其初始值设置为整数零。'for' 循环从 $i 等于 0 开始,并在 $i 小于 '$num' 的值(即来自查询的正确行数)时继续。每次迭代后,$i 增加 1($i++)。变量 $f12 设置为查询行中值为 $i 的“模型”的值。变量 $f13 设置为查询行中值为 $i 的“年”值。变量 $f14 设置为查询行中值为 $i 的“可用性”值。

将此打印到页面

剩下要做的就是将此信息打印到页面上。我们将通过连接(组合)三个变量(包括每个变量之间的空格)并在第三个变量之后添加换行符来做到这一点。第二行代码用一个右大括号来关闭“for”循环。

echo $f12." ".$f13." ".$f14." ";
}

这是完整的html代码:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Untitled Document</title>
</head>

<body>
<form name="input" action="vehicles.php" method="post">
<fieldset>
<legend>Make you are looking for:</legend>
<input type="radio" name="make" value="ford" /> Ford
<input type="radio" name="make" value="chevy" /> Chevy
<input type="radio" name="make" value="all" checked /> All
</fieldset>
<fieldset>   
<legend>Looking to:</legend>    
<input type="radio" name="availability" value="sale" /> Buy
<input type="radio" name="availability" value="lease" /> Lease 
<input type="radio" name="availability" value="all" checked /> All 
</fieldset>
<input type="submit" value="Submit" />   
</form>
</body>
</html>

这是“vehicle.php”的完整代码

<?php
ob_start();
require("config.php");
ob_end_clean();

$req=$_REQUEST['make'];
$req2=$_REQUEST['availability'];

mysql_connect("localhost",$username,$password);
mysql_select_db($database) or die( "Unable to select database");

if ($req!="all" && $req2!="all")  $query="SELECT * FROM vehicles WHERE make='$req' AND availability='$req2'";
else if($req=="all" && $req2!="all" ) $query="SELECT * FROM vehicles WHERE availability='$req2'";
else if($req!="all" && $req2=="all" ) $query="SELECT * FROM vehicles WHERE make='$req'";
else if($req=="all" || $req2=="all" ) $query="SELECT * FROM vehicles";

$result=mysql_query($query);
$num=mysql_numrows($result);

mysql_query($result);
mysql_close();

$i=0;

for ($i; $i < $num; $i++){
$f12=mysql_result($result,$i,"model");
$f13=mysql_result($result,$i,"year");
$f14=mysql_result($result,$i,"availability");

echo $f12." ".$f13." ".$f14."<br />";
}
?>

这是“config.php”的完整代码,其中包含您的数据库密码等:

<?php

$username="myUserName";
$password="myPassWord";
$database="myDatabaseName";


?>
于 2013-03-17T07:53:44.687 回答