Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2016, 20:41   #11
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Нельзя, Бобби придет.

Интересно, кстати, как именно формируется такой $_POST['usrids']?
Если значений там может быть до 100 штук одной строкой – ну не лапками же эти значения туда вбиваются, да через запятую?
В любом случае, конечно же, нужно проверять формат данных.
Например, регуляркой: только цифры, разделенные запятыми (ну, может пробелы ещё).
Andkorol вне форума Ответить с цитированием
Старый 10.01.2016, 21:58   #12
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Сервер пробегается по списку в цикле и собирает всё имеющиеся в массиве uids у кого статус NotDisconnected
Код:
s := s +','
Shouldercannon вне форума Ответить с цитированием
Старый 12.01.2016, 17:28   #13
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Хочу в цикле по количеству записей вытаскивать uid текущей строки ($i)
Бред какой-то получился
PHP код:
<?php
include "utils.php";
// Проверка на пустоту
if (empty($_POST['usrids'])) {
    die;
}
// Удаляем последний символ с конца строки
$str substr($_POST['usrids'], 0, -1);
// Заполняем массив
$arr explode(','$str);
// Проверка количества записей в таблице и массиве
$query "SELECT * FROM `users`";    
$result mysql_query($query) or die ("ERROR: ".mysql_error());
if (
mysql_num_rows($result) > count($arr)) {
    
// Проверка
    
for ($i 1$i <= mysql_num_rows($result); $i++) {
        
$query "SELECT * FROM `users` WHERE `uid` = '".$i['uid']."'";
        
$result mysql_query($query) or die ("ERROR: ".mysql_error());
        
$row mysql_query($result);
        for (
$i2 0$i2 <= count($arr); $i2++) {
            
// Если uid в таблице совпал с id в массиве
            
if ($row['uid'] == $arr[$i2]) {
                
// Если status = 1
                
if ($row['status'] != "1") {
                    
$query "UPDATE users SET
                             status = 0,
                             WHERE `uid` = '"
.$i2['uid']."'";
                }
            }
        }
    }
}
?>
И правильно ли в данном случае начинать цикл с 1 по mysql_num_rows($result)?

Последний раз редактировалось Shouldercannon; 12.01.2016 в 18:00.
Shouldercannon вне форума Ответить с цитированием
Старый 12.01.2016, 18:50   #14
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

вообще неправильно в циклах запросы делать... вам про это говорили не раз в этой же теме - а вам видимо все равно
... это делается вообще все одним запросом.. без циклов
PHP код:
// Проверка на пустоту
if (empty($_POST['usrids'])) {
    die;
}
 
$uids $_POST['usrids'];
 
$query "UPDATE users SET status = 0 WHERE `uid` IN($uids)";
 
$result mysql_query($query) or die ("ERROR: ".mysql_error()); 
почитайте про БД и как правильно строить запросы
ADSoft вне форума Ответить с цитированием
Старый 12.01.2016, 19:13   #15
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Да если за 8 лет так ничего и не почитал (как и по другим темам), то вряд ли уже почитает.

И даже если в цикле делать, то в предыдущей (и даже в этой тоже) теме уже ответили же про explode.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.01.2016, 19:17   #16
WhatO_o?!
Пользователь
 
Регистрация: 11.06.2011
Сообщений: 54
По умолчанию

А почему никто не кричит, что засовывать в базу полученные переменные без проверки равносильно суициду?
Здесь могла бы быть ваша реклама
WhatO_o?! вне форума Ответить с цитированием
Старый 12.01.2016, 19:22   #17
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Как никто? А на первой и начале этой страницы что?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.01.2016, 21:20   #18
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Да если за 8 лет так ничего и не почитал (как и по другим темам), то вряд ли уже почитает.

И даже если в цикле делать, то в предыдущей (и даже в этой тоже) теме уже ответили же про explode.
С PHP от силы месяц занимался

Отправил в PHP строку 1,2,3,. Статус меняется только у первого uid, до запятой, остальные не берутся. Совсем запутался. status нужно менять у uid, которые не присутствуют в присланной строке.
PHP код:
<?php
include "utils.php";
// Проверка на пустоту
if (empty($_POST['usrids'])) {
    die;
}
$uids $_POST['usrids'];
$query "UPDATE users SET status = 0 WHERE `uid` IN('".$uids."')";
$result mysql_query($query) or die ("ERROR: ".mysql_error());
?>

Последний раз редактировалось Shouldercannon; 12.01.2016 в 21:23.
Shouldercannon вне форума Ответить с цитированием
Старый 12.01.2016, 21:40   #19
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Shouldercannon Посмотреть сообщение
status нужно менять у uid, которые не присутствуют в присланной строке.
Код:
WHERE `uid` NOT IN(
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.01.2016, 22:07   #20
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Как это месяц если как минимум с 2012 периодически были вопросы по нему?
И речь же не про РНР в основном, а про основы работы с БД, SQL.

Ну и про РНР почитали б хоть http://www.phptherightway.com / http://getjump.me/ru-php-the-right-way
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PHP цикл! marikkil Помощь студентам 1 19.02.2013 11:41
цикл по записям vladislav_m БД в Delphi 7 05.04.2012 19:35
Цикл [PHP/MYSQL] madmaniac Помощь студентам 2 21.01.2012 16:58
Цикл с удалением в PHP yfnf3 Помощь студентам 1 06.02.2011 22:24
Цикл в php [ for ] Рустам PHP 10 05.12.2008 15:32