Спасибо, так и сделал пока, но изначально в вопросе не написал, что хотел именно через array_keys, или подобные стандартные функции php, т.к. массив очень большой, а foreach работает в разы дольше, перебирая каждый элемент
Как можно получить ключи, например, со значением ['b'] (должен вернуть ключ ['i'])? Пробовал через array_keys указывать значение, но сразу подозревал, что так не получится)
Тогда придется делать два запроса. А велика ли вероятность, что пока выполнился первый запрос Select, но еще не выполнился второй запрос Update, другой пользователь может получить эти данные в этот промежуток времени между запросами? (если конечно нагрузка на сайт будет большая)
Привет всем. Долго гуглил, но решения найти не смог. Да и язык MySql знаю не слишком хорошо. Хотелось бы составить такой запрос, который выберет запись из базы, и одновременно обновит данные в ней (нужно получить данные для работы с ними, и пометить эту строку в таблице как заблокированную, чтобы другой пользователь не смог получить к ней доступ, пока эти данные используются другим пользователем). Заранее спасибо за помощь.
Firebug показывает, что оба идут как POST. Заголовки у обоих одинаковые. Единственное различие только в параметре data. В первом запросе он 0, во втором - строка. Если первый запрос разбирается хорошо, где ошибка во втором?
Мелкий пишет:
Более чем достаточная аргументация рыть флеш, а не PHP.
флеш использует одну и ту же функцию для отправки запроса. Там в любом случае POST. Единственный вариант - неправильно сформированный запрос, хотя ошибки я не увидел. Из флеш data кодирую через encodeURIComponent. Вроде все правильно (Добавление)
Всем спасибо) Проблема решилась. Это полный эпик-фейл. Firebug добавлял в пост-параметры заголовки запроса, и образовалась каша. Поэтому php не мог разобрать их. я сперва внимания не обратил, просто повторял запрос через Firebug, т.к. он генерируется с сайта, и не хотелось формировать его снова, чтобы вывести параметры post. Пора завязывать с кодингом, а то голова уже ничего не соображает)
Во-первых, без urldecode все раньше обрабатывалось норм, раньше для передачи использовал JavaScript, сейчас использую Flash. Во-вторых, первый запрос нормально обрабатывается, а второй - нет. Хотя оба они почти идентичны. Есть еще предположения?
Приветствую всех. Пишу в форум новичков, потому что не знаю, куда еще написать ТАКОЙ вопрос. Сначала html-шаблон перекосило из-за символа BOM. Потом ActionScript неправильно обрабатывал запрос из-за незамеченного символа в строке, которую я передавал. Затем JavaScript упорно тыкал меня в ошибку, что нет слешей перед кавычками, хотя раньше они всегда выводились в php. Со всеми этими кошмарами кодера я совладел, но сейчас появилась новая аномалия - не принимаются переменные в массив $_POST. Схема такая - флеш отправляет пост-запрос php-скрипту. Затем отсылает запрос на другой адрес, а результат отсылает снова тому скрипту. Функция отправки одна и та же, только адрес и данные разные. Вот пример:
первый запрос к скрипту
Дальше по тексту ошибки написано даже, в какой строке проблема. Раз массив многомерный - самая простая ошибка - искать не на том уровне, где тот должен быть.
Так я знаю, где проблема, оттуда и взял индекс. Если бы что-то было не верно, код бы не работал. Но все работает, просто по какой-то причине ошибку пишет.
Индекс u в массиве присутствует, выводится через echo, и даже все работает. Я бы может и не заморачивался из-за этого, но результат работы скрипта выводится в ajax, и некрасиво, что там вываливаются ошибки. Массив проходит через несколько функций, может, причина в этом. Если кто-нибудь знает, отпишитесь.
illy, спасибо огромное! только скобку одну пропустил)
Vinyl, нет, надо все результаты, которые в базе) почему-то сразу не подумал, что надо в цикле перебирать. в пхп про функцию написано, что она сразу массив возвращает
Всем привет. В общем, проблема в том, что запрос в базу возвращает только один элемент, хотя условиям запроса соответствует две и более строк в таблице.
Запрос принимает следующий вид:
("SELECT login FROM accounts WHERE owner_id='".$_COOKIE['id']."'")
В правильности запроса уверен на 99%, т.к. несколько раз перечитал faq.
Возвращается только первый подходящий элемент, т.е. значение 'login', хотя в таблице у двух строк owner_id одинаковый.
Буду признателен, если кто-нибудь поможет с решением.
нужно убрать лишние кавычки. в голову пришла только одна идея - искать текст между :" и "} и проверять количество кавычек. если больше двух - убирать лишние, т.к. из-за них строка корректно не обрабатывается. но я не слишком хорошо умею составлять регулярные выражения, поэтому пришел за помощью сюда.