Как добавить IF(php)

12
V
На сайте с 18.12.2007
Offline
17
859

Есть такой код:

	$query = $db->query('SELECT * FROM tablica WHERE name="'. $_GET['name'] .'"');

Как сделать, чтобы если в базе нету $_GET['name'], то вместо дальнейшего кода писалось 'Такого имени в базе нет'

InoHacker
На сайте с 18.10.2009
Offline
75
#1
Vendor:
Есть такой код:
	$query = $db->query('SELECT * FROM tablica WHERE name="'. $_GET['name'] .'"');


Как сделать, чтобы если в базе нету $_GET['name'], то вместо дальнейшего кода писалось 'Такого имени в базе нет'

ТС ..... Я бы Вам советовал почитать что-нибудь про безопасное программирование =))

Кто же так пишет код ? Вам инклудов не хватает ? .... Кто же вставляет в запрос нефильтрованные переменные ????

Магазин аккаунтов с балансом Litres,DNS,Ozon,Rotapost и еще 50+ других сервисов тут - vk.cc/7QK0Sk
BB
На сайте с 16.09.2009
Offline
6
#2
Vendor:
Есть такой код:
	$query = $db->query('SELECT * FROM tablica WHERE name="'. $_GET['name'] .'"');


Как сделать, чтобы если в базе нету $_GET['name'], то вместо дальнейшего кода писалось 'Такого имени в базе нет'

$db->query = 'научись задавать вопросы!';

BigBoard добавил 19.11.2009 в 22:45

InoHacker:
ТС ..... Я бы Вам советовал почитать что-нибудь про безопасное программирование =))
Кто же так пишет код ? Вам инклудов не хватает ? .... Кто же вставляет в запрос нефильтрованные переменные ????

А вы телепат? Откуда увереность, что переменная не проверена?

Продам скрипт (CMS) доски объявлений (/ru/forum/399149) утилиты для рутинной работы (/ru/forum/429322) верстка, натяжка, доработка (/ru/forum/429323)
InoHacker
На сайте с 18.10.2009
Offline
75
#3
BigBoard:

А вы телепат? Откуда увереность, что переменная не проверена?

А где проверка ?

По теме:

Если $_GET['name'] нет в базе, то запрос вернет ошибку. Т.е. переменная $query станет FALSE. Номер Ошибки можно узнать функцией mysql_error().

Но в принципе, если у Вас нет других ошибок, можно по этому параметру и выдавать текст. Т.е. следует добавить:

$query = $db->query('SELECT * FROM tablica WHERE name="'. $_GET['name'] .'"') or die ('Такого имени в базе нет');
V
На сайте с 18.12.2007
Offline
17
#4
$db->query = 'научись задавать вопросы!';

Тоесть если такого name в базе нету, то писалось 'извините, такого в базе нет'


Кто же вставляет в запрос нефильтрованные переменные ????

Кто же вам сказал что это весь код????

BB
На сайте с 16.09.2009
Offline
6
#5
InoHacker:
А где проверка ?

а откуда я знаю? я не могу по одной строчке кода сказать это - это раз, во-вторых я не телепат - соответственно это два, и в третьих - я не утверждал, что она есть.

BigBoard добавил 19.11.2009 в 22:55

Vendor:
Тоесть если такого name в базе нету, то писалось 'извините, такого в базе нет'

я же тебе сказал, научись задавать вопросы, я незнаю твоего класса и немогу знать, что там возращается, ты хоть скажи чего ожидаешь?

Yur
На сайте с 16.01.2007
Offline
43
Yur
#6
Vendor:

Кто же вам сказал что это весь код????

$query = $db->query('SELECT * FROM tablica WHERE name="'. $_GET['name'] .'"');

Ну из данного участка скрипта видно что в классе дб определенна функция.. query, но вот что она возвращает отсюда не понятно (массив, или просто какое то число), соответственно сложно сказать где использовать иф, этого участка кода мало

что такое тИЦ - ответ прост, пузомерка что такое ПР - это показатель пропиаренности сайта в инете что такое Сапе - средство заработка на пузомерке и пр, или инструмент пиара сайта
V
На сайте с 18.12.2007
Offline
17
#7

Ок

function make_names_array(){
global $host, $user, $password, $db, $database_encoding, $pl_array;
$i=0;
$au_db = new DBLayer($host, $user, $password, $db);
$au_db->query("SET NAMES $database_encoding");
$query = $au_db->query('SELECT * FROM tablica WHERE name="'. $_GET['name'] .'"');
while($result = $au_db->fetch_assoc($query))
{
$char_data = explode(' ',$result['data']);
$char_gender = dechex($char_data[36]);
$char_gender = str_pad($char_gender,8, 0, STR_PAD_LEFT);
$char_gender = $char_gender{3};
$res_pol = $def['character_race'][$pol];

$pl_array[$i] = Array($result['name'], $result['race'], $result['gender'], $result['world_id'], $char_gender, $result['opit'], $result['admin']);
$i++;
}
$au_db->close();
unset($au_db);
return $i;
}
InoHacker
На сайте с 18.10.2009
Offline
75
#8
Vendor:

Кто же вам сказал что это весь код????

Пардоньте .... если Вы пишете $_GET["переменная"], то Вы берете эту переменную из строки. Я так и не понимаю .. в какой момент Вы ее фильтруете ??

BB
На сайте с 16.09.2009
Offline
6
#9
InoHacker:
Пардоньте .... если Вы пишете $_GET["переменная"], то Вы берете эту переменную из строки. Я так и не понимаю .. в какой момент Вы ее фильтруете ??

Не тупи, также проверит как и любую другую.

BigBoard добавил 19.11.2009 в 23:10

Vendor:
Есть такой код:
	$query = $db->query('SELECT * FROM tablica WHERE name="'. $_GET['name'] .'"');


Как сделать, чтобы если в базе нету $_GET['name'], то вместо дальнейшего кода писалось 'Такого имени в базе нет'

if ($query)

{

тут while

}

else

{

echo 'А нету таблицы, автор класса не подумал о том, что таблица может и быть, но MySql мог упасть в момент запроса';

}

Yur
На сайте с 16.01.2007
Offline
43
Yur
#10
Vendor:
Ок
function make_names_array(){

global $host, $user, $password, $db, $database_encoding, $pl_array;
$i=0;
$au_db = new DBLayer($host, $user, $password, $db);
$au_db->query("SET NAMES $database_encoding");
$query = $au_db->query('SELECT * FROM tablica WHERE name="'. $_GET['name'] .'"');
while($result = $au_db->fetch_assoc($query))
{
$char_data = explode(' ',$result['data']);
$char_gender = dechex($char_data[36]);
$char_gender = str_pad($char_gender,8, 0, STR_PAD_LEFT);
$char_gender = $char_gender{3};
$res_pol = $def['character_race'][$pol];

$pl_array[$i] = Array($result['name'], $result['race'], $result['gender'], $result['world_id'], $char_gender, $result['opit'], $result['admin']);
$i++;
}

$au_db->close();
unset($au_db);
return $i;
}

Можно было бы if(!$result) {echo "Такого пользователя нет в Базе";) НО

только вот сама функция make_names_array() возвращает если есть пользователь в базе число 1 ($i) если два три четыре и т.д числа ( 2, 3, 4 и т.д). А если нет пользователя .. то число 0

т. е где она используется if (make_names_array() == 0 ) {echo "Такого пользователя нет в базе ";}

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий