Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Нужна небольшая помощь с запросом / 19 сообщений из 19, страница 1 из 1
06.02.2013, 14:47
    #38140100
ser_hero
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна небольшая помощь с запросом
Добрый день. У нас есть замечательный скрипт для клиентов, выводящий им всю информацию по товару на складе.

Код: 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.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
<?php
        include 'var.php';
        include 'login.php';
        $pas = $_POST["pas"];
        $log = $_POST["user"];
        if ($pas == "" | $log == "") {
            echo print_login_page("index.php");
        } else if ($pas != "NULL" & $log != "NULL") {
            mssql_connect($serv, $user, $pass);
            mssql_select_db($db);
            $qlog = "SELECT * FROM [dbo].[firma] WHERE [log]='$log' AND [pas]='$pas' ;";
            $answer_log = mssql_query($qlog);
            $inn = -1;
            while ($data = mssql_fetch_row($answer_log)) {
                $inn = $data[0];
            }
           
                $do = $_POST['do'];
                include "functions.php";                
                    echo "<center>";
                    $type = $_POST['type'];
                    $upas = $_POST['pas'];
                        $q = "SELECT * FROM [dbo].[main] WHERE [inn]='$inn';";
 
                        $answer = mssql_query($q);
                        $b = false;
                        echo "<a href='index.php' style='color:#ffffff;'>Назад</a>
";
                        echo "<table cellspacing='0'  border='1' border-color='#3333ff'>
                <tr style='background-color:#ffaaaa'>
    <td>№ машины</td><td>№ прицепа</td><td>Дата въезда</td><td>Дата выезда</td>            
</tr>";
                        while ($data = mssql_fetch_row($answer)) {
                            if ($b) {
                                echo"<tr style='background-color:#aaaaff'>";
                                $b = false;
                            } else {
                                echo"<tr style='background-color:#aaffaa;'>";
                                $b = true;
                            }
                            echo "<td>" . $data[1] . "</td><td>" . $data[2] . "</td><td>" . $data[7] . "</td><td>" . $data[14] . "</td>";
                            echo "</tr>";
                        }
                        echo "</table>";
                   echo "</center>";


То есть клиент вводит логин/пароль, из sql-таблицы берется один контрагент и по нему выводится вся информация.

Интересует вот что. Нужно сделать финт ушами, чтобы из таблицы брался не один контрагент, а их произвольное количество, у каждого из которых будет одинаковый логин/пароль. Сейчас же выводится инфа только по последнему из них. Как сие провернуть?
...
Рейтинг: 0 / 0
06.02.2013, 14:57
    #38140116
SmeL_md
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна небольшая помощь с запросом
Код: php
1.
2.
3.
4.
$pas = $_POST["pas"];
$log = $_POST["user"];

$qlog = "SELECT * FROM [dbo].[firma] WHERE [log]='$log' AND [pas

]='$pas' ;";
После таких запросов хорошо что вообще база данные содержит.
...
Рейтинг: 0 / 0
06.02.2013, 19:42
    #38140715
Chop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна небольшая помощь с запросом
фигассе, замечательный скрипт... :)
контрагенты с одинаковым логином/паролем - это неописуемо :)

финт ушами навскидку
поменяйте строки:
Код: php
1.
$inn = $data[0];

на
Код: php
1.
$inn[] = $data[0];


Код: php
1.
$q = "SELECT * FROM [dbo].[main] WHERE [inn]='$inn';";

на
Код: php
1.
2.
3.
4.
5.
$strInn = $inn[0];
for($i=1;$i<count($inn);$i++){
   $strInn .= ",".$inn[$i]
}
$q = "SELECT * FROM [dbo].[main] WHERE [inn] IN (".$strInn.");"


но лучше надавать по рукам автору замечательного скрипта :)
...
Рейтинг: 0 / 0
09.02.2013, 15:32
    #38144436
ser_hero
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна небольшая помощь с запросом
Да по ушам - это дело десятое.

авторфинт ушами навскидку
Не работает ( Все то же самое - берет последнего (но номеру ИНН) контрагента.
...
Рейтинг: 0 / 0
09.02.2013, 15:33
    #38144438
ser_hero
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна небольшая помощь с запросом
SmeL_md,

Интересно, и что может случиться с рид-онли базой?
...
Рейтинг: 0 / 0
11.02.2013, 13:46
    #38145978
SmeL_md
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна небольшая помощь с запросом
ser_heroSmeL_md,
Интересно, и что может случиться с рид-онли базой?Если база реад-онли, и есть возможность выдавать права :) то можно многое. Это должно быть вшито в мозг нельзя так писать запросы. сегодня рид завтра не рид, мое имхо.
...
Рейтинг: 0 / 0
11.02.2013, 16:20
    #38146363
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна небольшая помощь с запросом
ser_heroSmeL_md,

Интересно, и что может случиться с рид-онли базой?
Хотя бы можно увидеть то, что не положено.
Введите вместо пароля
Код: plaintext
' or '1'='1
и вуаля
...
Рейтинг: 0 / 0
13.02.2013, 15:45
    #38149747
ser_hero
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна небольшая помощь с запросом
Hett,

Да там нет никакой закрытой информации :)
...
Рейтинг: 0 / 0
13.02.2013, 15:47
    #38149752
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна небольшая помощь с запросом
А зачем тогда пароль?
...
Рейтинг: 0 / 0
13.02.2013, 15:51
    #38149758
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна небольшая помощь с запросом
ser_heroHett,

Да там нет никакой закрытой информации :)
Ну, можно ещё DROP DATABASE.
Вы про параметры слыхали? Используйте хранимую процедуру, а не такую фигню.
Кстати, никогда. Запомните это (!)никогда не пишите селект-звёздочка.
...
Рейтинг: 0 / 0
13.02.2013, 16:04
    #38149793
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна небольшая помощь с запросом
Зачем процедура?
...
Рейтинг: 0 / 0
13.02.2013, 16:13
    #38149821
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна небольшая помощь с запросом
HettЗачем процедура?
Например, запретить пользователям вообще обращаться к таблицам, кроме как через процедуры. Это - например, но довольно распространённая штука.
...
Рейтинг: 0 / 0
13.02.2013, 16:58
    #38149917
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна небольшая помощь с запросом
А какая разница, если процедура в итоге будет содержать 1 запрос.
...
Рейтинг: 0 / 0
13.02.2013, 18:23
    #38150093
ser_hero
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна небольшая помощь с запросом
Hett,

Для удобства.

Друзья, ни у кого нет никаких идей? Реально очень нужно.

P.S. Скрипт писал не я, если что. Человека уже нет того.
...
Рейтинг: 0 / 0
18.02.2013, 15:26
    #38155807
Chop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна небольшая помощь с запросом
ser_heroавторфинт ушами навскидкуНе работает ( Все то же самое - берет последнего (но номеру ИНН) контрагента.что сидит в переменной $q?
...
Рейтинг: 0 / 0
18.02.2013, 15:33
    #38155821
Chop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна небольшая помощь с запросом
Chopser_heroпропущено...
Не работает ( Все то же самое - берет последнего (но номеру ИНН) контрагента.что сидит в переменной $q?кстати, кстати...
если у вас все-таки связка логин-пароль уникальна, то предложенный мною финт и не отработает,
потому как запрос
Код: php
1.
$qlog = "SELECT * FROM [dbo].[firma] WHERE [log]='$log' AND [pas]='$pas' ;";

выдаст единственного Контрагента,
не последнего, а того, у которого соответствующие логин/пароль
что он и должен делать :)
дополнительно к финту замените его на
Код: php
1.
$qlog = "SELECT * FROM [dbo].[firma];";

и он вам вывалит всех Контрагентов :)
готовьтесь разгребать большие массивы :)
...
Рейтинг: 0 / 0
21.02.2013, 16:21
    #38161023
ser_hero
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна небольшая помощь с запросом
ChopChopпропущено...
что сидит в переменной $q?кстати, кстати...
если у вас все-таки связка логин-пароль уникальна, то предложенный мною финт и не отработает,
потому как запрос
Код: php
1.
$qlog = "SELECT * FROM [dbo].[firma] WHERE [log]='$log' AND [pas]='$pas' ;";

выдаст единственного Контрагента,
не последнего, а того, у которого соответствующие логин/пароль
что он и должен делать :)
дополнительно к финту замените его на
Код: php
1.
$qlog = "SELECT * FROM [dbo].[firma];";

и он вам вывалит всех Контрагентов :)
готовьтесь разгребать большие массивы :)Нееее, он после убирания WHERE [log]='$log' AND [pas]='$pas' ;" вообще ничего не выводит, таблица результата девственно чиста O_o
...
Рейтинг: 0 / 0
21.02.2013, 16:50
    #38161091
SmeL_md
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна небольшая помощь с запросом
ser_heroНееее, он после убирания WHERE [log]='$log' AND [pas]='$pas' ;" вообще ничего не выводит, таблица результата девственно чиста O_oСупер Вам что и правила навесили на таблицу тогда Вам вообще не разобраться ;), надеюсь хоть в одном предположении я ошибся
...
Рейтинг: 0 / 0
21.02.2013, 17:05
    #38161127
ser_hero
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна небольшая помощь с запросом
Вот, что имеем на данный момент:

index
Код: 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.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
<?php
        include 'var.php';
        include 'login.php';
        $pas = $_POST["pas"];
        $log = $_POST["user"];
        if ($pas == "" | $log == "") {
            echo print_login_page("index.php");
        } else if ($pas != "NULL" & $log != "NULL") {
            mssql_connect($serv, $user, $pass);
            mssql_select_db($db);
            $qlog = "SELECT * FROM [dbo].[firma] WHERE [log]='$log' AND [pas]='$pas' ;";
            $answer_log = mssql_query($qlog);
            $inn = -1;
                while ($data = mssql_fetch_row($answer_log)) {
                $inn = array();
           $inn[] = $data[0];
            }
            if ($inn > 0) {
                $do = $_POST['do'];
                include "functions.php";                
                    echo "<center>";
                    $type = $_POST['type'];
                    $upas = $_POST['pas'];
                        $strInn = $inn[0];
                for($i=1;$i<count($inn);$i++){
                   $strInn .= ",".$inn[$i];
            }
            $q = "SELECT * FROM [dbo].[main] WHERE [inn] IN (".$strInn.");";
 
                        $answer = mssql_query($q);
                        $b = false;
                        echo "<a href='index.php' style='color:#ffffff;'>Назад</a>
";
                        echo "<table cellspacing='0'  border='1' border-color='#3333ff'>
                <tr style='background-color:#ffaaaa'>
    <td>Фирма</td><td>№ машины</td><td>№ прицепа</td><td>Дата въезда</td><td>Дата выезда</td>            
</tr>";
                        while ($data = mssql_fetch_row($answer)) {
                            if ($b) {
                                echo"<tr style='background-color:#aaaaff'>";
                                $b = false;
                            } else {
                                echo"<tr style='background-color:#aaffaa;'>";
                                $b = true;
                            }
                            echo "<td>" . $data[3] . "</td><td>" . $data[1] . "</td><td>" . $data[2] . "</td><td>" . $data[7] . "</td><td>" . $data[14] . "</td>";
                            echo "</tr>";
                        }
                        echo "</table>";
                    
                 //   echo more_filter($inn, $upas);
                    echo "</center>";

                } else {
                    echo print_login_page("index.php");
                }
            } else {
                echo print_login_page("index.php");
            }

            
            ?>   

...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Нужна небольшая помощь с запросом / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]