Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » MySql/PHP: общие вопросы

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

Открыть новую тему     Написать ответ в эту тему

Samovarov



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vladsvn

Цитата:
У меня такая таблица и есть, только без ID - это здесь не требуется.
 

Ну, рекомендуют автоинкрементное поле ставить всегда - кто я чтоб спорить Это связано с оптимизациями работы баз данных.
 
 
Тогда я не понял смысла этой таблицы, если таблица рейтинга у вас есть. Думал это рейтнг.

Всего записей: 357 | Зарегистр. 20-03-2002 | Отправлено: 23:29 30-07-2022
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Тогда я не понял смысла этой таблицы, если таблица рейтинга у вас есть. Думал это рейтнг.
Это таблица, в которой будет храниться контент. Некоторые поля еще добавятся.
 

Цитата:
Ну, рекомендуют автоинкрементное поле ставить всегда - кто я чтоб спорить Это связано с оптимизациями работы баз данных.
Честно говоря, таблицу без автоинкремента я сам впервые увидел, и это не моё изобретение.
Коли это связано с оптимизацией, то, пожалуй, надо это поле добавить.
Спасибо за совет!
 

Всего записей: 342 | Зарегистр. 07-09-2016 | Отправлено: 23:53 30-07-2022 | Исправлено: Vladsvn, 23:53 30-07-2022
Samovarov



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vladsvn

Цитата:
Коли это связано с оптимизацией, то, пожалуй, надо это поле добавить.

Если нет - не надо  
 

Цитата:
Это таблица, в которой будет храниться контент.

Какой контент?
 
Может лучше посмотрите уже существующие варианты.
 
Описание структуры базы данных WordPress
 
 

Всего записей: 357 | Зарегистр. 20-03-2002 | Отправлено: 00:03 31-07-2022
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Может лучше посмотрите уже существующие варианты.
Спасибо за ссылку, но, на мой взгляд, лучше делать то, что тебе конкретно нужно, понимая как всё это будет работать.  

Всего записей: 342 | Зарегистр. 07-09-2016 | Отправлено: 00:25 31-07-2022
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Описание структуры базы данных WordPress
Я не сразу оценил полезность Вашей ссылки, а это кладезь полезной информации. Я был неправ. Спасибо!

Всего записей: 342 | Зарегистр. 07-09-2016 | Отправлено: 11:29 31-07-2022
Samovarov



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vladsvn

Цитата:
Я не сразу оценил полезность Вашей ссылки

На самом деле, это просто один из вариантов. И он не самый удачный. Например в данной схеме проблема с  мультиязычностью. Есть разные подходы и архитектуры. Рекомендую поискать разные и понять разницу в подходах.
 
Добавлено:
НУ, чуть что, не против пробираться вместе с вами.  Так что если найдете что интересное - выкладывайте. Посмотрим вместе.

Всего записей: 357 | Зарегистр. 20-03-2002 | Отправлено: 12:13 31-07-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я вернулся,
Этот код проверяет, если слово (строка) и присутствует на веб -странице
 
   
 
Как проверить 3 входов?  
 
$input1
 
$input2
 
$input3
 

 
 
 

Код:
<?php
 
$input1 = 'BookCAT v10.29';
 
$input2 = 'BookCAT v10.30';
 
$input3 = 'BookCAT v10.31';
 
$arrContextOptions=array(
    "ssl"=>array(
         "verify_peer"=>false,
         "verify_peer_name"=>false,
    ),
);  
$url = "https://www.fnprg.com/";
 
$data = file_get_contents($url, false, stream_context_create($arrContextOptions));
 
//echo $data;
 
echo (stristr ($data, $input2)) ? '<span class="badge badge-success">online</span> ' .$input2  : '<span class="badge badge-danger">unavailable</span> ' .$input2;
 
echo '<br>';
 
 
?>

 
 
Я попробовал это, но это не работает
 
 

Код:
 
echo (stristr ($data, $input1, $input2, $input3)) ? '<span class="badge badge-success">online</span> ' .$input1. $input2. $input3  : '<span class="badge badge-danger">unavailable</span> ' .$input1. $input2. $input3;
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 14:55 02-08-2022 | Исправлено: zagorisback, 14:59 02-08-2022
Samovarov



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
Код:

Это так и не должно работать.
 
Можно попробовать так
 

Код:
 
 
$needles = [
    $input1,
    $input2,
    $input3
]
 
 
/// ....
 
echo (checkData($data, $needles)) ? '<span class="badge badge-success">online</span> ' .$input1. $input2. $input3  : '<span class="badge badge-danger">unavailable</span> ' .$input1. $input2. $input3;
////....
 
function checkData(string $data, array $needles) {
   $pattern = implode('|', $needles);
   return (bool) preg_match("/{$pattern}/i"}', $page);
}
 

 
Не тестировал, прям тут написал, может че и накосячил и явно нужны еще проверки,  но идея должна быть понятна.
 
 

Всего записей: 357 | Зарегистр. 20-03-2002 | Отправлено: 17:21 02-08-2022 | Исправлено: Samovarov, 17:24 02-08-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо  Samovarov  
 
PS: я не программист
 
это не работает
 
Я думаю, что структура такая
 

Код:
 
 
<?php
 
$input1 = 'BookCAT v10.29';
 
$input2 = 'BookCAT v10.30';
 
$input3 = 'BookCAT v10.31';
 
$arrContextOptions=array(
    "ssl"=>array(
         "verify_peer"=>false,
         "verify_peer_name"=>false,
    ),
);  
$url = "https://www.fnprg.com/";
 
$data = file_get_contents($url, false, stream_context_create($arrContextOptions));
 
$needles = [
    $input1,
    $input2,
    $input3
]
 
 
 
function checkData(string $data, array $needles) {
   $pattern = implode('|', $needles);
   return (bool) preg_match("/{$pattern}/i"}', $page);
 
}
 
echo (checkData($data, $needles)) ? '<span class="badge badge-success">online</span> ' .$input1. $input2. $input3  : '<span class="badge badge-danger">unavailable</span> ' .$input1. $input2. $input3;
 
?>
 
 


Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 13:40 03-08-2022 | Исправлено: zagorisback, 14:40 03-08-2022
Samovarov



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback
Cкобка не там.  
 
Интересно, а как же твой пример работал?
 

Код:
 
$input1 = 'BookCAT v10.29';
 
$input2 = 'BookCAT v10.30';
 
$input3 = 'BookCAT v10.31';
 
$arrContextOptions=array(
    "ssl"=>array(
         "verify_peer"=>false,
         "verify_peer_name"=>false,
    ),
);  
$url = "https://www.fnprg.com/";
 
$data = file_get_contents($url, false, stream_context_create($arrContextOptions));
 
$needles = [
    $input1,
    $input2,
    $input3
]
 
 
function checkData(string $data, array $needles) {
   $pattern = implode('|', $needles);
   return (bool) preg_match("/{$pattern}/i"}', $page);
 
}
 
if(checkData($data, $needles)) {
  $strStatus =  '<span class="badge badge-success">online</span> ' ;
} else {
  $strStatus =  '<span class="badge badge-danger">unavailable</span>' ;
}
 
echo $strStatus .$input1. $input2. $input3
 
 

 
Добавлено:
Конечно еще точки надо экранировать для регулярки, но должно и так заработать.
 

Всего записей: 357 | Зарегистр. 20-03-2002 | Отправлено: 17:24 03-08-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Просмотреть ошибку
 
Я использую PHP 5.6  
 

Цитата:
Parse error: syntax error, unexpected 'function' (T_FUNCTION) in .. on line 186

 
line 186
 

Цитата:
function checkData(string $data, array $needles) {

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 18:24 03-08-2022
Samovarov



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Я использую PHP 5.6  

 

Код:
 
$input1 = 'BookCAT v10.29';
 
$input2 = 'BookCAT v10.30';
 
$input3 = 'BookCAT v10.31';
 
$arrContextOptions=array(
    "ssl"=>array(
         "verify_peer"=>false,
         "verify_peer_name"=>false,
    ),
);  
$url = "https://www.fnprg.com/";
 
$data = file_get_contents($url, false, stream_context_create($arrContextOptions));
 
$needles = [
    $input1,
    $input2,
    $input3
]
 
 
function checkData($data,  $needles) {
   $pattern =  '/' . implode('|', $needles) . '/i';
   return (bool) preg_match($pattern, $page);
 
}
 
if(checkData($data, $needles)) {
  $strStatus =  '<span class="badge badge-success">online</span> ' ;
} else {
  $strStatus =  '<span class="badge badge-danger">unavailable</span>' ;
}
 
echo $strStatus .$input1. $input2. $input3
 
 

Всего записей: 357 | Зарегистр. 20-03-2002 | Отправлено: 18:47 03-08-2022 | Исправлено: Samovarov, 18:48 03-08-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
обновляется с последним кодом, но всегда эта ошибка
 
 

Цитата:
Parse error: syntax error, unexpected 'function' (T_FUNCTION) in .. on line 186

 
line 186
 

Цитата:
function checkData(string $data, array $needles) {

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 18:54 03-08-2022
Samovarov



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
function checkData(string $data, array $needles)

 
Убрал же. Теперь так
function checkData($data,  $needles)
 
 

Всего записей: 357 | Зарегистр. 20-03-2002 | Отправлено: 19:13 03-08-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Цитата:
Убрал же. Теперь так
function checkData($data,  $needles)

 
Обновлено, но всегда одна и та же ошибка  

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 19:18 03-08-2022
Samovarov



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Точка с запятой пропущена
 
$needles = [
    $input1,
    $input2,
    $input3
];
 
 
Добавлено:
И тут тоже нужна
 
echo $strStatus .$input1. $input2. $input3;
 
Добавлено:
Еще одна ошибка, но теперь должна работать
 
$needles = [
    $input1,
    $input2,
    $input3
];
 
 
function checkData($data,  $needles) {
   $pattern =  '/' . implode('|', $needles) . '/i';
   return (bool) preg_match($pattern, $data);
 
}
 
if(checkData($data, $needles)) {
  $strStatus =  '<span class="badge badge-success">online</span> ' ;
} else {
  $strStatus =  '<span class="badge badge-danger">unavailable</span>' ;
}
 
echo $strStatus .$input1. $input2. $input3;
 
Добавлено:
https://onlinephp.io/c/3f59b
 
Добавлено:
Только в песочнице я убрал  
 
$data = file_get_contents($url, false, stream_context_create($arrContextOptions));

Всего записей: 357 | Зарегистр. 20-03-2002 | Отправлено: 19:26 03-08-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Точка с запятой пропущена
 
$needles = [
    $input1,
    $input2,
    $input3
];
 
 
Добавлено:
И тут тоже нужна
 
echo $strStatus .$input1. $input2. $input3;

 
Теперь не ошибки,
 
Но результат не идеален  
 
 
   
 
 
это должно быть, пример
 
unavailable BookCAT v10.29
 
online BookCAT v10.30
 
unavailable BookCAT v10.31
 
 
Обновлять
 
модифицированный
 

Код:
echo $strStatus .$input1. '<br>' . $input2. '<br>'. $input3;
 

 
 
   
 
Но результат, как я писал выше, не идеален

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 19:39 03-08-2022 | Исправлено: zagorisback, 20:21 03-08-2022
Samovarov



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Но результат, как я писал выше, не идеален

 
Ну, это верстка уже.
 
Если по быстрому, вставь еще один  
 
$strStatus. '<br />' .  $input1. '<br />' . $input2. '<br />'. $input3;
 
Иначе надо верстать дополнительными дивами или табличку
 
 
 
Добавлено:
А тебе каждый надо. Статус.
Тогда код другой должен быть. Тут надо preg_match_all, наверное, использовать и проверить результат который тот возвратит.
Ну либо в лоб, для каждого значения отдельно, как ты делал.
 
$inputs = [ 'BookCAT v10.29', 'BookCAT v10.30', 'BookCAT v10.31'];
 
 
$arrContextOptions=array(
    "ssl"=>array(
         "verify_peer"=>false,
         "verify_peer_name"=>false,
    ),
);  
$url = "https://www.fnprg.com/";
 
$data = file_get_contents($url, false, stream_context_create($arrContextOptions));
 
 
$strStatus  = '';
 
foreach($inputs as $input) {
 if(stristr ($data, $input)) {
   $strStatus .=  '<span class="badge badge-success">online</span>'  . $input . <br />;
 } else {
   $strStatus .=   '<span class="badge badge-danger">unavailable</span> . $input . <br />';
 }
}
 
echo $strStatus;

Всего записей: 357 | Зарегистр. 20-03-2002 | Отправлено: 20:53 03-08-2022 | Исправлено: Samovarov, 21:11 03-08-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Идеально, теперь это работает
Я исправил это
 

Цитата:
 
$strStatus .=  '<span class="badge badge-success">online</span>'  . input . <br />;
 } else {
   $strStatus .=   '<span class="badge badge-danger">unavailable</span> . input . <br />';
 

 
правильный
 

Код:
 
$strStatus .=  '<span class="badge badge-success">online</span> '  . $input . '<br />';
 } else {
   $strStatus .=   '<span class="badge badge-danger">unavailable</span> ' . $input . '<br />';
 

 
Итак, струны в «array»
Результат возвращается с «foreach»  
 
Большое спасибо Samovarov, очень добрый и терпеливый
 
Окончательные результаты
 
   
 
 
Обновленный код исправления
 

Код:
 
 
$inputs = [ 'BookCAT v10.29', 'BookCAT v10.30', 'BookCAT v10.31'];
 
 
$arrContextOptions=array(
    "ssl"=>array(
         "verify_peer"=>false,
         "verify_peer_name"=>false,
    ),
);  
$url = "https://www.fnprg.com/";
 
$data = file_get_contents($url, false, stream_context_create($arrContextOptions));
 
 
 
 
$strStatus  = '';
 
foreach($inputs as $input) {
 if(stristr ($data, $input)) {
   $strStatus .=  '<span class="badge badge-success">online</span> '  . $input . '<br />';
 } else {
   $strStatus .=   '<span class="badge badge-danger">unavailable</span> ' . $input . '<br />';
 }
}
 
echo $strStatus;
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 21:26 03-08-2022 | Исправлено: zagorisback, 08:58 04-08-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Привет Samovarov
 
Я не понял этот кусок кода, Почему это повторяется? вы можете это объяснить?
 

Код:
 
 
$strStatus =  '<span class="badge badge-success">online</span> ' ;
 
$strStatus  = '';  
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 08:26 04-08-2022
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

Компьютерный форум Ru.Board » Интернет » Web-программирование » MySql/PHP: общие вопросы


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru