Ответить
Дело в том, что если запрос ничего не вернул и ты пытаешься воспользоваться функцией mysql_fetch_array(), возникнет ошибка. Надо сперва проверять вернул ли что-то запрос или просто поставить символ "@" перед этой строкой, но это не желательно.
Так делать нельзя, так как это суперглобальная переменная(массив). Удаляй только ключи, например
Добавлено 2011.05.11 17-22
И еще в твоем последнем примере у тебя два равно в том месте где ты делаешь запрос)
Общие вопросы новичков
Отправлено: 20 Апр 2011#201
Ты о чем?)
Проблема моя нерешаема.
Я написал метод класса, который записывает любой указанный массив, перезаписывая его. Мне нужно в тфайл записывать $arr - при этом $arr может быть там $set или $arr100500 он указывается при вызове метода. Нашел только 1 возможный исход. Просто при вызове метода в параметре записываю тектовый вариант переменной, т.е.
И в методе:
Это я к примеру
Проблема моя нерешаема.
Я написал метод класса, который записывает любой указанный массив, перезаписывая его. Мне нужно в тфайл записывать $arr - при этом $arr может быть там $set или $arr100500 он указывается при вызове метода. Нашел только 1 возможный исход. Просто при вызове метода в параметре записываю тектовый вариант переменной, т.е.
1
2
<?php $obj['act'] -> arr_in(/* Параметры */, $array, 'array');?>
И в методе:
1
2
3
<?php ####
$file = '<?php $'.$textarr.' = '. var_export($tarr, true).'?>';
#### $tarr - массив после манипуляций?>
Это я к примеру
Отредактировано автором 20 Апр 2011
Отправлено: 20 Апр 2011#202
skad0, вообщето если ты это для конфига делаешь, то яне вижу в этом смысла. Пусть название массива всегда будет одним и тем же.
А вообще
Так и делай, если уж приперло)
А вообще
1
2
<?php $file = '<?php $'.$textarr.' = '. var_export($tarr, true).'?>';?>
Я горжусь тем, что создал бесплатную CMS - AtomX . И люблю нашу команду)
Отправлено: 20 Апр 2011#203
Дело в том, что в 1 файле у меня несколько массивов с разными настройками. Я просто хотел узнать, если есть способ получения имени переменной)
Добавлено 2011.04.24 00-00
Такой вопрос. Пишу метод, который должен осуществлять запросы в mysql
Пока не понял, чем он круче просто прописи функций и методов. Ведь тип запроса выбирать не приходиться.
была идея что-то вроде такого:
Но какой-то это геморой. Как лучше реализовать?
Добавлено 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;
}
}?>
Но какой-то это геморой. Как лучше реализовать?
Отправлено: 25 Апр 2011#204
skad0, посмотри как в Фапос сделано. Очень удобно. А смысл в том что потом ты описываешь запросы не SQLем а массивом. Все красиво и понятно.
Я горжусь тем, что создал бесплатную CMS - AtomX . И люблю нашу команду)
Отправлено: 26 Апр 2011#205
В фапосе копать очень долго. Приведи плиз пример, а уже сам доведу
Добавлено 2011.05.11 17-12
Вопрос возник.
logout:
При этом сессия не убивается.
Ещё одно:
Ругается на занос в массив результата запроса. В пхп май админе запрос проканал
Добавлено 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;
}?>
Ругается на занос в массив результата запроса. В пхп май админе запрос проканал
Отправлено: 11 Мая 2011#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']);?>
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 . И люблю нашу команду)
Отправлено: 11 Мая 2011#207
аааа, спасибо!
Добавлено 2011.05.13 18-22
Возвращает пустую переменную.
Добавлено 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;
}?>
Отправлено: 13 Мая 2011#208
а ты уверен что эта конструкция проходит
и что выполнение доходит до блока while и внутрь него?
Добавлено 2011.05.13 18-30
Я бы проверил так
Добавлено 2011.05.13 18-46
Если тестируешь в браузере, то надо всегда смотреть в исходный код страницы. Так как на самом деле скрипт может и возвращает данные, просто ты их не видишь. Например скрипт может вернуть HTML код. Тогда браузер его интерпретирует как разметку и видно его не будет.
1
2
<?php if (mysql_num_rows($q['query'])>0) {?>
Добавлено 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 . И люблю нашу команду)
Отправлено: 21 Мая 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
Отправлено: 6 Июн 2011#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
Собственно чего это он ругается? Все отлично работает, но ошибка вылазит
Зарегистрируйтесь или авторизуйтесь что бы писать
Сейчас online: 46. Зарегистрированных: 0. Гостей: 46.