Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Проверить значение переменной на совпадение


Автор: Just123 19.2.2010, 13:03
Снова я)) помогите пожалуйста, очень нужна ваша помощь.

Дано:
$row1[old] = массив со значениями для проверки
$row[tel]    = массив с номерами

Требуется проверить каждый номер на совпадение со значением из массива.
т.е.

Каждый номер  из массива $row[tel] нужно проверить на соответствие с каждым значением из массива $row[old],
и если найдено совпадение, то изменить $row[old] который встретился в $row[tel] на $row[new].

Надеюсь нормально объяснил...Уже даже и не знаю, что делать. Никак не выходит ничего.

Прилагаю нерабочий код:
Код

<?php
require_once('config.php');


$connect  = mysqli_connect($host, $login, $password, $dbname);
if (!$connect) {
    echo "Ошибка при подключении к базе данных.";
} 


$query = "SELECT * FROM xsl";
$result = mysqli_query($connect, $query) or die(mysqli_error());
$number = mysqli_num_rows($result);

$query1 = "SELECT * FROM baza";
$result1 = mysqli_query($connect, $query1) or die(mysqli_error());
$number1 = mysqli_num_rows($result1);

while ($row=mysqli_fetch_array($result)) { 
    
        $row1=mysqli_fetch_array($result1);

        
            $pos = strpos($row['tel'], $row1['old']);
            if ($pos === false) {
                echo "Строка '$row1[old]' не найдена в строке '$row[tel]'<br>";
            } else {
                echo "Строка $row1[old] найдена в строке $row[tel]<br>";
                echo " в позиции $pos";
            }
        
    
        /*
            echo "$row[tel]<br>";
            echo "$row1[old]<br>";
            echo "$row1[new]<br>";
        */
        
    
    
    
    
    

}

?>

Автор: нуп 19.2.2010, 13:43
Код


$old = array();
$tel = array();

$query = "SELECT * FROM xsl";
$result = mysqli_query($connect, $query) or die(mysqli_error());

while ($row=mysqli_fetch_array($result)) { 
        $tel[] = $row['tel'];
}


$query = "SELECT * FROM baza";
$result = mysqli_query($connect, $query1) or die(mysqli_error());

while ($row=mysqli_fetch_array($result)) { 
      $old[] = $row['old'];
 }

foreach($old as $o){
      foreach($tel as $t){
             if(strpos($t, $o)){
                    $o = $t;
             }
     }
}

print_r($old);

Попробуй

Автор: IZ@TOP 19.2.2010, 13:50
Тебе надо выбрать совпадающие по телефону записи? Это делается одним запросом к БД:

Код

SELECT * FROM `xsl` INNER JOIN `baza` ON `xsl`.`tel` = `baza`.`old`

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)