Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Оптимизация кода!!!
eXstyle  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 7
Пользователь №: 43271
На форуме: 3 месяца, 21 день
Карма:




Здравствуйте. Подскажите пожалуйста, как можно оптимизировать сие чудо:

$imya = strip_data(mysql_escape_string(htmlspecialchars($_POST['name'])));
$lastname = strip_data(mysql_escape_string(htmlspecialchars($_POST['lastname'])));
$dater = strip_data(mysql_escape_string(htmlspecialchars($_POST['dater'])));
$tel = strip_data(mysql_escape_string(htmlspecialchars($_POST['tel'])));
$city = strip_data(mysql_escape_string(htmlspecialchars($_POST['city'])));
$sport = strip_data(mysql_escape_string(htmlspecialchars($_POST['sport'])));
$pogoda = strip_data(mysql_escape_string(htmlspecialchars($_POST['pogoda'])));
$varik = strip_data(mysql_escape_string(htmlspecialchars($_POST['varik'])));
$zkss = strip_data(mysql_escape_string(htmlspecialchars($_POST['zkss'])));
$grkrov = strip_data(mysql_escape_string(htmlspecialchars($_POST['grkrov'])));
$ves = strip_data(mysql_escape_string(htmlspecialchars($_POST['ves'])));
$rost = strip_data(mysql_escape_string(htmlspecialchars($_POST['rost'])));
$plet = strip_data(mysql_escape_string(htmlspecialchars($_POST['plet'])));
$pol = strip_data(mysql_escape_string(htmlspecialchars($_POST['pol'])));
$hrzab = strip_data(mysql_escape_string(htmlspecialchars($_POST['hrzab'])));
$trzal = strip_data(mysql_escape_string(htmlspecialchars($_POST['trzal'])));
$vpred = strip_data(mysql_escape_string(htmlspecialchars($_POST['vpred'])));
$more = strip_data(mysql_escape_string(htmlspecialchars($_POST['more'])));
//####################################################################
If((isset($imya)) && ($stat['name_user'] == '')){
mysql_query("UPDATE `users` SET `name_user` = '".$imya."' WHERE `id` = '".mysql_real_escape_string($stat['id'])."'")or die(mysql_error());
} else {echo"Имя не менялось <br />"; }
//####################################################################
If((isset($lastname)) && ($stat['lastname'] == '')){
mysql_query("UPDATE `users` SET `lastname` = '".$lastname."' WHERE `id` = '".mysql_real_escape_string($stat['id'])."'")or die(mysql_error());
} else {echo"Фамилия не менялось <br />"; }
//####################################################################
If((isset($dater)) && ($stat['dater'] == '0000-00-00')){
mysql_query("UPDATE `users` SET `dater` = '".$dater."' WHERE `id` = '".mysql_real_escape_string($stat['id'])."'")or die(mysql_error());
} else {echo"Дата не менялось <br />"; }
//####################################################################
If((isset($tel)) && ($stat['tel'] != $tel)){
mysql_query("UPDATE `users` SET `tel` = '".$tel."' WHERE `id` = '".mysql_real_escape_string($stat['id'])."'")or die(mysql_error());
} else {echo"Телефон не менялся <br />"; }
//####################################################################
If((isset($city)) && ($stat['city'] != $city)){
mysql_query("UPDATE `users` SET `city` = '".$city."' WHERE `id` = '".mysql_real_escape_string($stat['id'])."'")or die(mysql_error());
} else {echo"Город не менялся <br />"; }
//####################################################################
If((isset($sport)) && ($stat['sport'] != $sport)){
mysql_query("UPDATE `users` SET `sport` = '".$sport."' WHERE `id` = '".mysql_real_escape_string($stat['id'])."'")or die(mysql_error());
} else {echo"Спорт не менялся <br />"; }
//####################################################################
If((isset($pogoda)) && ($stat['pogoda'] != $pogoda)){
mysql_query("UPDATE `users` SET `pogoda` = '".$pogoda."' WHERE `id` = '".mysql_real_escape_string($stat['id'])."'")or die(mysql_error());
} else {echo"Метеозависимость не менялась <br />"; }
//####################################################################
If((isset($varik)) && ($stat['varik'] != $varik)){
mysql_query("UPDATE `users` SET `varik` = '".$varik."' WHERE `id` = '".mysql_real_escape_string($stat['id'])."'")or die(mysql_error());
} else {echo"Варикоз не менялся <br />"; }
//####################################################################
If((isset($zkss)) && ($stat['zkss'] != $zkss)){
mysql_query("UPDATE `users` SET `zkss` = '".$zkss."' WHERE `id` = '".mysql_real_escape_string($stat['id'])."'")or die(mysql_error());
} else {echo"zkss не менялся <br />"; }
//####################################################################
If((isset($grkrov)) && ($stat['grkrov'] == '')){
mysql_query("UPDATE `users` SET `grkrov` = '".$grkrov."' WHERE `id` = '".mysql_real_escape_string($stat['id'])."'")or die(mysql_error());
} else {echo"grkrov не менялся <br />"; }
//####################################################################
If((isset($ves)) && ($stat['ves'] == '') || ($stat['ves'] == '0')){
mysql_query("UPDATE `users` SET `ves` = '".$ves."' WHERE `id` = '".mysql_real_escape_string($stat['id'])."'")or die(mysql_error());
} else {echo"ves не менялся <br />"; }
//####################################################################
If((isset($rost)) && ($stat['rost'] == '') || ($stat['rost'] == '0')){
mysql_query("UPDATE `users` SET `rost` = '".$rost."' WHERE `id` = '".mysql_real_escape_string($stat['id'])."'")or die(mysql_error());
} else {echo"rost не менялся <br />"; }
//####################################################################
If((isset($plet)) && ($stat['plet'] == '') || ($stat['plet'] == '0')){
mysql_query("UPDATE `users` SET `plet` = '".$plet."' WHERE `id` = '".mysql_real_escape_string($stat['id'])."'")or die(mysql_error());
} else {echo"plet не менялся <br />"; }
//####################################################################
If((isset($pol)) && ($stat['pol'] == '')){
mysql_query("UPDATE `users` SET `pol` = '".$pol."' WHERE `id` = '".mysql_real_escape_string($stat['id'])."'")or die(mysql_error());
} else {echo"pol не менялся <br />"; }
//####################################################################
If((isset($hrzab)) && ($stat['hrzab'] == '')){
mysql_query("UPDATE `users` SET `hrzab` = '".$hrzab."' WHERE `id` = '".mysql_real_escape_string($stat['id'])."'")or die(mysql_error());
} else {echo"hrzab не менялся <br />"; }
//####################################################################
If((isset($trzal)) && ($stat['trzal'] != $trzal)){
mysql_query("UPDATE `users` SET `trzal` = '".$trzal."' WHERE `id` = '".mysql_real_escape_string($stat['id'])."'")or die(mysql_error());
} else {echo"trzal не менялся <br />"; }
//####################################################################
If((isset($vpred)) && ($stat['vpred'] != $vpred)){
mysql_query("UPDATE `users` SET `vpred` = '".$vpred."' WHERE `id` = '".mysql_real_escape_string($stat['id'])."'")or die(mysql_error());
} else {echo"vpred не менялся <br />"; }
//####################################################################
If((isset($more)) && ($stat['more'] != $more)){
mysql_query("UPDATE `users` SET `more` = '".$more."' WHERE `id` = '".mysql_real_escape_string($stat['id'])."'")or die(mysql_error());
} else {echo"more не менялся <br />"; }
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Root of all Evil  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Собрать все в один запрос?
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
eXstyle  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 7
Пользователь №: 43271
На форуме: 3 месяца, 21 день
Карма:




Я так понимаю в один запрос вряд-ли получится, так как разные условия проверки стоят. Но вот $_POST как я понимаю можно через цикл прогнать. Вот вопрос как это правильно сделать=)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чеширский кот
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 5911
Пользователь №: 1
На форуме: 10 лет, 10 месяцев, 2 дня
Карма: 125

Не пью :
22 года, 3 месяца, 2 дня


foreach($_POST as $k=>$v)$_POST[$k] = strip_data(mysql_escape_string(htmlspecialchars($v)));


--------------------
Бесплатному сыру в дырки не заглядывают...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
eXstyle  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 7
Пользователь №: 43271
На форуме: 3 месяца, 21 день
Карма:




Цитата (FatCat @ 18.08.2016 - 00:36)
foreach($_POST as $k=>$v)$_POST[$k] = strip_data(mysql_escape_string(htmlspecialchars($v)));

Спасибо smile.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22694
Пользователь №: 20039
На форуме: 7 лет, 2 дня
Карма: 599




$data = [];
$allow = ['ves','rost'];
foreach($_POST as $k=>$v) {
if($v != '' && in_array($k,$allow)) {
$data[$k] = "`".mysql_real_escape_string($k)."` = '".mysql_real_escape_string($v)."'";
}
}

foreach($allow as $v) {
if(!isset($data[$v])) {
echo $v.'Не был введён';
}
}

if(count($data)) {
mysql_query("UPDATE `table` SET ".implode(',',$data));
}


Это я просто для демонстрации как объединить, только для "науки". В реальной среде я бы не делал вывод того, что не изменилось. Да и структуру иначе сделал бы. В любом случае я пример показал лишь.


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
eXstyle  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 7
Пользователь №: 43271
На форуме: 3 месяца, 21 день
Карма:




Цитата
Это я просто для демонстрации как объединить, только для "науки".

За это спасибо.=)




Это сообщение отредактировал eXstyle - 18.08.2016 - 01:27
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
eXstyle  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 7
Пользователь №: 43271
На форуме: 3 месяца, 21 день
Карма:




Подскажите, что не так:
 $post = '';
foreach($_POST as $k => $v) {
if($k != ''){
$post .= "`".$k."`='".$v."'";
}
}

echo $post;
mysql_query("UPDATE `users` SET ".implode(',',$post)." WHERE `id` = '".htmlspecialchars($stat['id'])."'");


вот это выводит
echo $post

`name`='Чел'
`lastname`='Просто'
`dater`='2016-08-11'

но в базу не залетает.
Warning: implode(): Invalid arguments passed in

Это сообщение отредактировал eXstyle - 19.08.2016 - 00:46
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чеширский кот
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 5911
Пользователь №: 1
На форуме: 10 лет, 10 месяцев, 2 дня
Карма: 125

Не пью :
22 года, 3 месяца, 2 дня


Цитата (eXstyle @ 18.08.2016 - 22:45)
Warning: implode(): Invalid arguments passed in

Так у тебя же $post не массив, а строка.


--------------------
Бесплатному сыру в дырки не заглядывают...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
eXstyle  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 7
Пользователь №: 43271
На форуме: 3 месяца, 21 день
Карма:




$post = array();
foreach($_POST as $k => $v) {
$post[] = "`".$k."`='".$v."'";
}
echo implode(",",$post) ;
mysql_query("UPDATE `users` SET ".implode(",",$post)." WHERE `id` = '".htmlspecialchars($stat['id'])."'");

От ошибки избавился, но результата нет :(
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
eXstyle  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 7
Пользователь №: 43271
На форуме: 3 месяца, 21 день
Карма:




Все разобрался. Всем спасибо=)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса