所以,我正在创建一个搜索并显示MySQL表数据库结果的系统,并且我试图弄清楚如何将结果存储在php变量中,以便我可以格式化和处理它而不是使用printf
函数。但是,它似乎并没有理解我在变量中的内容:
<?php
if(isset($_POST['submit']))
{
if(isset($_GET['go']))
{
if(preg_match("/[A-Z | a-z | 0-9]+/", $_POST['search-input']))
{
$searchcondition=$_POST['search-input'];
//connect to the database
$database = "mysql";
$hostname = "localhost";
$link = new mysqli($hostname, "root", "", $database);
//$link = mysqli_connect($hostname, "root", "", $database);
if (!$link)
{
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
exit;
}
$query1 = "SELECT `Title`, `Date` FROM `search-database` WHERE `Title` LIKE '%" . $searchcondition . "%' ";
//$query1 = "SELECT `ID`,`FirstName`, `LastName`, `Email`, `PhoneNumber` FROM `test` WHERE `FirstName` LIKE '%" . $searchcondition . "%' AND `Email` LIKE '%" . $searchcondition . "%' ";
if ($result = $link->query($query1))
{
/* fetch associative array */
while ($row = $result->fetch_assoc())
{
$string = '$row["Title"], $row["Date"]';
echo $string;
/* The $string variable above is not recognizing what I just put above. When I do no single quotes, it gives an error. When I do put single quotes, it prints out the actual characters "$row["Title"], $row["Date"]" rather than what the variables actually store.
here is the Original Code (which does work):
printf ("%s, %s, %s, %s, %s\n", $row["ID"], $row["FirstName"], $row["LastName"], $row["Email"], $row["PhoneNumber"]);
*/
}
/* free result set */
$result->free();
}
mysqli_close($link);
}
else
{
echo "<p>Please enter a search query</p>";
}
}
}
?>
上面的$ string变量无法识别我放在其中的内容。如果我没有输入单引号,则会显示错误。当我输入单引号时,会打印出实际字符$row["Title"]
,$row["Date"]
而不是实际存储的变量。
这是原始代码(有效):
printf ("%s, %s\n", $row["Title"], $row["Date"]);
如何让php显示与原始printf函数相同的内容,除非通过回显存储printf
内容的单独变量($ string),或者是否有更简单的方法来显示信息,仍然是能够轻松格式化吗?
答案 0 :(得分:1)
我只是发表评论,但我没有足够的分数。这还不够吗?
<?php
$string = $row["Title"] . ", " . $row["Date"];
echo $string;
?>
答案 1 :(得分:1)
你可以连接下面的任何变量。
while ($row = $result->fetch_assoc())
{
echo $string = $row["Title"].','. $row["Date"].'\n';
}
答案 2 :(得分:1)
如果您已经printf
,请考虑使用与printf
类似的sprintf,但将结果存储在变量中而不是将其打印出来:
<?php
....
$string = sprintf ("%s, %s\n", $row["Title"], $row["Date"]);
....
答案 3 :(得分:1)
在这种情况下不需要单引号。因为你需要&#34;,&#34;在Strings之间,你可以编写像这样的代码
$string = $row["Title"].",". $row["Date"];