i
Полезная информация
Свернуть
29.04.2024
ruensvdefrptesitzharnl

Зачем я выкладываю это сюда, сию минуту уберу...

Зачем я выкладываю это сюда, сию минуту уберу...

 

<?php $data = $_POST;
require_once('db.php');
require_once('global_var.php');
require_once('Functions.php');
?>
<?php
//обозначает строку: но почему эта переменная больше нигде не упоминается?
$str = ' Съешь же Ещё этих мягких французских Булок да выпей Чаю';
// функция поиска слова. Что значит $data?
function word_search($data) { // переменная массив слов = разбивает строку с помощью разделителя $array_words = explode(' ', $data); // перебор массива пока ключи массива (как он работает?) больше или равно $value это просто переменная здесь а не value в php - это значение вводимых данных пользователем в поле ввода foreach ($array_words as $key => $value) { // если ключ не равен нулю if ($key !== 0) { //mb_substr — Возвращает часть строки $temp = mb_substr($value, 0, 1, 'utf-8'); // mb_strtoupper — Сделать строку прописной Если строка сделанная прописной не равна части строки? if(mb_strtoupper($temp, 'utf-8') !== $temp) { // нижний регистр // $result['lower_case'][] = $value; echo ''; } else { // верхний регистр // $result['upper_case'][] = $value; $result[' '][] = $value; global $link; $sql = "INSERT INTO `Name_text`(`Id_Name`, `Name`) VALUES (".$Id.", ".$value.")"; $res = mysqli_query($link, $sql); $data = mysqli_fetch_all($res, MYSQLI_ASSOC); } } } return $result;
}
// echo '<pre>Строка: ' . var_export($str, 1) . '</pre>';
//var_export — Выводит или возвращает интерпретируемое строковое представление переменной
echo ' ' . var_export(word_search($str), 1) . '</pre>';
?>

 

11:16
89
0
Мария Фомальгаут Мария Фомальгаут 9 месяцев назад #
Просто. Вопрос на засыпку. Крик души. Может, кто знает. Как, черт возьми, вставить этот грёбаный массив в таблицу. Программа ищет слова с большой буквы — и НЕ ЗАНОСИТ их в таблицу. Неделю не могу добиться от преподавателя вразумительного ответа — это требует сложных дополнительных действий или это элементарное действие в PHP+MYSQL?
Если сложно, уберу сию минуту. Просто зае..., что не могу получить элементарный ответ — это требует сложных действий или тут стандартная операция?
0
Aagira Aagira 9 месяцев назад #
Дебажить надо. Смотреть на каждом этапе что выходит и как заносится.
0
Aagira Aagira 9 месяцев назад #
Может соскакивать на любом этапе, у меня в таких случаях чаще всего возникает ошибка, если я ставлю отрицательное условие, при котором действие не осуществляется, и программа каким-то образом подпадает под это условие. Поэтому для начала выведи на экран что-нибудь в
  1.  
  2.  
  3. if(mb_strtoupper($temp, 'utf-8') !== $temp) {
  4. // нижний регистр
  5. // $result['lower_case'][] = $value;
  6. echo '';
  7. }
  8.  

Вместо пустого эха какую-нибудь фразу. А в условии после else, соответственно, эхом другую фразу. И посмотри, какая из них выскочит.
0
Мария Фомальгаут Мария Фомальгаут 9 месяцев назад #
Тут не ошибка, тут как. Есть программа поиска слов с большой буквы и вывода этих слов на экран. Работает. Я пытаюсь подставить, чтобы не просто выводила, а заносила в таблицу. Пустое эхо вводила — работает. После условия вставила команду вставить в таблицу конкретно что-нибудь конкретное — «1», «Булок» — работает. А прошу занести $value, это вроде массив — ни фига
0
Мария Фомальгаут Мария Фомальгаут 9 месяцев назад #
меняла буквы в переменных, смотрела, как отреагирует, нашла, где какие команды, прочитала про них. А что еще можно сделать?
0
Aagira Aagira 9 месяцев назад #
Я не знаю, какой оно текст берет. Смотри ниже.
0
Aagira Aagira 9 месяцев назад #
  1.  
  2. //обозначает строку: но почему эта переменная больше нигде не упоминается?
  3. $str = ' Съешь же Ещё этих мягких французских Булок да выпей Чаю';
  4. // функция поиска слова. Что значит $data?
  5. function word_search($data) {
  6. // переменная массив слов = разбивает строку с помощью разделителя
  7. $array_words = explode(' ', $data);


$data = $_POST; — очевидно, берет строку из какой-то формы для ввода.

Вместо $data поставь везде в выделенной мною части кода $str, и программа будет брать слова из строки про булки. Естественно, это следует делать только для теста.
0
Мария Фомальгаут Мария Фомальгаут 9 месяцев назад #
Так программа вроде и так берет слова из строки про булки…
$str = ' Съешь же Ещё этих мягких французских Булок да выпей Чаю';
// функция поиска слова. Что значит $data?
function word_search($str) {
// переменная массив слов = разбивает строку с помощью разделителя
$array_words = explode(' ', $str);

array ( ' ' => array ( 0 => 'Съешь', 1 => 'Ещё', 2 => 'Булок', 3 => 'Чаю', )

вот так
0
Aagira Aagira 9 месяцев назад #
Ты меня запутала. Берет, или не берет? какие именно результаты?
0
Мария Фомальгаут Мария Фомальгаут 9 месяцев назад #
Берет про булки и при стр и при дата
0
Aagira Aagira 9 месяцев назад #
Странно, ну ладно, значит, где-то еще загоняет в пост ту же фразу. Можно попробовать поменять в стр фразу, чтобы проверить их связь. Но это сейчас не главное.
0
Мария Фомальгаут Мария Фомальгаут 9 месяцев назад #
менять в стр фразу, выдаст другую фразу стр
0
Aagira Aagira 9 месяцев назад #
Просто выведи на экран внутри foreach:

  1.  
  2. echo $key;
  3. echo $value;
  4.  


Что покажет?
0
Мария Фомальгаут Мария Фомальгаут 9 месяцев назад #
echo $key;

0
1
2
3
4
5
6
7
8
9
10
echo $value;
СъешьжеЕщёэтихмягкихфранцузскихБулокдавыпейЧаю
0
Aagira Aagira 9 месяцев назад #
Так, значения не пустые, все как должно быть. Давай над этой строкой поизгаляемся.
  1. $sql = "INSERT INTO `Name_text`(`Id_Name`, `Name`) VALUES (".$Id.", ".$value.")";
  2.  


поменяем значение:

  1. $sql = "INSERT INTO `Name_text`(`Id_Name`, `Name`) VALUES (".$key.", ".$value.")";


А то я что-то в коде не вижу переменной $Id, но это, видимо, с недосыпу))
0
Aagira Aagira 9 месяцев назад #
То есть, я понимаю, что айди там должен быть уникальным, и если таблица не пуста, то не выйдет. Но пока надо добиться, чтоб переменная значения вставлялась.
0
Мария Фомальгаут Мария Фомальгаут 9 месяцев назад #
Таблица пуста, айди уникальный
0
Мария Фомальгаут Мария Фомальгаут 9 месяцев назад #
в таблицу все равно не заносит
0
Aagira Aagira 9 месяцев назад #
А если переменные напрямую указать какие должны быть — занесет? Не значения в sql, а именно переменные вбить гвоздями. А то, может, где-нибудь тупо в кавычках не так что.
0
Мария Фомальгаут Мария Фомальгаут 9 месяцев назад #
Да, если напрямую указать, занесет
$sql = «INSERT INTO `Name_text`(`Id_Name`, `Name`) VALUES ('1', 'чаю')»;
0
Aagira Aagira 9 месяцев назад #
нет. я говорю, напрямую — это указать над запросом типа $value — Чаю.
Потому что есть два варианта. а) где-то недостает кавычек в sql, б) не ставятся айди правильно. Ну и проверка значений, о чем внизу речь, должна вывести результат.
0
Мария Фомальгаут Мария Фомальгаут 9 месяцев назад #
$value — Чаю.
Не увидит. реагирует на цифры, а не на буквы
0
Aagira Aagira 9 месяцев назад #
Идем в скайп. А то я уже не пойму ничего.
0
Aagira Aagira 9 месяцев назад #
else {
// верхний регистр
// $result['upper_case'][] = $value;
$result[' '][] = $value;
global $link;
$sql = «INSERT INTO `Name_text`(`Id_Name`, `Name`) VALUES (».$Id.", ".$value.")";
$res = mysqli_query($link, $sql);
$data = mysqli_fetch_all($res, MYSQLI_ASSOC);
}

Внутрь этого перемести проверку:

  1. echo $key;
  2. echo $value;


Что выйдет?
0
Мария Фомальгаут Мария Фомальгаут 9 месяцев назад #
реагирует. Поскольку это кусок для слов с большой буквы, он выводит:
1Съешь3Ещё7Булок10Чаю
просто
echo $value;
СъешьЕщёБулокЧаю
0
Aagira Aagira 9 месяцев назад #
Отлично. Значит, что-то с айди. Попробуй вбить в запросе айди напрямую (1), а переменную $value оставить без изменения.
0
Мария Фомальгаут Мария Фомальгаут 9 месяцев назад #
Работающий код:

  1. <?php
  2. $data = $_POST;
  3. require_once('db.php');
  4. require_once('global_var.php');
  5. require_once('Functions.php');
  6. ?>
  7.  
  8.  
  9. <?php
  10. //обозначает строку: но почему эта переменная больше нигде не упоминается?
  11. $str = ' Съешь же Ещё этих мягких французских Булок да выпей Чаю';
  12. // функция поиска слова. Что значит $data?
  13. function word_search($data) {
  14. // переменная массив слов = разбивает строку с помощью разделителя
  15. $array_words = explode(' ', $data);
  16. // перебор массива пока ключи массива (как он работает?) больше или равно $value это просто переменная здесь а не value в php - это значение вводимых данных пользователем в поле ввода
  17. foreach ($array_words as $key => $value) {
  18. // если ключ не равен нулю
  19. if ($key !== 0) {
  20. //mb_substr — Возвращает часть строки
  21. $temp = mb_substr($value, 0, 1, 'utf-8');
  22. // mb_strtoupper — Сделать строку прописной Если строка сделанная прописной не равна части строки?
  23. if(mb_strtoupper($temp, 'utf-8') !== $temp) {
  24. // нижний регистр
  25. // $result['lower_case'][] = $value;
  26. echo '';
  27. }
  28. else {
  29. // верхний регистр
  30. // $result['upper_case'][] = $value;
  31. $result[' '][] = $value;
  32. global $link;
  33. $sql = "INSERT INTO `Name_text`(`Id_Name`, `Name`) VALUES ('".$id."', '".$value."')";
  34. $res = mysqli_query($link, $sql);
  35. $data = mysqli_fetch_all($res, MYSQLI_ASSOC);
  36. }
  37.  
  38. }
  39. }
  40.  
  41. return $result;
  42. }
  43.  
  44. // echo '<pre>Строка: ' . var_export($str, 1) . '</pre>';
  45. //var_export — Выводит или возвращает интерпретируемое строковое представление переменной
  46. echo ' ' . var_export(word_search($str), 1) . '</pre>';
  47.  
  48.  
  49.  
  50.  
  51. ?>
0
Aagira Aagira 9 месяцев назад #
Поясню, чтоб не забылось: mysql вносит значение только если оно в кавычках, поэтому, если значение задано переменной, то оно тоже требует дополнительной пары кавычек. В данном случае — прямые одинарные внутри текста запроса за прямыми двойными, которые разграничивают текст запроса и переменные.

Похожие темы:

В тишине, внезапно наступившей возле костра, отчетливо послышались чьи-то тяжелые шаги и бряцанье же...
13:39
19
Внимание-внимание участникам сайта!   Пожалуйста, ставьте теги внизу публикаций. Это важно не...
Программа ищет в тексте слова. Существительные и прилагательные.  Делает она это так: берет сл...
- Такое дело, мужики, - почти вскрикнул Счастливчик Кид, вскочив со стула. - Прошла инфа, что из кон...
22:34
5

Все представленные на сайте материалы принадлежат их авторам.

За содержание материалов администрация ответственности не несет.