Язык
Контакты
GitHub
Поддержка
Регистрация
Войти
Логин: Пароль: Запомнить:
Пользователи
Последние сообщения
Ответить
<< ... 19 20 21 22 23 ... >>

Общие вопросы новичков

skad0

  • Атом-мозг
  • Юзер
  • 841
  • Репутация:10 
  • Предупреждения: 0 
  • Регистрация:
    2 Окт 2010
#201
Ты о чем?)
Проблема моя нерешаема.
Я написал метод класса, который записывает любой указанный массив, перезаписывая его. Мне нужно в тфайл записывать $arr - при этом $arr может быть там $set или $arr100500 он указывается при вызове метода. Нашел только 1 возможный исход. Просто при вызове метода в параметре записываю тектовый вариант переменной, т.е.

 1 
 2 
<?php $obj['act'] -> arr_in(/* Параметры */$array'array');?>

И в методе:
 1 
 2 
 3 
<?php ####
$file '<?php $'.$textarr.' = 'var_export($tarrtrue).'?>';
#### $tarr - массив после манипуляций?>

Это я к примеру

Отредактировано автором 20 Апр 2011

Drunya

  • Man of God
  • Админ
  • 3527
  • Репутация:110 
  • Предупреждения: 0 
  • Регистрация:
    30 Ноя -0001
#202
skad0, вообщето если ты это для конфига делаешь, то яне вижу в этом смысла. Пусть название массива всегда будет одним и тем же.

А вообще
 1 
 2 
<?php $file '<?php $'.$textarr.' = 'var_export($tarrtrue).'?>';?>
Так и делай, если уж приперло)

Я горжусь тем, что создал бесплатную CMS - AtomX. И люблю нашу команду)

skad0

  • Атом-мозг
  • Юзер
  • 841
  • Репутация:10 
  • Предупреждения: 0 
  • Регистрация:
    2 Окт 2010
#203
Дело в том, что в 1 файле у меня несколько массивов с разными настройками. Я просто хотел узнать, если есть способ получения имени переменной)

Добавлено 2011.04.24 00-00

Такой вопрос. Пишу метод, который должен осуществлять запросы в mysql
Пока не понял, чем он круче просто прописи функций и методов. Ведь тип запроса выбирать не приходиться.

была идея что-то вроде такого:
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
<?php class test {
   function 
sql_query($method$id$par$tb) {
      switch (
$method) {
          case 
'SELECT'$q mysql_query("SELECT `$par` FROM `$tb` WHERE `id`=$id");
          case 
'UPDATE'$q mysql_query("UPDATE `$tb` SET $par WHERE `id`=$id");
          
## И так далее
      

      
$result mysql_fetch_array($q);
      return 
$result;
   }
}
?>

Но какой-то это геморой. Как лучше реализовать?

Drunya

  • Man of God
  • Админ
  • 3527
  • Репутация:110 
  • Предупреждения: 0 
  • Регистрация:
    30 Ноя -0001
#204
skad0, посмотри как в Фапос сделано. Очень удобно. А смысл в том что потом ты описываешь запросы не SQLем а массивом. Все красиво и понятно.

Я горжусь тем, что создал бесплатную CMS - AtomX. И люблю нашу команду)

skad0

  • Атом-мозг
  • Юзер
  • 841
  • Репутация:10 
  • Предупреждения: 0 
  • Регистрация:
    2 Окт 2010
#205
В фапосе копать очень долго. Приведи плиз пример, а уже сам доведу

Добавлено 2011.05.11 17-12

Вопрос возник.
 1 
 2 
 3 
<?php session_start();
if (!isset(
$_SESSION['sid']) && !isset($_SESSION['sadm']) && $_SESSION['elip_time'] < (time()-3600)) {
    include_once 
'modules/actions/autho.php';}?>

logout:
 1 
 2 
<?php $obj['act'] -> kill_sess($_SESSION);?>
 1 
 2 
 3 
 4 
 5 
<?php function kill_sess($arr) {
        
session_start();
        unset(
$_SESSION);
        
header("Location: index.php");
    }
?>

При этом сессия не убивается.

Ещё одно:
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
<?php function sess_done($arr$tb) {
        include (
'sys/config/mysql.php');
        
$q['query'] == mysql_query("SELECT * FROM `".$tb."` WHERE `slogin`='".$arr['se_login']."' && `spass`='".$arr['se_password']."'");
        
$q['res'] = mysql_fetch_array($q['query']);
        
$_SESSION['sid'] = (int)$q['res']['id'];
        
$_SESSION['sadm'] = true;
        
$_SESSION['elip_time'] = time() - 3600;
    }
?>

Ругается на занос в массив результата запроса. В пхп май админе запрос проканал

Drunya

  • Man of God
  • Админ
  • 3527
  • Репутация:110 
  • Предупреждения: 0 
  • Регистрация:
    30 Ноя -0001
#206
 1 
 2 
<?php $q['query'] == mysql_query("SELECT * FROM `".$tb."` WHERE `slogin`='".$arr['se_login']."' && `spass`='".$arr['se_password']."'");
        
$q['res'] = mysql_fetch_array($q['query']);?>
Дело в том, что если запрос ничего не вернул и ты пытаешься воспользоваться функцией mysql_fetch_array(), возникнет ошибка. Надо сперва проверять вернул ли что-то запрос или просто поставить символ "@" перед этой строкой, но это не желательно.


 1 
 2 
<?php unset($_SESSION);?>
Так делать нельзя, так как это суперглобальная переменная(массив). Удаляй только ключи, например
 1 
 2 
<?php unset($_SESSION['bla']);?>

Добавлено 2011.05.11 17-22

И еще в твоем последнем примере у тебя два равно в том месте где ты делаешь запрос)
 1 
 2 
<?php $q['query'] == mysql_query("SELECT * FROM `".$tb."` WHERE `slogin`='".$arr['se_login']."' && `spass`='".$arr['se_password']."'");?>

Я горжусь тем, что создал бесплатную CMS - AtomX. И люблю нашу команду)

skad0

  • Атом-мозг
  • Юзер
  • 841
  • Репутация:10 
  • Предупреждения: 0 
  • Регистрация:
    2 Окт 2010
#207
аааа, спасибо!

Добавлено 2011.05.13 18-22

 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 
<?php function buildtblist($table) {
        include (
'sys/config/mysql.php');
        
$q['query'] = mysql_query("SELECT * FROM `".$table."`");
        
//var_dump(mysql_num_rows($q['query']));
        
if (mysql_num_rows($q['query'])>0) {
            
$wr '';
            
$write '';
            
//$q['res'] = mysql_fetch_array($q['query']);
            
while (false !== ($q['res'] = mysql_fetch_array($q['query']))) {
                
$write .= '<tr>';
                foreach (
$q['res'] as $k => $v) {
                    
$wr[$k] = '<td>'.$v.'</td>';
                    if (
$k == 'stitle'$wr[$k].='<a href="index.php?do='.$_GET['do'].'&act='.
                    
$_GET['act'].'&edit='.$q['res']['id'].'" class="nedit"></a><a href="index.php?do='.
                    
$_GET['do'].'&act='.$_GET['act'].'&del='.
                    
$q['res']['id'].'" class="nclose"></a>';
                    
                }
                
$write .= '</tr>';
                
            }
        } else {
            
$q['sim'] = mysql_query("SELECT count(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '".$table."' ");
            
$write '<tr><td colspan="'.mysql_num_rows($q['sim']).'"> Материалов нет </td></tr>';   
        }

        return 
$write;
    }
?>
Возвращает пустую переменную.

Drunya

  • Man of God
  • Админ
  • 3527
  • Репутация:110 
  • Предупреждения: 0 
  • Регистрация:
    30 Ноя -0001
#208
а ты уверен что эта конструкция проходит
 1 
 2 
<?php if (mysql_num_rows($q['query'])>0) {?>
и что выполнение доходит до блока while и внутрь него?

Добавлено 2011.05.13 18-30

Я бы проверил так
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
<?php }
                
$write .= '</tr>';
                
            }
            
var_dump($write);
        } else {
            
$q['sim'] = mysql_query("SELECT count(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '".$table."' ");
            
$write '<tr><td colspan="'.mysql_num_rows($q['sim']).'"> Материалов нет </td></tr>';   
        }
?>

Добавлено 2011.05.13 18-46

Если тестируешь в браузере, то надо всегда смотреть в исходный код страницы. Так как на самом деле скрипт может и возвращает данные, просто ты их не видишь. Например скрипт может вернуть HTML код. Тогда браузер его интерпретирует как разметку и видно его не будет.

Я горжусь тем, что создал бесплатную CMS - AtomX. И люблю нашу команду)

ARMI

  • Заклинатель Атома
  • Пользователь
  • 1858
  • Репутация:46 
  • Предупреждения: 0 
  • Регистрация:
    4 Янв 2011
#209
нажимаю "Управление ЧПУ" и вылазит

Цитата
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/u608275203/public_html/admin/settings_hlu.php on line 1

Я горжусь тем, что помогаю в развитии бесплатной CMS - AtomX

skad0

  • Атом-мозг
  • Юзер
  • 841
  • Репутация:10 
  • Предупреждения: 0 
  • Регистрация:
    2 Окт 2010
#210
А вот и я!

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
<?php function getParFrDb($id$from$what) {
        include (
'sys/config/mysql.php');
        
$q['query'] = mysql_query("SELECT ".$what." FROM ".$from." WHERE `id`=".$id);
        if (
mysql_num_rows($q['query'])>0)
        
$q['res'] = mysql_fetch_assoc($q['query']);
        else 
$q['res'] = false;
        return 
$q['res'][$what];
    }
?>

ругается на
 1 
 2 
<?php if (mysql_num_rows($q['query'])>0)?>

Code:
mysql_num_rows() expects parameter 1 to be resource, boolean given in

Собственно чего это он ругается? Все отлично работает, но ошибка вылазит

<< ... 19 20 21 22 23 ... >>
Сейчас online: 45. Зарегистрированных: 2. Гостей: 43.