~~NOCACHE~~
====== 5 букв, версия 3 ======
Буквы можно указывать подряд, без разделителей и пробелов.
Использованы слова из [[https://shra.ru/2017/03/baza-dannykh-russkikh-slov-sushhestvitelnye/|базы данных.]]\\
[[cross2|Начать сначала]]
===== Укажите буквы =====
//echo "
---
";
//print_r($_POST);
//echo "
---
";
if (isset($_POST['submit'])) {
if (isset($_POST['clear'])) {
$wExists = "";
$wAbsent = "";
$w1_is = "";
$w2_is = "";
$w3_is = "";
$w4_is = "";
$w5_is = "";
$w1_abs = "";
$w2_abs = "";
$w3_abs = "";
$w4_abs = "";
$w5_abs = "";
$do_search = 0;
} else {
$wAbsent = preg_replace('/[^а-я]/iu', '', mb_strtolower($_POST['wAbsent']));
$w1_is = preg_replace('/[^а-я]/iu', '', mb_strtolower(mb_substr($_POST['w1_is'], 0 , 1)));
$w2_is = preg_replace('/[^а-я]/iu', '', mb_strtolower(mb_substr($_POST['w2_is'], 0 , 1)));
$w3_is = preg_replace('/[^а-я]/iu', '', mb_strtolower(mb_substr($_POST['w3_is'], 0 , 1)));
$w4_is = preg_replace('/[^а-я]/iu', '', mb_strtolower(mb_substr($_POST['w4_is'], 0 , 1)));
$w5_is = preg_replace('/[^а-я]/iu', '', mb_strtolower(mb_substr($_POST['w5_is'], 0 , 1)));
$w1_abs = preg_replace('/[^а-я]/iu', '', mb_strtolower($_POST['w1_abs']));
$w2_abs = preg_replace('/[^а-я]/iu', '', mb_strtolower($_POST['w2_abs']));
$w3_abs = preg_replace('/[^а-я]/iu', '', mb_strtolower($_POST['w3_abs']));
$w4_abs = preg_replace('/[^а-я]/iu', '', mb_strtolower($_POST['w4_abs']));
$w5_abs = preg_replace('/[^а-я]/iu', '', mb_strtolower($_POST['w5_abs']));
$wExists = $w1_is.$w2_is.$w3_is.$w4_is.$w5_is.$w1_abs.$w2_abs.$w3_abs.$w4_abs.$w5_abs;
$do_search = 1;
}
echo '';
echo '';
echo '';
echo '';
echo '';
echo '';
echo '';
echo '';
echo '';
echo '';
echo '';
echo '';
$wExistsSQL = "";
if (mb_strlen($wExists) > 0) {
$chars = mb_str_split($wExists);
foreach($chars as $char) {
$wExistsSQL = $wExistsSQL . " AND LOWER(word) LIKE '%" . $char . "%'";
}
}
$wAbsentSQL = "";
if (mb_strlen($wAbsent) > 0) {
$chars = mb_str_split($wAbsent);
foreach($chars as $char) {
$wAbsentSQL = $wAbsentSQL . " AND LOWER(word) NOT LIKE '%" . $char . "%'";
}
}
if (mb_strlen($w1_abs) > 0) {
$chars = mb_str_split($w1_abs);
foreach($chars as $char) {
$wAbsentSQL = $wAbsentSQL . " AND SUBSTR(word, 1, 1) <> '" . $char . "'";
}
}
if (mb_strlen($w2_abs) > 0) {
$chars = mb_str_split($w2_abs);
foreach($chars as $char) {
$wAbsentSQL = $wAbsentSQL . " AND SUBSTR(word, 2, 1) <> '" . $char . "'";
}
}
if (mb_strlen($w3_abs) > 0) {
$chars = mb_str_split($w3_abs);
foreach($chars as $char) {
$wAbsentSQL = $wAbsentSQL . " AND SUBSTR(word, 3, 1) <> '" . $char . "'";
}
}
if (mb_strlen($w4_abs) > 0) {
$chars = mb_str_split($w4_abs);
foreach($chars as $char) {
$wAbsentSQL = $wAbsentSQL . " AND SUBSTR(word, 4, 1) <> '" . $char . "'";
}
}
if (mb_strlen($w5_abs) > 0) {
$chars = mb_str_split($w5_abs);
foreach($chars as $char) {
$wAbsentSQL = $wAbsentSQL . " AND SUBSTR(word, 5, 1) <> '" . $char . "'";
}
}
if (mb_strlen($w1_is) > 0) { $wExistsSQL = $wExistsSQL . " AND SUBSTR(LOWER(word), 1, 1) = '" . $w1_is . "'"; }
if (mb_strlen($w2_is) > 0) { $wExistsSQL = $wExistsSQL . " AND SUBSTR(LOWER(word), 2, 1) = '" . $w2_is . "'"; }
if (mb_strlen($w3_is) > 0) { $wExistsSQL = $wExistsSQL . " AND SUBSTR(LOWER(word), 3, 1) = '" . $w3_is . "'"; }
if (mb_strlen($w4_is) > 0) { $wExistsSQL = $wExistsSQL . " AND SUBSTR(LOWER(word), 4, 1) = '" . $w4_is . "'"; }
if (mb_strlen($w5_is) > 0) { $wExistsSQL = $wExistsSQL . " AND SUBSTR(LOWER(word), 5, 1) = '" . $w5_is . "'"; }
if ($do_search == 1) {
$conn = new mysqli("localhost", "words", "words", "words");
$conn->set_charset("utf8");
// Check connection
if ($conn->connect_error) {
die("Ошибка соединения с базой данных, продолжение не возможно.
Ошибка для разработчика: " . $conn->connect_error);
}
$sql = "";
$sql = $sql . "SELECT * FROM nouns" . " ";
$sql = $sql . "WHERE CHAR_LENGTH(word) = 5" . " ";
$sql = $sql . " AND word NOT LIKE '%-%'" . " ";
$sql = $sql . " " . $wExistsSQL;
$sql = $sql . " " . $wAbsentSQL;
//$sql = $sql . " " . "ORDER BY rand()";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
echo "";
echo "";
echo "| Найдено " . $result->num_rows . " слов | ";
echo " | ";
echo "
";
while($row = $result->fetch_assoc()) {
if ($row["soul"] == 1) { $sup_text = " | одушевленный"; }
if ($row["soul"] == 0) { $sup_text = " | неодушевленный"; }
if (($row["soul"] <> 0) && ($row["soul"] <> 1)) { $sup_text = ""; }
if ($row["wcase"] <> "") { $sup_text = " | " . $row["wcase"] . $sup_text; }
$sup_text = $row["gender"] . $sup_text;
echo "";
echo "| " . mb_strtolower($row["word"]) . " | ";
echo "" . "" . $sup_text . "" . " | ";
echo "
";
}
echo "
";
} else {
echo "По текущему фильтру данных не найдено.";
}
$conn->close();
} else {
echo "Фильтр не установлен, данные не отображаются
";
}
} else {
echo "Фильтр не установлен, данные не отображаются
";
}
----
**Просмотров:** сегодня {{counter|today}} шт., вчера {{counter|yesterday}} шт., всего {{counter|total}} шт.