Инструменты пользователя

Инструменты сайта


cross2

Это старая версия документа!


5 букв, весрия 2

Note: Буквы можно указывать подряд, без разделителей и пробелов.

Использованы слова из базы данных. Начать сначала ===== Укажите буквы ===== <html> <!– HTML Form for Filtering –> <form method=«post» action=«#»> <table><tr><th>Фильтр букв</th><th>Присутствуют</th><th>Отсутствуют</th></tr> <tr><td>Любое место</td><td><input type=«text» name=«wExists» id=«wExists» size=«12»></td><td><input type=«text» name=«wAbsent» id=«wAbsent» size=«12»> <tr><td>1-я буква точно</td><td><input type=«text» name=«w1_is» id=«w1_is» size=«12»></td><td><input type=«text» name=«w1_abs» id=«w1_abs» size=«12»> <tr><td>2-я буква точно</td><td><input type=«text» name=«w2_is» id=«w2_is» size=«12»></td><td><input type=«text» name=«w2_abs» id=«w2_abs» size=«12»> <tr><td>3-я буква точно</td><td><input type=«text» name=«w3_is» id=«w3_is» size=«12»></td><td><input type=«text» name=«w3_abs» id=«w3_abs» size=«12»> <tr><td>4-я буква точно</td><td><input type=«text» name=«w4_is» id=«w4_is» size=«12»></td><td><input type=«text» name=«w4_abs» id=«w4_abs» size=«12»> <tr><td>5-я буква точно</td><td><input type=«text» name=«w5_is» id=«w5_is» size=«12»></td><td><input type=«text» name=«w5_abs» id=«w5_abs» size=«12»> <tr><td>&nbsp;</td><td><input type=«submit» name=«submit» value=«Обновить список»></td><td><input type=«submit» name=«clear» value=«Очистить фильтр»></td></tr> </table> </form> </html> <php> echo «<br>—<br>»; print_r($_POST); echo «<br>—<br>»;

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 {
    $wExists = preg_replace('/[^а-я]/iu', '', mb_strtolower($_POST['wExists']));
    $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']));
    
    $do_search = 1;
    
  }
  
  echo '<script>document.getElementById("wExists").value = "' . $wExists . '"</script>';
  echo '<script>document.getElementById("wAbsent").value = "' . $wAbsent . '"</script>';
  
  echo '<script>document.getElementById("w1_is").value = "' . $w1_is . '"</script>';
  echo '<script>document.getElementById("w2_is").value = "' . $w2_is . '"</script>';
  echo '<script>document.getElementById("w3_is").value = "' . $w3_is . '"</script>';
  echo '<script>document.getElementById("w4_is").value = "' . $w4_is . '"</script>';
  echo '<script>document.getElementById("w5_is").value = "' . $w5_is . '"</script>';
  
  echo '<script>document.getElementById("w1_abs").value = "' . $w1_abs . '"</script>';
  echo '<script>document.getElementById("w2_abs").value = "' . $w2_abs . '"</script>';
  echo '<script>document.getElementById("w3_abs").value = "' . $w3_abs . '"</script>';
  echo '<script>document.getElementById("w4_abs").value = "' . $w4_abs . '"</script>';
  echo '<script>document.getElementById("w5_abs").value = "' . $w5_abs . '"</script>';
  
  $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("Ошибка соединения с базой данных, продолжение не возможно.<br>Ошибка для разработчика: " . $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 "<table>";
     echo "<tr>";
     echo "<th>Найдено " . $result->num_rows . " слов</th>";
     echo "<th>&nbsp;</th>";
     echo "</tr>";
     
     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 "<tr>";
       echo "<td><font style='font-size: 16px; font-family:monospace'>" . mb_strtolower($row["word"]) . "</font></td>";
       echo "<td>" . "<small>" . $sup_text . "</small>" . "</td>";
       echo "</tr>";
       
     }
     
     echo "</table>";
     
  } else {
     
     echo "По текущему фильтру данных не найдено.";
     
  }
  $conn->close();
  } else {
    
    echo "Фильтр не установлен, данные не отображаются<br>";
    
  }

} else {

  echo "Фильтр не установлен, данные не отображаются<br>";

}

</php>


Просмотров: сегодня 1 шт., вчера 2 шт., всего 67 шт.

cross2.1715533324.txt.gz · Последнее изменение: 2024/05/12 20:02 — super