我不太清楚如何解释我的问题...
这是我的sql请求:
SELECT DISTINCT CONCAT (nompropre, ' ', Auteur, ' de ', localite) AS auteur FROM Actes ORDER BY nompropre
将结果传递给表单中的选择,显示如下内容:
<option value=" seigneur de Witon"> seigneur de Witon</option>
<option value=" sénéchal de Hainaut"> sénéchal de Hainaut</option>
<option value=" voir-jurés de Tournai"> voir-jurés de Tournai</option>
<option value="Adalbéron évêque de Verdun">Adalbéron évêque de Verdun</option>
<option value="Adam évêque de Morinie">Adam évêque de Morinie</option>
问题是当发送该表单时,它应该导致以下sql查询,其中选择了上述选项的最后一行:
SELECT * FROM Actes, Bibliographie WHERE id = idBiblio AND nompropre = 'Adam' and Auteur = 'évêque' AND localite = 'Morinie';
我需要取消选择选项,知道nompropre和/或localite都可能是空字符串......
任何线索......?
答案 0 :(得分:0)
爆炸应该完成一项任务:
$str = ' seigneur de Witon';
$parts = explode (' ', $str);
echo '<pre>';
print_r($parts);
/*
returns:
Array
(
[0] =>
[1] => seigneur
[2] => de
[3] => Witon
)
OR if the name is given:
Array
(
[0] => Peter
[1] => seigneur
[2] => de
[3] => Witon
)
*/
SQL查询将是:
$sql = "SELECT * FROM Actes, Bibliographie WHERE id = idBiblio " . (!empty($parts[0]) ? "AND nompropre = '" . $parts[0] . "'" : '') . " and Auteur = '" . $parts[1] . "' AND localite = '" . $parts[3] . "'";
PS:不要忘记清理数据,对字符串使用mysqli_real_escape_string
函数。