mysql concat和de-concat

时间:2015-05-07 08:45:44

标签: php mysql concat

我不太清楚如何解释我的问题...

这是我的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都可能是空字符串......

任何线索......?

1 个答案:

答案 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函数。