php - 在搜索字段

时间:2016-05-11 18:42:31

标签: mysql

我一直在创建一个可以访问数据库的网站,我是php的新手。

那张桌子是 cliente table我希望在php中搜索“numSerieProduto_cliente'”,并在找到显示所有行的内容时。

例如:搜索1234,并显示:exemple

我创建的页面,我希望实现这种类型的搜索:

<?php

require_once("./include/membersite_config.php");

if(!$fgmembersite->CheckLogin())
{
    $fgmembersite->RedirectToURL("login.php");
    exit;
}
if ($_POST["Password"] == 'mypw'){
    echo "<a href='register.php'> Registar. </a><br></li>";
    echo "<a href='confirmreg.php'> Confirmar a Registar. </a><br></li>";
    echo "<a href='access-controlled.php'> Area de Trabalhador. </a><br></li>";
}else{
    header('Location:access-controlledlog.php');
}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
<head>
      <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
      <title> Area de Admenistrador </title>
      <link rel="STYLESHEET" type="text/css" href="style/fg_membersite.css">
</head>
<body>
<div id='fg_membersite_content'>
<p>
Logged in as: <?= $fgmembersite->UserFullName() ?>
</p>
<p>
<a href='login-home.php'>Home</a>
</p>
</div>
</body>
</html>

我该如何实现?

produto表的mysql代码:

CREATE TABLE IF NOT EXISTS `produto` (
  `id_produto` int(16) NOT NULL AUTO_INCREMENT,
  `numSerie_produto` int(128) NOT NULL,
  `nomeDoProduto_produto` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`id_produto`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

cliente表的mysql代码:

CREATE TABLE IF NOT EXISTS `cliente` (
  `id_cliente` int(16) NOT NULL AUTO_INCREMENT,
  `numServico_cliente` int(32) NOT NULL,
  `nome_cliente` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
  `morada_cliente` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
  `telefone_cliente` int(10) NOT NULL,
  `produto_cliente` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
  `numSerieProduto_cliente` int(128) NOT NULL,
  PRIMARY KEY (`id_cliente`,`numServico_cliente`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3 ;

1 个答案:

答案 0 :(得分:0)

首先,您需要通过php建立与数据库的连接,如此

<?php
$connection = new mysqli("DB_SERVER", "DB_USER", "DB_PASSWORD", "DATABASE_NAME");
?>

然后,您可以使用此连接构建数据库选择语句,如此

function getInfo(){
    global $connection; // This is only needed if you use require_once. see below
    $stmt = $connection->prepare("SELECT * FROM cliente");
    $stmt->execute();
    $stmt->close();
}

然后,您可以将该输出分配给这样的变量

$entries = getinfo();

然后因为它将是一个信息数组,你可以迭代这样的信息

foreach($entries as $DBentries){
   echo $DBentries['id_cliente'];
   echo $DBentries['numServico_cliente'];
   // et cetera.... for each column...
}

我还建议您将数据库信息和函数放在单独的文件中,然后将它们包含在require_once中。它使访问连接和功能变得更加容易,并且更加安全。

要构建您可以执行的数据表

<table>
<th>id_cliente</th>
<?php
foreach ($entries as $DBentries) {
echo "<tr>";
echo "<td>".$DBentries['id_cliente']."</td>";
echo "</tr>";
}
?>
</table>

此外,最佳做法是仅在select语句中选择所需的列,而不是使用&#39; *&#39;除非你确实需要每一列,否则使用通配符你可以选择像这样的多个表&#34;

SELECT column_name1,column_name2,column_name3 FROM TABLENAME;