вопрос
Приветствую всех. Помогите пожалуйста. Делаю модуль и столкнулся с проблемой. Нужно чтобы при запросе к примеру сайт.ру/skript.php?id=123 произошёл поиск по базе в таблице xfield в доп поле id и если данный id будет найден, то сделать вывод информации с другого доп поля к примеру imya. Есть код который вроде как справляется со своей задачей но немного не верно, так как при обоих запросах к примеру сайт.ру/skript.php?id=123 и сайт.ру/skript.php?id=1 выводиться одинаковая информация. Привожу код:
Заранее спасибо.
<?php
@error_reporting(E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE);
@ini_set('error_reporting', E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE);
@ini_set('display_errors', true);
@ini_set('html_errors', false);
define('DATALIFEENGINE', true);
define('ROOT_DIR', dirname(__FILE__));
define('ENGINE_DIR', ROOT_DIR.'/engine');
include ENGINE_DIR.'/data/config.php';
require ENGINE_DIR.'/classes/mysql.php';
require ENGINE_DIR.'/data/dbconfig.php';
require ENGINE_DIR.'/modules/functions.php';
$search_data = ($_GET['id']) ? intval($_GET['id']) : 0;
$kod=$_GET['id'];
if (!$search_data) die();
$xfields_search_name = 'kp'; //Имя доп. поля в котором искать
$xfields_print_name = 'txt'; //Имя доп. поля которое выводить
$posts = $db->super_query("SELECT xfields FROM ".PREFIX."_post WHERE xfields LIKE '%".$db->safesql($xfields_search_name)."|".$db->safesql($search_data)."%'", true);
foreach ($posts as $post) {
$xfieldsdata = xfieldsdataload($post['xfields']);
if (isset($xfieldsdata[$xfields_print_name])) {
}
}
?>
Заранее спасибо.
Горе луковое)
$id = intval($_GET['id']);
if (!$search_data) {
die();
}
$xf_config = [
'search' => 'kp', //Имя доп. поля в котором искать
'print' => 'txt' //Имя доп. поля которое выводить
];
$db->query("SELECT xfields FROM ".PREFIX."_post WHERE SUBSTRING_INDEX( SUBSTRING_INDEX( xfields, '" . $xf_config['search'] . "|', -1 ) , '||', 1 ) = '{$id}'");
while ($row as $db->get_row()) {
$xfieldsdata = xfieldsdataload($row['xfields']);
if ($xfieldsdata[$xf_config['print']]) {
echo 'success';
}
}