Показать сообщение отдельно

  #2196  
Старый 07.03.2008, 00:55
Doom123
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
С нами: 10262314

Репутация: 668


По умолчанию

Помогите плз я написал скрипт...у меня он работает.. а у чела которому он нужен не пашет вот скрипт

функция mysql_qw()

PHP код:
<?php ## Простейшая функция для работы с placeholder-ами.

// result-set mysql_qw($connection_id, $query, $arg1, $arg2, ...)
//  - или -
// result-set mysql_qw($query, $arg1, $arg2, ...)
// Функция выполняет запрос к MySQL через соединение, заданное как
// $connection_id (если не указано, то через последнее открытое).
// Параметр $query может содержать подстановочные знаки ?,
// вместо которых будут подставлены соответствующие значения
// аргументов $arg1, $arg2 и т.д. (по порядку), экранированные и
// заключенные в апострофы.
function mysql_qw()
{
    
// Получаем все аргументы функции.
    
$args func_get_args();
    
// Если первый параметр имеет тип "ресурс", то это ID соединения.
    
$conn null;
    if (
is_resource($args[0]))
        
$conn array_shift($args);
    
// Формируем запрос по шаблону.
    
$query call_user_func_array("mysql_make_qw"$args);
    
// Вызываем SQL-функцию.
    
return $conn !== null mysql_query($query$conn) : mysql_query($query);
}

// string mysql_make_qw($query, $arg1, $arg2, ...)
// Данная функция формирует SQL-запрос по шаблону $query,
// содержащему placeholder-ы.
function mysql_make_qw()
{
    
$args func_get_args();
    
// Получаем в $tmpl ССЫЛКУ на шаблон запроса.
    
$tmpl = &$args[0];
    
$tmpl str_replace("%""%%"$tmpl);
    
$tmpl str_replace("?""%s"$tmpl);
    
// После этого $args[0] также окажется измененным.
    // Теперь экранируем все аргументы, кроме первого.
    
foreach ($args as $i => $v)
    {
        if (!
$i)
            continue; 
// это шаблон
        
if (is_int($v))
            continue; 
// целые числа не нужно экранировать
        
$args[$i] = "'" mysql_escape_string($v) . "'";
    }
    
// На всякий случай запорняем 20 последних аргументов недопустимыми
    // значениями, чтобы в случае, если число "?" превышает количество
    // параметров, выдавалась ошибка SQL-запроса (поможет при отладке).
    
for ($i $c count($args) - 1$i $c 20$i++)
        
$args[$i 1] = "UNKNOWN_PLACEHOLDER_$i";
    
// Формируем SQL-запрос.
    
return call_user_func_array("sprintf"$args);
}
?>
Часть кода которая не работает:

PHP код:
$result mysql_qw('SELECT * FROM items WHERE owner_id=? AND item_id=?'$char_id,4037) or die(mysql_error());
for (
$red = array(); $row2 mysql_fetch_array($result); $red[] = $row2);
if (
$red == array())
{
$result mysql_qw('SELECT MAX(object_id)+1 AS id FROM items');
$row mysql_fetch_assoc($result);
$ins_id $row['id'];
mysql_qw('INSERT INTO items SET owner_id=?, object_id=?, item_id=?, count=?'$char_id$ins_id4037$FAs_for_vote) or die(mysql_error());
} else {
mysql_qw('UPDATE items SET count=count+? WHERE owner_id=? AND item_id =?'$FAs_for_vote,
$char_id4037) or die(mysql_error());} 
эта часть скрипта проверяет есть чи у чара этот предмет если да то добовляет +1 к количеству а если нет то просто создаёт его у чара....
но проблема в том что скрипт работает у меня нормально а у другова он просто создаёт всегда этот предмет заного даже если он существовал

Последний раз редактировалось Doom123; 07.03.2008 в 01:02..
 
Ответить с цитированием