За последние 24 часа нас посетили 19440 программистов и 1604 робота. Сейчас ищут 916 программистов ...

Плюсовалка характеристик полюзователя пользователю.

Тема в разделе "PHP для новичков", создана пользователем Колбася, 23 июн 2012.

  1. Колбася

    Колбася Активный пользователь

    С нами с:
    12 дек 2011
    Сообщения:
    722
    Симпатии:
    0
    Привет ребята! Сейчас пишу вот такую плюсовалку...но она почему-то неработает...не плюсует...как она должна выглядеть? Вот код -


    Код (Text):
    1. <?php
    2.  
    3.         if (($user['align'] >= '0' && $user['align'] < '2') || ($user['align'] > '2' && $user['align'] < '3')){
    4.             echo "";
    5.             if($_POST['login']) {
    6.            
    7.            
    8.            
    9.            
    10.                 $plusminus = mysql_fetch_array(mysql_query("SELECT `id`, `login` , `karma`, `obshitelnost`, `jumor`, `harizma`, `intellekt`, `sexualnost`, `troll`, `zadrot`, `alco`, `narko` FROM `users` WHERE `login` = '".$_POST['login']."';"));  
    11.                 switch($plusminus){
    12.                
    13.                 case 0:
    14.                 $do = '';
    15.                 break;
    16.                 case 1:
    17.                 $do = '0,01';
    18.                 break;
    19.                 case 2:
    20.                 $do = '-0,01';
    21.                 break;
    22.                
    23.                
    24.                 }
    25.                
    26.                 $features = mysql_fetch_array(mysql_query("SELECT `id`, `login` , `karma`, `obshitelnost`, `jumor`, `harizma`, `intellekt`, `sexualnost`, `troll`, `zadrot`, `alco`, `narko` FROM `users` WHERE `login` = '".$_POST['login']."';"));   
    27.                
    28.                 switch($features){
    29.                
    30.                 case 0:
    31.                 echo "features=0<br>";
    32.                 break;
    33.                 case 1:
    34.                 $skill = 'karma';
    35.                 break;
    36.                 case 2:
    37.                 $skill = 'obshitelnost';
    38.                 break;
    39.                 case 3:
    40.                 $skill = 'jumor';
    41.                 break;
    42.                 case 4:
    43.                 $skill = 'harizma';
    44.                 break;
    45.                 case 5:
    46.                 $skill = 'intellekt';
    47.                 break;
    48.                 case 6:
    49.                 $skill = 'sexualnost';
    50.                 break;
    51.                 case 7:
    52.                 $skill = 'troll';
    53.                 break;
    54.                 case 8:
    55.                 $skill = 'zadrot';
    56.                 break;
    57.                 case 9:
    58.                 $skill = 'alco';
    59.                 break;
    60.                 case 10:
    61.                 $skill = 'narko';
    62.                 break;     
    63.                 }
    64.                
    65.                
    66.  
    67.             $dd = mysql_fetch_array(mysql_query("SELECT `id`, `login` , `karma`, `obshitelnost`, `jumor`, `harizma`, `intellekt`, `sexualnost`, `troll`, `zadrot`, `alco`, `narko` FROM `users` WHERE `login` = '".$_POST['login']."';")); 
    68.                 if($dd) {
    69.  
    70.                         mysql_query("UPDATE `users` SET '$dd' = '$features' + '$do' WHERE `login` = '".$_POST['login']."';");
    71.                                     echo "Коза сделала свой выбор.";
    72.                     }
    73.                                         else {
    74.                         echo "Данного пользователя не существует либо вы не ввели число.";
    75.                     }                      
    76.                
    77.             }
    78.             echo "<form method=post><fieldset><legend>Изменить Козу пользователю</legend>
    79.                     <table width=700><tr>
    80.                     </td><td>Логин:</td><td><input type='text' name='login' value='",$_POST['login'],"'></td>
    81.                    
    82.                     <td>Действие: <select name='plusminus' value='plusminus'>
    83.                     <option value='0'> </option>
    84.                     <option value='1'>+ добавить</option>
    85.                     <option value='2'>- удалить</option></select>
    86.                    
    87.                     <td>Характеристика: <select name='features' value='features'>
    88.                     <option value='0'> </option>
    89.                     <option value='1'>Карма</option>
    90.                     <option value='2'>Общительность</option>
    91.                     <option value='3'>Юмор</option>
    92.                     <option value='4'>Харизма</option>
    93.                     <option value='5'>Интеллект</option>
    94.                     <option value='6'>Сексуальность</option>
    95.                     <option value='7'>Тролль</option>
    96.                     <option value='8'>Задрот</option>
    97.                     <option value='9'>Алкоголизм</option>
    98.                     <option value='10'>Наркомания</option>
    99.                     </select></td><td><input type=submit value='Добавить'></td></tr>";
    100.         }
    101. ?>
    Добавлено спустя 56 секунд:
    Плюсовать должна на +0.01 и на минус -0.01 и колдаун 10 часов. Что тут нетак?
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Меня почему-то смущают кавычки в запросе на изменение значения. Т.е.
    Код (Text):
    1. "UPDATE `users` SET '$dd' = '$features' + '$do'
    Может вы лучше сначала из php-кода сами посчитаете нужное значение, а в update подставите уже сплюсованное значение.
     
  3. Колбася

    Колбася Активный пользователь

    С нами с:
    12 дек 2011
    Сообщения:
    722
    Симпатии:
    0
    Вот немного изменилось -

    Код (Text):
    1. <?php
    2.  
    3.         if (($user['align'] >= '0' && $user['align'] < '2') || ($user['align'] > '2' && $user['align'] < '3')){
    4.             echo "";   
    5.             echo "<form method=post><fieldset><legend>Изменить Козу пользователю</legend>
    6.                     <table width=700><tr>
    7.                     </td><td>Логин:</td><td><input type='text' name='login' value='",$_POST['login'],"'></td>
    8.                    
    9.                     <td>Действие: <select name='plusminus' value='plusminus'>
    10.                     <option value='0'> </option>
    11.                     <option value='1'>+ добавить</option>
    12.                     <option value='2'>- удалить</option></select>
    13.                    
    14.                     <td>Характеристика: <select name='features' value='features'>
    15.                     <option value='0'> </option>
    16.                     <option value='1'>Карма</option>
    17.                     <option value='2'>Общительность</option>
    18.                     <option value='3'>Юмор</option>
    19.                     <option value='4'>Харизма</option>
    20.                     <option value='5'>Интеллект</option>
    21.                     <option value='6'>Сексуальность</option>
    22.                     <option value='7'>Тролль</option>
    23.                     <option value='8'>Задрот</option>
    24.                     <option value='9'>Алкоголизм</option>
    25.                     <option value='10'>Наркомания</option>
    26.                     </select></td><td><input type=submit value='Добавить'></td></tr>";
    27.            
    28.            
    29.            
    30.            
    31.            
    32.            
    33.            
    34.            
    35.             if($_POST['login'] && $_POST['plusminus'] && $_POST['features'] ) {
    36.  
    37.                 switch($_POST['plusminus']){
    38.                 case 0:
    39.                 $do = '';
    40.                 break;
    41.                 case 1:
    42.                 $do = '0,01';
    43.                 break;
    44.                 case 2:
    45.                 $do = '-0,01';
    46.                 break;
    47.                
    48.                
    49.                 }
    50.                
    51.                
    52.                 switch($_POST['features']){
    53.                
    54.                 case 0:
    55.                 $skill = '';
    56.                 break;
    57.                 case 1:
    58.                 $skill = 'karma';
    59.                 break;
    60.                 case 2:
    61.                 $skill = 'obshitelnost';
    62.                 break;
    63.                 case 3:
    64.                 $skill = 'jumor';
    65.                 break;
    66.                 case 4:
    67.                 $skill = 'harizma';
    68.                 break;
    69.                 case 5:
    70.                 $skill = 'intellekt';
    71.                 break;
    72.                 case 6:
    73.                 $skill = 'sexualnost';
    74.                 break;
    75.                 case 7:
    76.                 $skill = 'troll';
    77.                 break;
    78.                 case 8:
    79.                 $skill = 'zadrot';
    80.                 break;
    81.                 case 9:
    82.                 $skill = 'alco';
    83.                 break;
    84.                 case 10:
    85.                 $skill = 'narko';
    86.                 break;     
    87.                 }
    88.                
    89.                
    90.  
    91.             $dd = mysql_fetch_array(mysql_query("SELECT `id`, `login` , `karma`, `obshitelnost`, `jumor`, `harizma`, `intellekt`, `sexualnost`, `troll`, `zadrot`, `alco`, `narko` FROM `users` WHERE `login` = '".$_POST['login']."';")); 
    92.                 if($dd) {
    93.  
    94.                         mysql_query("UPDATE `users` SET '$skill' = '$do' + '$skill' WHERE `login` = '".$_POST['login']."';");
    95.                                     echo "Коза сделала свой выбор.";
    96.                     }
    97.                                         else {
    98.                         echo "Данного пользователя не существует либо вы не ввели число.";
    99.                     }                      
    100.                
    101.             }
    102.  
    103.         }
    104. ?>
    Добавлено спустя 1 минуту 14 секунд:
    А как быть с запросами mysql по харакретистикам карма харизма и тд ...
    как их вписать правильно в mysql запрос?
    вот в этот
    Код (Text):
    1. mysql_query("UPDATE `users` SET '$skill' = '$do' + '$skill' WHERE `login` = '".$_POST['login']."';");
     
  4. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Попытайся отладить...

    Воспользуйся mysql_error() или выполни получившийся запрос в phpmyadmin.
    Ты получишь ошибку с описанием, ну а дольше дело техники :)
     
  5. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Вообще, может я и не прав. У вас же имя полей в переменных, так что так как я написал, и не получится. Это я поторопился. Я такой способ использовал при отладке sql-запросов - логировал сами запросы в файл, потом выполнял их phpMyAdmin, что вам и написал smitt.
     
  6. Колбася

    Колбася Активный пользователь

    С нами с:
    12 дек 2011
    Сообщения:
    722
    Симпатии:
    0
    Если так


    Код (Text):
    1. <?php
    2.  
    3.         if (($user['align'] >= '0' && $user['align'] < '2') || ($user['align'] > '2' && $user['align'] < '3')){
    4.             echo "";   
    5.             echo "<form method=post><fieldset><legend>Изменить Козу пользователю</legend>
    6.                     <table width=700><tr>
    7.                     </td><td>Логин:</td><td><input type='text' name='login' value='",$_POST['login'],"'></td>
    8.                    
    9.                     <td>Действие: <select name='plusminus' value='plusminus'>
    10.                     <option value='0'> </option>
    11.                     <option value='1'>+ добавить</option>
    12.                     <option value='2'>- удалить</option></select>
    13.                    
    14.                     <td>Характеристика: <select name='features' value='features'>
    15.                     <option value='0'> </option>
    16.                     <option value='1'>Карма</option>
    17.                     <option value='2'>Общительность</option>
    18.                     <option value='3'>Юмор</option>
    19.                     <option value='4'>Харизма</option>
    20.                     <option value='5'>Интеллект</option>
    21.                     <option value='6'>Сексуальность</option>
    22.                     <option value='7'>Тролль</option>
    23.                     <option value='8'>Задрот</option>
    24.                     <option value='9'>Алкоголизм</option>
    25.                     <option value='10'>Наркомания</option>
    26.                     </select></td><td><input type=submit value='Добавить'></td></tr>";
    27.            
    28.            
    29.            
    30.            
    31.            
    32.            
    33.            
    34.            
    35.             if($_POST['login'] && $_POST['plusminus'] && $_POST['features'] ) {
    36.  
    37.                 switch($_POST['plusminus']){
    38.                 case 0:
    39.                 break;
    40.  
    41.                 case 1:
    42.                 break;
    43.                
    44.                 case 2:
    45.                 break;
    46.                
    47.                
    48.                
    49.                 }
    50.                
    51.                
    52.                 switch($_POST['features']){
    53.                
    54.                 case 0:
    55.                 break;
    56.                
    57.                 case 1:
    58.                 break;
    59.                
    60.                 case 2:
    61.                 break;
    62.                
    63.                 case 3:
    64.                 break;
    65.                
    66.                 case 4:
    67.                 break;
    68.                
    69.                 case 5:
    70.                 break;
    71.                
    72.                 case 6:
    73.                 break;
    74.                
    75.                 case 7:
    76.                 break;
    77.                
    78.                 case 8:
    79.                 break;
    80.                
    81.                 case 9:
    82.                 break;
    83.                
    84.                 case 10:
    85.                 break;     
    86.                 }
    87.                
    88.                
    89.                 if ($_POST['plusminus'] == 0 && $_POST['features'] == 0) {
    90.                
    91.                 }
    92.                
    93.                
    94.                
    95.                
    96.                
    97.                
    98.                
    99.                
    100.                
    101.                
    102.                
    103.                
    104.                
    105.                
    106.                                    
    107.                
    108.             }
    109.  
    110.         }
    111. ?>
     
  7. Колбася

    Колбася Активный пользователь

    С нами с:
    12 дек 2011
    Сообщения:
    722
    Симпатии:
    0
    Все я разобрался поцыки :)
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    поцыки? =)
     
  9. Колбася

    Колбася Активный пользователь

    С нами с:
    12 дек 2011
    Сообщения:
    722
    Симпатии:
    0
    :}*Пондырь*