Я не знаю, как объяснить мою проблему …
Это мой 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 могут быть пустыми строками …
Любые подсказки …?
Взрыв должен сделать задачу:
$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
функция для строк.
Других решений пока нет …