Задать вопрос
  • Как сделать запись в бд из шаблона?

    @smoky-jo Автор вопроса
    wagoodoogoo, не работает все равно почему-то
  • Как сделать запись в бд из шаблона?

    @smoky-jo Автор вопроса
    edward_freedom, просто не срабатывает, запись не добавляется, без ошибок)
  • Как сделать запись в бд из шаблона?

    @smoky-jo Автор вопроса
    wagoodoogoo , все равно не хочет записывать..
  • Как изменить php код?

    @smoky-jo Автор вопроса
    Ice в общем сделал get с проверкой сессии, так проще и Ajax запросов меньше будет) спасибо за помощь)
  • Почему не работает js?

    @smoky-jo Автор вопроса
    Дмитрий, ошибок по этому скрипту не показывает.. я смотрел
  • Как подправить код php?

    @smoky-jo Автор вопроса
    bedolazhka, все, я понял в чем проблема была, допилил, вместо 0 подставил текущее значение этого поля просто

    $get_balanse_cred=users::getUserCreditsForMenu($id);
    	$clear_credits = $db->fetchRow("update ".TABLE_USERS." set `no_credits` = if(`email` = '$email_i',$get_balanse_cred, `no_credits`) where `id`='$id_i'");


    спасибо огромное за помощь))
  • Как подправить код php?

    @smoky-jo Автор вопроса
    bedolazhka, так в том то и дело, не понимаю почему он обновляет на 0, если условие не выполнено, откуда он его берет..
  • Как подправить код php?

    @smoky-jo Автор вопроса
    bedolazhka, то получается как раз то что мне нужно было, одна строка обнуляется, во второй базе прибавляется
  • Как подправить код php?

    @smoky-jo Автор вопроса
    bedolazhka,
    $clear_credits = $db->fetchRow("update ".TABLE_USERS." set `no_credits` = if(`email` = '$email_i',0, `no_credits`) where `id`='$id_i'");


    сделал вот так, проверка срабатывает, но, если вызвать первую функцию

    trasactionCredits при этом даже если проверка срабатывает,

    то значение no_credits обновляется на 0..
  • Как подправить код php?

    @smoky-jo Автор вопроса
    bedolazhka спасибо большое, попробовал так

    $clear_credits = $db->fetchRow("update ".TABLE_USERS." set `no_credits` = if(email = $email_i, 0, no_credits) where `id`='$id' and `email` ='$email_i'");


    но теперь не обнуляется значение даже если email соответствует..
  • Как вызвать функцию через Ajax?

    @smoky-jo Автор вопроса
    AUser0, попробовал из браузера запустить site.org/get_info.php?type=user_q&id=9999999998

    выходит ошибка 404, вероятно тот кто делал код поставил заглушку какую-то на подобные запросы, ведь по id баннера тоже получается можно было такими же запросами заспамить

    а если не авторизован то просто 0 записать или если без else то новая запись вообще не создастся в бд

    {if $get_id_usr}{$get_id_usr}{else}0{/if}
  • Как вызвать функцию через Ajax?

    @smoky-jo Автор вопроса
    AUser0, а как можно в этом Ajax запросе очистить cookies в конце запроса? у меня почему-то пока не очищу cookies в браузере не добавляется вторая запись с одним и тем же email
  • Как вызвать функцию через Ajax?

    @smoky-jo Автор вопроса
    AUser0 , нет, там же уже подключается не banners.php, а users.php..

    смотрите как сделал

    добавил функцию получения id пользователя
    function userIdget($id) {
    
    					global $db;
    					$id_get=$db->fetchRow("select `id` from ".TABLE_USERS." where `id`='$id'");
    					if(!$id_get) return 0;
    					return $id_get;
    
    				}


    добавил вывод id текущего пользователя в шаблон

    require_once $config_abs_path.'/classes/users.php';
    		global $logged_in,$crt_usr;
    		$usr = new users();
    
    		$get_id_usr = $usr->userIdget($crt_usr);
    		$smarty->assign("get_id_usr", $get_id_usr);


    в шаблоне оберул нужную часть кода в див подставив тот самый id пользователя

    <div onclick="clickAddEmail({if $get_id_usr}{$get_id_usr}{/if},'{$live_site}');">


    js

    <script>
    	function clickAddEmail(c, b) {
    	  url_str = b + "/include/get_info.php";
    	  $.ajax({
    	    method: "GET",
    	    url: url_str,
    	    data: { 'type': "user_q", 'id': c },
    	    success: function(d) {}
    	  })
    	}
    	</script>


    в users.php записал email

    function addEmail($id='') {
    			global $db;
    				if(!$id) return;
    			$email=users::getEmail($id);
    			$email=$db->query("insert into `class_click` set `email` = '$email'");
    			}


    и добавил это после авторизации в get_info

    $auth = new auth();
    		$user_id = $auth->crtUserId();
    		$user = new users;
    		$group = $user->getGroup($user_id);
    
    		case 'user_q':
    		    require_once $config_abs_path."/classes/users.php";
    		    $id = get_numeric_only("id");
    		    $click_r=new users();
    		    $click_r->addEmail($id);
    		  break;


    возможно слишком громоздко, но это единственное что реально начало работать, теперь в базу записывается нужный email..

    спасибо большое за помощь))
  • Как вызвать функцию через Ajax?

    @smoky-jo Автор вопроса
    AUser0 , с тем вариантом я все еще пытаюсь разобраться, но пока не выходит, тот кто делал намудрил, мне сложно разобраться в этом, думаю создать еще один onclick

    как бы завернуть один div onclick в другой, чтобы выполнялись оба запроса при нажатии, один запишет клик, второй email

    function clickAddEmail(c, b) {
      url_str = b + "/include/get_info.php";
      $.ajax({
        method: "GET",
        url: url_str,
        data: { 'type': "user_q", 'id': c },
        success: function(d) {}
      })
    }


    <div onclick="clickAddEmail({$id},'{$live_site}');">


    case 'user_q':
        require_once $config_abs_path."/classes/users.php";
        $id = get_numeric_only("id");
        $click_r=new users();
        $click_r->addEmail($id);
      break;


    function addEmail($id='') {
    $email=users::getEmail($id);
    $email=$db->query("insert into `class_click` set `email` = '$email'");
    }


    если вот так сделаю это сработает? получается clickBanner мы уже не будем трогать, это уже другой запрос получится..
  • Как записать в бд значение через onclick из шаблона Смарти?

    @smoky-jo Автор вопроса
    Айнур Валиев, вот подскажите пожалуйста, я нашел вот такой js код у себя, он зашифрован кем-то до меня

    function clickBanner(c, b) {
    	url_str = b + "/include/get_info.php?type=banner&id=" + c;
    	$.ajax({
    		url: url_str,
    		success: function(d) {}
    	})
    }


    вот такой есть шаблон

    <div onclick="clickBanner({$v.id},'{$live_site}');">


    и вот такой php

    case 'banner':
    		require_once $config_abs_path."/classes/banners.php";
    		$id = get_numeric_only("id");
    		$banner=new banners();
    		$banner->addHit($id);
    	break;


    подскажите пожалуйста, каким должен быть js в исходном виде чтобы я смог его продублировать и вызвать другую функцию? наверняка вы понимаете как это должно работать в этом случае
  • Как выводить массив в цикле в шаблоне по порядку?

    @smoky-jo Автор вопроса
    FanatPHP, хорошо, тогда просто уберу неразбериху с шаблоном, а записи попробую как-нибудь выделить и импортировать в бд, действительно легче сделать сразу по-человечески) спасибо)
  • Не выводится цикл из бд?

    @smoky-jo Автор вопроса
    AUser0, да, но не одну, а циклом пройтись по всем a href="<? echo $row['name']) ?>" т.е как идут a href в шаблоне так по всем где упоминается <? echo $row['name']) ?> добавлять каждую последующую запись из бд, я понимаю что вероятно каждый раз он будет начинать с первой строки отсчет, в этом и проблема..
  • Как выводить массив в цикле в шаблоне по порядку?

    @smoky-jo Автор вопроса
    FanatPHP, а я посчитал все заранее )) ровно 3127 строк в бд и 3127 ссылок, и в каждой ссылке названия и title в том же порядке что и в бд записано, т.е подставляться будет туда куда надо по идее) правда сначала нужно было решить как выводить это, а потом уже подгонять все)
  • Как выводить массив в цикле в шаблоне по порядку?

    @smoky-jo Автор вопроса
    FanatPHP, я понимаю это, но не могу перенести несколько тысяч строк в базу, они уже есть вручную добавленные еще давно в шаблон, именно поэтому мучаюсь сижу с этим, плюс очень много нюансов в самом шаблоне , например нужно 100 раз по разному обернуть в шаблон , то что выводится из базы, поэтому проще просто вывести цикл ссылок из бд и ничего больше не трогать, но не получается это сделать
  • Не выводится цикл из бд?

    @smoky-jo Автор вопроса
    rustam_kuliev88, проблема в том, что в бд нет нужных записей, там только поле name, остальное все вписано уже в шаблон напрямую, а добавлять тысячи записей в ручную нереально, поэтому я просто добавил такую строчку в каждой ссылке href="<?php echo $name ?>" по всему шаблону, но он не вставляет каждую запись по порядку в шаблоне, т.е я хочу сделать так, чтобы каждый запрос в шаблоне <?php echo $name ?> добавлял следующую по порядку запись из бд..