Непостоянная проверка массива dict

Происходит что-то странное, не могу указать пальцем, почему.

Массив $ регионов - это обратный словарь регионов [regionCode => regionID]. В функции parse_r () где проверяется наличие нового regionCode, если да, то этот regionCode добавлен в словарь. Это единственное место для добавления нового региона. Но иногда (возможно, в 1 из 50 случаев) добавляется новая строка с ранее существовавшим названием региона. regionCode - текстовое, не уникальное поле.

Почему это происходит, что я делаю не так?

function reps() {
global $mysqli;
$regions=get_regions();
...
$status = parse_r($filename);
...
}

function get_regions() {
global $mysqli;
$regions=array();
  $sql = 'SELECT * FROM `regionCodes` ORDER BY `regionCodes`.`id` DESC';
  $res = $mysqli->query($sql);
  if ( $res !== false ) { 
     while ($row = $res->fetch_assoc()) {
       $regions[$row['regionCode']]=$row['id'];
     }
  }
return $regions;
}

function parse_r($filenameFull) {
global $mysqli, $regions;
  $r['regionCode']=$ttt['regionCode'];
  if ( !(array_key_exists($r['regionCode'], $regions))  ) {
     $sql = sprintf("INSERT INTO `regionCodes`(`regionCode`) VALUES ('%s')", $mysqli->real_escape_string($r['regionCode']) );
     $res = $mysqli->query($sql);
     $regions=get_regions();
  }
  $r['regionID'] = $regions[$r['regionCode']];

То, что выглядит одинаково, не всегда может быть одинаковым. Вы проверяли наличие пробелов или непечатаемых символов? Вы также должны обрезать $ r ['regionCode'] и т. д.

dkasipovic 02.05.2018 10:28

В базовом поиске mysql по regionCode = .. отображаются все строки с таким же regionCode. Не знаю, правильная ли это проверка постфактум ... Также этот трюк `ORDER BY regionCodes.id DESC` гарантирует, что $ r ['regionID'] всегда будет наименьшим значением

IT-O 02.05.2018 10:31
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
29
0

Другие вопросы по теме