PHP MYSQL选择邮政编码或customerid或任何内容
大家好,很抱歉我的英语太懒了^^!我想要一个SELECT for a searchform来搜索john doe的zipcode 1234示例。但是当我用1234搜索john doe时,结果是customerid为1234的客户。那不好,但我想,我走对了路。我怎样才能修好它?好的,这是我的初学者代码,我希望你们能笑一笑,你们能帮助我把这个代码编写成我想要的D非常感谢你们,伙计们PHP MYSQL选择邮政编码或customerid或任何内容,php,mysql,select,Php,Mysql,Select,大家好,很抱歉我的英语太懒了^^!我想要一个SELECT for a searchform来搜索john doe的zipcode 1234示例。但是当我用1234搜索john doe时,结果是customerid为1234的客户。那不好,但我想,我走对了路。我怎样才能修好它?好的,这是我的初学者代码,我希望你们能笑一笑,你们能帮助我把这个代码编写成我想要的D非常感谢你们,伙计们 <table class="table table-striped" > <p>
<table class="table table-striped" >
<p>
<tr>
<th>Kundennummer</th>
<th>Reklamationsnummer</th>
<th>Firma</th>
<th>Nachname</th>
<th>Vorname</th>
<th>Straße</th>
<th>Nr</th>
<th>Plz</th>
<th>Ort</th>
<th>Telefon</th>
<th>Mail</th>
<tr>
<?php
error_reporting(-1);
ini_set('display_errors', true);
include "config.php";
$kdnr = mysqli_real_escape_string($mysqli, $_GET['kdnr']);
$reklamationsnummer = mysqli_real_escape_string($mysqli, $_GET['reklamationsnummer']);
$firma = mysqli_real_escape_string($mysqli, $_GET['firma']);
$nachname = mysqli_real_escape_string($mysqli, $_GET['nachname']);
$vorname = mysqli_real_escape_string($mysqli, $_GET['vorname']);
$street = mysqli_real_escape_string($mysqli, $_GET['street']);
$hausnummer = mysqli_real_escape_string($mysqli, $_GET['hausnummer']);
$postleitzahl = mysqli_real_escape_string($mysqli, $_GET['postleitzahl']);
$ort = mysqli_real_escape_string($mysqli, $_GET['ort']);
$telefon = mysqli_real_escape_string($mysqli, $_GET['telefon']);
$mail = mysqli_real_escape_string($mysqli, $_GET['mail']);
$result = $mysqli->query("SELECT kdnr, reklamationsnummer, firma, nachname, vorname, street, hausnummer, postleitzahl, ort, telefon , mail
FROM kundentest
WHERE
kdnr = '".$kdnr."' XOR
reklamationsnummer = '".$reklamationsnummer."' XOR
firma = '".$firma."' XOR
nachname = '".$nachname."' XOR
vorname = '".$vorname."' XOR
street = '".$street."' XOR
hausnummer = '".$hausnummer."' XOR
postleitzahl = '".$postleitzahl."' XOR
ort = '".$ort."' XOR
telefon = '".$telefon."' XOR
mail = '".$mail."' ");
while ($row = $result->fetch_assoc()):
?>
<tr>
<td><?php echo $row['kdnr']; ?></td>
<td><?php echo $row['reklamationsnummer']; ?></td>
<td><?php echo $row['firma']; ?></td>
<td><?php echo $row['nachname']; ?></td>
<td><?php echo $row['vorname']; ?></td>
<td><?php echo $row['street']; ?></td>
<td><?php echo $row['hausnummer']; ?></td>
<td><?php echo $row['postleitzahl']; ?></td>
<td><?php echo $row['ort']; ?></td>
<td><?php echo $row['telefon']; ?></td>
<td><?php echo $row['mail']; ?></td>
</tr>
<?php
endwhile;
?>
</table>
<table>
<tr>
<th><a class="btn btn-info" href="index.php" role="button">zurück zur Suche</a></th>
</tr>
</table>
我想我不理解您的疑虑,但是如果您创建一个存储过程来控制它,可能会更好。 如果有邮政编码为1234的客户,请返回,不要搜索customerid 或者 更改查询,以不查找customerid
关于英语也很抱歉=我想您需要某种动态查询字符串生成。 尝试替换从include config.php开始的片段;致:
如果您有任何问题,欢迎垂询。不要相信mysqli\u real\u escape\u字符串可以正确地转义您的输入!既然您的Colun不是英语,我们怎么知道哪一个是customerid列?你能翻译一下列名吗。。。。hahahahahahahaha@Mr.Llama,可信与否,使用real_escape会使代码更混乱,查询更难编写@devando,我郑重推荐使用PDO。命名占位符允许代码比?ones.kdnr-kunden numer-client numberNice试图通过一个数组,而不仅仅是一个巨大的字符串来解决这个问题。致命错误:在C:\xampp\htdocs\searchengine.php的第149行,即$stmt->bind_param's',$param{$i},只有变量可以通过引用传递;解析错误:语法错误,在C:\xampp\htdocs\searchengine.php的第146行出现意外的“$stmt”Tu变量解析错误:语法错误,在C:\xampp\htdocs\searchengine.php的第173行出现意外的“endwhile”Tu掼u掼u掼u掼u掼u掼u掼掼掼2553,亚历克斯?@devando frist:我的代码没有结尾:-第二:是的,PDO比imho好得多
include "config.php";
$query = "SELECT kdnr, reklamationsnummer, firma, nachname, vorname, street, hausnummer, postleitzahl, ort, telefon , mail
FROM kundentest ";
$search_fields = array('kdnr',
'reklamationsnummer',
'firma',
'nachname',
'vorname',
'street',
'hausnummer',
'postleitzahl',
'ort',
'telefon',
'mail'
);
$first = true;
$params = array();
foreach ($search_fields as $column) {
if(isset($_GET[$column])) {
if ($first) {
$query.='WHERE ';
$first = false;
} else {
$query.=' AND ';
}
$query.= $column.' = ? ';
$params[]=$_GET[$column];
}
}
if ($stmt = $mysqli->prepare($query)) {
$i=0;
foreach($params as $param) {
${'param'.++$i} = $param;
$stmt->bind_param('s', ${'param'.$i});
}
$stmt->execute();
/* bind result variables */
$stmt->bind_result($kdnr, $reklamationsnummer, $firma, $nachname, $vorname, $street, $hausnummer, $postleitzahl, $ort, $telefon , $mail);
while ($stmt->fetch()) { ?>
<tr>
<td><?= $kdnr ?></td>
<td><?= $reklamationsnummer ?></td>
<td><?= $firma ?></td>
<td><?= $nachname ?></td>
<td><?= $vorname ?></td>
<td><?= $street ?></td>
<td><?= $hausnummer ?></td>
<td><?= $postleitzahl ?></td>
<td><?= $ort ?></td>
<td><?= $telefon ?></td>
<td><?= $mail ?></td>
</tr>
<?php }
}