Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
31 / 45 / 21
Регистрация: 09.10.2012
Сообщений: 825

Вызов функции

07.04.2015, 10:53. Показов 1251. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Возникла проблема, есть 2 функции.
PHP
1
2
3
function auth($sql,$connect,$row,$query) {
 //Тут код
}
И мне надо внутри второй функции вызвать auth, как это осуществить?
PHP
1
2
3
function App($sql,$connect,$row,$query){
//Тут надо обратиться к функции auth
}


Заранее большое спасибо!!!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.04.2015, 10:53
Ответы с готовыми решениями:

Вызов js функции в php функции что в js
В общем имеем такое извращение <script> ... document.write("<?php echo Consultationscalendar::classTD($teacherId) ?>"); ...

Вызов пользовательской функции из функции
Как Вызвать пользовательскую функцию из функции? Приведенный ниже код не работает (PHP 7): function foo(){ echo 'hi'; global...

Вызов функции из этой же функции?
Подскажите пожалуста, не будет ли ничего лагать, если я сделаю так. Смысл в том, если не удалось получить переменную, перезапускаем...

10
18 / 18 / 12
Регистрация: 10.03.2015
Сообщений: 77
07.04.2015, 11:11
PHP
1
2
3
4
5
6
7
8
9
10
11
12
function auth($sql,$connect,$row,$query) {
 $a="$sql,$connect,$row,$query";
 return ($a);
}
 
function App($sql,$connect,$row,$query){
$b=auth ($sql,$connect,$row,$query);
return ($b);
}
 
$c=App(1,2,3,4);
echo "$c"
1
31 / 45 / 21
Регистрация: 09.10.2012
Сообщений: 825
07.04.2015, 11:23  [ТС]
kitlum,
PHP
1
 Fatal error: Call to undefined function auth()
0
18 / 18 / 12
Регистрация: 10.03.2015
Сообщений: 77
07.04.2015, 11:45
Даже не знаю, у меня работает. Может оно у вас внутри класса.
0
31 / 45 / 21
Регистрация: 09.10.2012
Сообщений: 825
07.04.2015, 11:58  [ТС]
kitlum, Сорри что не сказал, да обе функции внутри класса.
0
18 / 18 / 12
Регистрация: 10.03.2015
Сообщений: 77
07.04.2015, 12:08
Тогда так

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class m {
 
function auth($sql,$connect,$row,$query) {
 $a="$sql,$connect,$row,$query";
 return ($a);
}
 
function App($sql,$connect,$row,$query){
$b=$this->auth($sql,$connect,$row,$query);
return ($b);
}
}
 
$m1=new m;
$c=$m1->App(1,2,3,4);
echo $c;
1
31 / 45 / 21
Регистрация: 09.10.2012
Сообщений: 825
07.04.2015, 12:21  [ТС]
kitlum, Так вообщем данные у меня вывелись на экран, но еще вылезла ошибка
PHP
1
 Catchable fatal error: Object of class mysqli could not be converted to string in W:\domains\local.helpdesk.ru\sql\query.php on line 201
0
18 / 18 / 12
Регистрация: 10.03.2015
Сообщений: 77
07.04.2015, 12:38
Нет, ну конечно, это как пример того как не надо делать работающего класса с вызовом функций, в реальности всё у вас запутанее может быть. Например, возможно, один из аргументов не является строкой или перестаёт быть ею (где-нибудь переопределяется), тогда всё это не работает.

Добавлено через 1 минуту
Выложите кода побольше (желательно создав новую тему, может поопытнее кто подтянется-совет даст), посмотрим что не так
0
31 / 45 / 21
Регистрация: 09.10.2012
Сообщений: 825
07.04.2015, 12:40  [ТС]
kitlum,
PHP
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
29
30
31
32
function unionTables ($sql,$connect,$row,$query) {
        $sql = "SELECT a.id_eq,a.id_br,a.id_user,b.br,e.eq,u.user FROM `application` a LEFT OUTER JOIN `equipment` e ON a.id_eq=e.id_eq LEFT OUTER JOIN `breaking` b ON a.id_br=b.id_br LEFT OUTER JOIN `users` u ON a.id_user=u.id_user";
        $query = mysqli_query($connect,$sql) or die("ERROR: ".mysqli_error());
        while($row = mysqli_fetch_array($query)) {
            echo '<table><tr><td>'.$row['eq'].'</td><td>'.$row['br'].'</td><td>'.$row['user'].'</td></tr></table>';
        }
        $a = "$sql,$connect,$row,$query";
        return ($a);
    }
     function auth($sql,$connect,$row,$query) {
    #ERROR_REPORTING(~E_ALL);
    $login = htmlspecialchars(trim(stripslashes($_POST['login'])));
    $password = htmlspecialchars(trim(stripslashes($_POST['password'])));
    if(isset($_POST['login']) && ($_POST['password'])) {
        $sql = "SELECT `login`,`password` FROM `auth` WHERE `login` = '$login' AND `password` = $password";
        $query = mysqli_query($connect,$sql);
        $row = mysqli_fetch_array($query);
            if($password == $row['password'] && $login == $row['login']) {
                echo "<script>alert('Добро пожаловать,$login')</script>";
                     if($login == 'Abramov') {
                        $b = $this->unionTables($sql,$connect,$row,$query);
                    }
                    elseif($login == 'Naumov') {
                        
                    } 
                }
            else {
                echo "<script>alert('Не правильно введены данные')</script>";
            }
        }
        return ($b);
 }
0
18 / 18 / 12
Регистрация: 10.03.2015
Сообщений: 77
07.04.2015, 13:17
Лучший ответ Сообщение было отмечено Inkvizzz как решение

Решение

Эх, говорила мне мама, учи, сынок, mysqli. Всё, завтра начинаю.
1. То, что я понимаю.
1.1. Логика, должно быть, такая. Если при авторизации - Абрамов, то объединям таблицы, если нет, то нет
1.2. И в функции auth и в функции unionTables в первых строчках переопределяются переменные $sql, $row, $query, то есть тягать их из функции в функцию нет смысла.
1.3. Результатом выполнения UnionTable есть массив $query, его мы и должны возвращать.

Вот так мы это, скорее всего безболезненно, можем изменить
PHP
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
29
30
31
function unionTables ($connect) {
        $sql = "SELECT a.id_eq,a.id_br,a.id_user,b.br,e.eq,u.user FROM `application` a LEFT OUTER JOIN `equipment` e ON a.id_eq=e.id_eq LEFT OUTER JOIN `breaking` b ON a.id_br=b.id_br LEFT OUTER JOIN `users` u ON a.id_user=u.id_user";
        $query = mysqli_query($connect,$sql) or die("ERROR: ".mysqli_error());
        while($row = mysqli_fetch_array($query)) {
            echo '<table><tr><td>'.$row['eq'].'</td><td>'.$row['br'].'</td><td>'.$row['user'].'</td></tr></table>';
        }
        return ($query);
    }
     function auth($connect) {
    #ERROR_REPORTING(~E_ALL);
    $login = htmlspecialchars(trim(stripslashes($_POST['login'])));
    $password = htmlspecialchars(trim(stripslashes($_POST['password'])));
    if(isset($_POST['login']) && ($_POST['password'])) {
        $sql = "SELECT `login`,`password` FROM `auth` WHERE `login` = '$login' AND `password` = $password";
        $query = mysqli_query($connect,$sql);
        $row = mysqli_fetch_array($query);
            if($password == $row['password'] && $login == $row['login']) {
                echo "<script>alert('Добро пожаловать,$login')</script>";
                     if($login == 'Abramov') {
                        $b = $this->unionTables($connect);
                    }
                    elseif($login == 'Naumov') {
                        
                    } 
                }
            else {
                echo "<script>alert('Не правильно введены данные')</script>";
            }
        }
        return ($b);
 }
Ну и в вызове auth надо убрать лишние аргументы

2. Теперь о грустном, чего я не понимаю
2.1. Можно ли использовать процедурный вариант mysql_query() в объектно-ориентированных классах
2.2. Передастся ли указатель $connect тут везде
1
31 / 45 / 21
Регистрация: 09.10.2012
Сообщений: 825
07.04.2015, 14:07  [ТС]
kitlum, Большое спасибо!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.04.2015, 14:07
Помогаю со студенческими работами здесь

Вызов функции
Подскажите пожалуйста, возможен ли запуск функции пхп с помощью onclick? Если да, то как это реализовать? function a() { echo...

Вызов функции
Люди добрые. Подскажите, какую либу ему надо?

Вызов функции
&lt;?php function s($str) { for($i = 0; $i &lt; strlen($str); $i++) if($str == ' ') $str = '_'; return $str; } ...

Вызов функции
Помогите правильно вызвать вот эту функцию в другом месте файла function getpidbyurl($url){ $sql = &quot;select rubr_id from...

Непонятный вызов функции
Добрый вечер, товарищи! Что это за вызов такой? Как это работает?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru