Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
iFok
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 19
1

Update mysql у определенной строчки из цикла while

03.04.2016, 08:53. Просмотров 656. Ответов 20
Метки нет (Все метки)

И так весь код находится на одной страничке с подключение конфигурационого файла ну там соединение с бд, я не сильно шарю в пхп и код полный 0, но все же он работает), выслушаю любую критику и сделаю выводы! Так вот что мне нужно:
Начиная от строчки "// вывод списка серверов" пошел вывод серверов с бд через цикл While, и генерация блоков ну HTML разметка выведена через echo, так вот. В этом HTML так же встроена кнопка через <form> ну при нажатии которой идет POST запрос (который в бд якобы должен записать новое значение), она записывает значение но записывает всем строчкам..... не могу понять в чем дело... думаю что это из за цикла то, что кнопка сделана в цикле...
сайт с работой скрипта http://gtamon.ru/ кнопка - стрелка
PHPHTML
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<?php
include_once('config/config.php');
 
 
?>
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru"><head profile="http://gmpg.org/xfn/11">
 
 <link rel="shortcut icon" href="/img/favicon.png" type="image/png">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<meta http-equiv="Content-Style-Type" content="text/css">
<meta name="keywords" content="samp, мониторинг, sa-mp, самп, гта, gta, маниторинг gta, маниторинг, сервера, гта онлайн, gta онлайн, online, список серверов samp">
<meta name="description" content="GTAMON - это мониторинг SAMP серверов. Хотите найти сервер, что бы провести время или желаете рассказать о своем сервере, тогда скорее переходите на сайт. Постоянные акции и подарки от администрации твоего любимого сервера. Ждем тебя!">
<title>GTAMON - МОНИТОРИНГ СЕРВЕРОВ</title>
<link rel="stylesheet" href="./css/style.css" type="text/css">
 
 
 
<style>
    src: url(./css/UniSans.ttf);
</style>
</head>
 
 
<body>
 
 
    <div class="wrapper"> 
        <div class="otp">
        </div>
        <div class="content">
            <div class="block_up">
                <div class="logo_block">
                    <div class="logo">
                    </div>
                        <a href="module/addserver.php"><div class="add_server">
                        <center><div class="text_add_server">
                        Добавить сервер
                        </div></center></a>
                    </div>
                </div>
                <div class="piar_block">
                    <div class="server_1">
                        <div class="logo_server_1">
                        <a href="index.html"><img src="/img/play_bot.png" alt="PLAY!"></a>
                        </div>
                        <div class="text_server_1">
                            <div class="name_server_1">
                            RUSSIAN SERVER [RUS/LT]
                            </div>
                            <div class="ip_server_1">
                            23.435.432.23:7777
                            </div>
                            <div class="mode_server_1">
                            ROLE PLAY
                            </div>                            
                        </div>
                    </div>
                    <div class="server_2">
                        <div class="logo_server_2">
                        <a href="index.html"><img src="/img/play_bot.png" alt="PLAY!"></a>
                        </div>
                        <div class="text_server_2">
                            <div class="name_server_2">
                            RUSSIAN SERVER [RUS/LT]
                            </div>
                            <div class="ip_server_2">
                            23.435.432.23:7777
                            </div>
                            <div class="mode_server_2">
                            ROLE PLAY
                            </div>                            
                        </div>
                    </div>
                    <div class="podblock">
                        РЕКОМЕНДОВАНО ВАМ
                    </div>        
                </div>                
            </div>
 
                    
<?php    
// проверка на работоспособность сервера
        while($array = mysqli_fetch_array($query3))
{    
    if(!$array['gamemode'] != null){
  unset($array['ip']);
  unset($array['port']);
    }
else{
    // вывод списка серверов
    $url = $array['web'];
    
             echo  '<div class="servers">
             <form method="POST" action="">
                <div class="rank_block">
                     <div class="rank" align="right">
                         rank<br><font size="3" color="#000">'.$array['value'].'</font>
                     </div>
                     <div class="rank_up">
                     <center><input type="submit" name="votes" value=""></input></center>
                     </div>
                </div>
                </form>
                <div class="servers_info"> 
                    <div class="name_serv">'
                         .$array['servername'].
                    '</div>
                    <div class="players_serv">'
                        .$array['pl'].'/'.$array['maxpl'].
                    '</div>
                    <div class="mode_serv">'
                        .$array['gamemode'].
                    '</div>
                    <div class="add_to_samp">
                    '.$array['ip'].':'.$array['port'].'
                    </div>    
                    <div class="site">
                        <a href="http://'.$url.'" rel="external">Сайт</a>
                    </div>    
                </div>    
            </div>
            <a href="samp://'.$array['ip'].':'.$array['port'].'">
            <div class="play">
                <div class="text_play">
                    PLAY!
                </div>    
            </div></a> 
            </br>';
            
// Блок голосования
        if(isset($_POST['votes'])){
        $idds = $array['id'];
        $s = $array['value'];
        $vs = ++$s;
    mysqli_query($connect,"UPDATE servers SET value='$vs' WHERE id = $idds ");
    }
    }
 
}
mysqli_close($connect);
 
 
?>
            </div>    
    <?php
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href=index.php?page=1><<</a> | <a href=index.php?page='. ($page - 1) .'><</a> | ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' | <a href=index.php?page='. ($page + 1) .'>></a> | <a href=index.php?page=' .$total. '>>></a>';
 
// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 5 > 0) $page5left = ' <a href=index.php?page='. ($page - 5) .'>'. ($page - 5) .'</a> | ';
if($page - 4 > 0) $page4left = ' <a href=index.php?page='. ($page - 4) .'>'. ($page - 4) .'</a> | ';
if($page - 3 > 0) $page3left = ' <a href=index.php?page='. ($page - 3) .'>'. ($page - 3) .'</a> | ';
if($page - 2 > 0) $page2left = ' <a href=index.php?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href=index.php?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
 
if($page + 5 <= $total) $page5right = ' | <a href=index.php?page='. ($page + 5) .'>'. ($page + 5) .'</a>';
if($page + 4 <= $total) $page4right = ' | <a href=index.php?page='. ($page + 4) .'>'. ($page + 4) .'</a>';
if($page + 3 <= $total) $page3right = ' | <a href=index.php?page='. ($page + 3) .'>'. ($page + 3) .'</a>';
if($page + 2 <= $total) $page2right = ' | <a href=index.php?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href=index.php?page='. ($page + 1) .'>'. ($page + 1) .'</a>';
 
// Вывод меню если страниц больше одной 
 
 
echo "<div class="page">";
echo "<center><div class="block_page">";
if ($total > 1)
{
Error_Reporting(E_ALL & ~E_NOTICE);
echo ''.$pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage.'';
}
echo "</div>";
echo "</div></center>";
 
 
 
?>
        </div>    
    </div>
</body>
 
 
 
</html>
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2016, 08:53
Ответы с готовыми решениями:

MySQL Update
Доброго времени суток. Имеется код: mysql_connect(...) or die...

Не работает UPDATE для mysql
Привет всем, подскажите пожалуйста, никак не могу разобраться, почему не...

mysql update обновление не цифрового значения
UPDATE LOW_PRIORITY `group` SET `kolvo` = `kolvo`-1, `userid`= нужно взять всё...

Ошибка при update php + mysql
$sql = &quot;UPDATE `users` SET...

Запрос UPDATE в mysql рнр не работает
нужно сделать редактирование записи в таблице при помощи UPDATE делал вроде как...

20
Jodah
Эксперт PHP
2842 / 2475 / 1055
Регистрация: 01.08.2012
Сообщений: 8,768
03.04.2016, 09:39 2
Лучший ответ Сообщение было отмечено iFok как решение

Решение

У вас не только вывод, но и обновление в цикле. Причём нет проверки, какая именно кнопка была нажата. Поэтому да, при клике по любой из кнопок происходит обновление всех записей.

Для начала нужно добавить каждой кнопке свой id. Но поскольку value использовать нельзя (получится кривая вёрстка, поскольку id будет залезать на стрелку), будем передавать через название. Т.е. строку 101 заменить на:
PHPHTML
1
<center><input type="submit" name="votes[<?php echo $array['id']?>]" value="" /></center>
Далее меняем проверку и обновление (строки 132-137):
PHP
1
2
3
4
5
6
if(isset($_POST['votes']))
{
    $id = (int) key($_POST['votes']); // Получаем идентификатор сервера
    if($id > 0) // На всякий случай проверка на корректность id
        mysqli_query($connect, "UPDATE `servers` SET `value` = `value` + 1 WHERE `id` = '$id'"); // Обновляем
}
По идее всё. Соответственно 132-137 удаляем, а этот код пишем после 138 строки, чтобы вывести обновление из цикла.
1
iFok
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 19
03.04.2016, 10:29  [ТС] 3
Ну уже лучше, почти работает)
сделал так
PHP
1
<center><input type="submit" name="votes['.$array['id'].']" value=""></input></center>
Но, теперь появилась другая проблема, нажимаешь на кнопочку он голос добавляет, потом нажимаешь на другую кнопку он добавляет голос у прежней строчки а не у новой на которую нажал, голосует за предыдущий сервер а не за новый, как это исправить) а так уже почти все работает!)
0
Jodah
Эксперт PHP
2842 / 2475 / 1055
Регистрация: 01.08.2012
Сообщений: 8,768
03.04.2016, 11:17 4
iFok, а, видимо обновление происходит после вывода, поэтому показываются старые данные. Я так понимаю, $query3 лежит в файле подключения к БД, тогда проще всего поставить редирект:

PHP
1
2
3
4
5
6
7
8
9
10
if(isset($_POST['votes']))
{
    $id = (int) key($_POST['votes']); // Получаем идентификатор сервера
    if($id > 0) // На всякий случай проверка на корректность id
    {
        mysqli_query($connect, "UPDATE `servers` SET `value` = `value` + 1 WHERE `id` = '$id'"); // Обновляем
        header('Location: /'); // Редирект на страницу с изменёнными данными
        die();
    }
}
Добавлено через 2 минуты
Цитата Сообщение от iFok Посмотреть сообщение
сделал так
Да, забыл, что код через echo выводится, всё верно.
1
iFok
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 19
03.04.2016, 15:53  [ТС] 5
Спасибо, я просто сделал проверку по ip адресу, что уже голосовали) и все заработало) долго я промучался....
Я так и думал что нужно кнопке id присвоить но не понимал как! Спасибо за помощь! Тема решена можно закрывать)

Jodah, еще вопросик.
После голосования, нужно обновить страничку что-бы число голосов поменялось, возможно это сделать без обновления страницы вручную... или это уже JS юзать надо?
0
Jodah
Эксперт PHP
2842 / 2475 / 1055
Регистрация: 01.08.2012
Сообщений: 8,768
03.04.2016, 15:58 6
iFok, так 7-8 строчки это и делают, редирект на эту же страницу, чтобы показались обновлённые данные.
0
iFok
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 19
03.04.2016, 17:20  [ТС] 7
Jodah, Что-то как-то не хотит он обновляться)
0
Jodah
Эксперт PHP
2842 / 2475 / 1055
Регистрация: 01.08.2012
Сообщений: 8,768
03.04.2016, 17:34 8
iFok, а, это из-за того, что вывод данных идёт раньше заголовка...
Тогда перенесите 1-ую строку между 6 и 7 (т.е. чтобы сначала шло подключение конфига, затем html), и сразу после конфига - обновление:

PHPHTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
include_once('config/config.php');
 
if(isset($_POST['votes']))
{
    $id = (int) key($_POST['votes']); // Получаем идентификатор сервера
    if($id > 0) // На всякий случай проверка на корректность id
    {
        mysqli_query($connect, "UPDATE `servers` SET `value` = `value` + 1 WHERE `id` = '$id'"); // Обновляем
        header('Location: /'); // Редирект на страницу с изменёнными данными
        die();
    }
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- Остальной HTML-код -->
Перед открывающим тегом <?php не должно быть никаких пробелов, переносов строк и прочего. Кроме этого, файл должен быть в кодировке utf8 without BOM (поменять можно в Notepad++).
1
sad67man
707 / 575 / 348
Регистрация: 23.08.2015
Сообщений: 1,441
03.04.2016, 17:34 9
Заголовки с редиректом должны отправляться до любого вывода. Вставьте обработку в самый верх страницы, или лучше вынести в отдельный файл.
1
iFok
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 19
03.04.2016, 19:52  [ТС] 10
Что-то вообще беда,сайт падает с ошибкой ERR_TOO_MANY_REDIRECTS
0
sad67man
707 / 575 / 348
Регистрация: 23.08.2015
Сообщений: 1,441
03.04.2016, 20:08 11
Видимо получается бесконечное перенаправление. Покажите ваш код?
0
iFok
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 19
03.04.2016, 20:28  [ТС] 12
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
include_once('config/config.php');
 
if(isset($_POST['votes']))
{
    $id = (int) key($_POST['votes']); // Получаем идентификатор сервера
    if($id > 0) // На всякий случай проверка на корректность id
    {
        mysqli_query($connect, "UPDATE `servers` SET `value` = `value` + 1 WHERE `id` = '$id'"); // Обновляем
        header('Location: /'); // Редирект на страницу с изменёнными данными
        die();
    }
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- Остальной HTML-код -->
Вот он, все идет в самом начале!
0
Jodah
Эксперт PHP
2842 / 2475 / 1055
Регистрация: 01.08.2012
Сообщений: 8,768
03.04.2016, 21:27 13
iFok, видимо что-то ещё поменяли. В этом коде не может быть бесконечный цикл, поскольку редирект идёт только при POST-запросе, а при редиректе запрос идёт методом GET.

Надо смотреть весь код целиком в его нынешнем виде.
0
iFok
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 19
03.04.2016, 21:39  [ТС] 14
Jodah,
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
<?php
include_once('config/config.php');
        header('Location: /'); // Редирект на страницу с изменёнными данными
        die();
    if(isset($_POST['votes'])){
        $ipuser = $_SERVER["REMOTE_ADDR"];
        // проверка ип адреса
        $proverkaip = mysqli_query($connect, "SELECT * FROM vote WHERE ipvote='$ipuser'");
        $resultproverki = mysqli_fetch_array($proverkaip);
        if(mysqli_num_rows($proverkaip) > 0){
                    echo '<div class="error_block"> 
                        <center><div class="text_error">
                        Вы уже ГОЛОСОВАЛИ!          
                        </div></center>
                      </div>';
    }else{
        // запись ип адреса
    mysqli_query($connect,"INSERT INTO vote(ipvote) VALUES ('$ipuser')");
    $id = (int) key($_POST['votes']); // Получаем идентификатор сервера
    if($id > 0) // На всякий случай проверка на корректность id
        mysqli_query($connect, "UPDATE `servers` SET `value` = `value` +1 WHERE `id` = '$id'");
        echo '<div class="error_block"> 
                        <center><div class="text_error">
                        Спасибо, Ваш голос принят!          
                        </div></center>
                      </div>';
        }
    }
?>
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru"><head profile="http://gmpg.org/xfn/11">
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <link rel="shortcut icon" href="/img/favicon.png" type="image/png">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<meta http-equiv="Content-Style-Type" content="text/css">
<meta name="keywords" content="samp, мониторинг, sa-mp, самп, гта, gta, маниторинг gta, маниторинг, сервера, гта онлайн, gta онлайн, online, список серверов samp">
<meta name="description" content="GTAMON - это мониторинг SAMP серверов. Хотите найти сервер, что бы провести время или желаете рассказать о своем сервере, тогда скорее переходите на сайт. Постоянные акции и подарки от администрации твоего любимого сервера. Ждем тебя!">
<title>GTAMON - МОНИТОРИНГ СЕРВЕРОВ</title>
<link rel="stylesheet" href="./css/style.css" type="text/css">
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js'></script>
 
 
 
<style>
    src: url(./css/UniSans.ttf);
</style>
</head>
 
 
<body>
 
 
    <div class="wrapper"> 
        <div class="otp">
        </div>
        <div class="content">
            <div class="block_up">
                <div class="logo_block">
                    <div class="logo">
                    </div>
                        <a href="module/addserver.php"><div class="add_server">
                        <center><div class="text_add_server">
                        Добавить сервер
                        </div></center></a>
                    </div>
                </div>
                <div class="piar_block">
                    <div class="server_1">
                        <div class="logo_server_1">
                        <a href="index.html"><img src="/img/play_bot.png" alt="PLAY!"></a>
                        </div>
                        <div class="text_server_1">
                            <div class="name_server_1">
                            RUSSIAN SERVER [RUS/LT]
                            </div>
                            <div class="ip_server_1">
                            23.435.432.23:7777
                            </div>
                            <div class="mode_server_1">
                            ROLE PLAY
                            </div>                            
                        </div>
                    </div>
                    <div class="server_2">
                        <div class="logo_server_2">
                        <a href="index.html"><img src="/img/play_bot.png" alt="PLAY!"></a>
                        </div>
                        <div class="text_server_2">
                            <div class="name_server_2">
                            RUSSIAN SERVER [RUS/LT]
                            </div>
                            <div class="ip_server_2">
                            23.435.432.23:7777
                            </div>
                            <div class="mode_server_2">
                            ROLE PLAY
                            </div>                            
                        </div>
                    </div>
                    <div class="podblock">
                        РЕКОМЕНДОВАНО ВАМ
                    </div>        
                </div>                
            </div>
                <script type="text/javascript">
    setTimeout(function(){$('.error_block').fadeOut('fast')},2000);
    </script>
 
                    
<?php  
 
// проверка на работоспособность сервера
        while($array = mysqli_fetch_array($query3))
{    
    if(!$array['gamemode'] != null){
    }
else{
    // вывод списка серверов
    $url = $array['web'];
    
             echo  '<div class="servers">
             <form method="POST" action="">
                <div class="rank_block">
                     <div class="rank" align="right">
                         rank<br><font size="3" color="#000">'.$array['value'].'</font>
                     </div>
                     <div class="rank_up">
                     <center><input type="submit" name="votes['.$array['id'].']" value=""></input></center>
                     </div>
                </div>
                </form>
                <div class="servers_info"> 
                    <div class="name_serv">'
                         .$array['servername'].
                    '</div>
                    <div class="players_serv">'
                        .$array['pl'].'/'.$array['maxpl'].
                    '</div>
                    <div class="mode_serv">'
                        .$array['gamemode'].
                    '</div>
                    <div class="add_to_samp">
                    '.$array['ip'].':'.$array['port'].'
                    </div>    
                    <div class="site">
                        <a href="http://'.$url.'" rel="external">Сайт</a>
                    </div>    
                </div>    
            </div>
            <a href="samp://'.$array['ip'].':'.$array['port'].'">
            <div class="play">
                <div class="text_play">
                    PLAY!
                </div>    
            </div></a> 
            </br>';
            
// Блок голосования
 
    }
 
}
mysqli_close($connect);
 
?>
            </div>    
<?php
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href=index.php?page=1><<</a> | <a href=index.php?page='. ($page - 1) .'><</a> | ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' | <a href=index.php?page='. ($page + 1) .'>></a> | <a href=index.php?page=' .$total. '>>></a>';
 
// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 5 > 0) $page5left = ' <a href=index.php?page='. ($page - 5) .'>'. ($page - 5) .'</a> | ';
if($page - 4 > 0) $page4left = ' <a href=index.php?page='. ($page - 4) .'>'. ($page - 4) .'</a> | ';
if($page - 3 > 0) $page3left = ' <a href=index.php?page='. ($page - 3) .'>'. ($page - 3) .'</a> | ';
if($page - 2 > 0) $page2left = ' <a href=index.php?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href=index.php?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
 
if($page + 5 <= $total) $page5right = ' | <a href=index.php?page='. ($page + 5) .'>'. ($page + 5) .'</a>';
if($page + 4 <= $total) $page4right = ' | <a href=index.php?page='. ($page + 4) .'>'. ($page + 4) .'</a>';
if($page + 3 <= $total) $page3right = ' | <a href=index.php?page='. ($page + 3) .'>'. ($page + 3) .'</a>';
if($page + 2 <= $total) $page2right = ' | <a href=index.php?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href=index.php?page='. ($page + 1) .'>'. ($page + 1) .'</a>';
 
// Вывод меню если страниц больше одной 
 
 
echo "<div class=\"page\">";
echo "<center><div class=\"block_page\">";
if ($total > 1)
{
Error_Reporting(E_ALL & ~E_NOTICE);
echo ''.$pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage.'';
}
echo "</div>";
echo "</div></center>";
 
 
 
?> 
        </div>    
    </div>
</body>
 
 
 
</html>
0
Jodah
Эксперт PHP
2842 / 2475 / 1055
Регистрация: 01.08.2012
Сообщений: 8,768
03.04.2016, 21:50 15
iFok, зачем вы вынесли header и die за пределы проверки if(isset($_POST['votes']))?
Конечно, в таком виде будет бесконечный цикл.
0
iFok
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 19
03.04.2016, 21:55  [ТС] 16
Jodah,
Изменил, сделал так.
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
<?php
include_once('config/config.php');
 
    if(isset($_POST['votes'])){
        $ipuser = $_SERVER["REMOTE_ADDR"];
        // проверка ип адреса
        $proverkaip = mysqli_query($connect, "SELECT * FROM vote WHERE ipvote='$ipuser'");
        $resultproverki = mysqli_fetch_array($proverkaip);
        if(mysqli_num_rows($proverkaip) > 0){
                    echo '<div class="error_block"> 
                        <center><div class="text_error">
                        Вы уже ГОЛОСОВАЛИ!          
                        </div></center>
                      </div>';
    }else{
        // запись ип адреса
    mysqli_query($connect,"INSERT INTO vote(ipvote) VALUES ('$ipuser')");
    $id = (int) key($_POST['votes']); // Получаем идентификатор сервера
    if($id > 0) // На всякий случай проверка на корректность id
        mysqli_query($connect, "UPDATE `servers` SET `value` = `value` +1 WHERE `id` = '$id'");
                header('Location: /'); // Редирект на страницу с изменёнными данными
        die();
        echo '<div class="error_block"> 
                        <center><div class="text_error">
                        Спасибо, Ваш голос принят!          
                        </div></center>
                      </div>';
        }
    }
?>
Толку нет, обновления тоже пока сам не обновишь счетчик не поменяется.
0
sad67man
707 / 575 / 348
Регистрация: 23.08.2015
Сообщений: 1,441
03.04.2016, 23:01 17
123

Добавлено через 17 минут
Мне не понятна строчка $id = (int) key($_POST['votes']); по сути оно тут будет всегда возвращать 0. Вы не попадаете в условие с редиректом

Добавлено через 34 минуты
А нет. Извиняюсь был не внимательным $id = (int) key($_POST['votes']); тут все нормально.
0
Jodah
Эксперт PHP
2842 / 2475 / 1055
Регистрация: 01.08.2012
Сообщений: 8,768
03.04.2016, 23:24 18
Упс, неправильно прочитал код. Сейчас попробую найти ошибку.
0
sad67man
707 / 575 / 348
Регистрация: 23.08.2015
Сообщений: 1,441
03.04.2016, 23:32 19
Вообще я вставил себе код. У меня редирект срабатывает. Страница обновляется.
0
Jodah
Эксперт PHP
2842 / 2475 / 1055
Регистрация: 01.08.2012
Сообщений: 8,768
03.04.2016, 23:32 20
iFok, немного запутался, видимо пора спать. Какие сейчас ошибки на сайте? Не обновляется количество после нажатия на кнопку?

Добавьте в самое начало скрипта:
PHP
1
2
ini_set('display_errors', 'on');
error_reporting(E_ALL);
Какие-нибудь ошибки возникают?
0
03.04.2016, 23:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2016, 23:32

Ошибка PHP + MySQL. Не работает запрос UPDATE
Здраствуйте. При написании страници для редакторования собержимого базы SQL...

В PHP-коде не выполняются mysql-запросы DELETE и UPDATE
Доброго времени суток, собирая своего &quot;франкенштейна&quot; по кусочкам, наткнулся...

Добавление и обновление (insert and update) данных связанных таблиц mysql
Добрый день всем. Стараюсь изучить связи таблиц в mysql и остановился на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru