справка по прерыванию по каждому пункту if-else

#php #if-statement #break

#php #if-оператор #прерывание

Вопрос:

 foreach($sites as $url)
{
    print_r($url);  
    $db = mysql_connect("localhost","root","11") or die("nerror connecting".  mysql_error());  
    mysql_select_db("website_categorization") or die("n error selecting database" );  
    mysql_real_escape_string($url);  
    mysql_query("INSERT INTO url_main(Url) VALUES('$url')") or trigger_error(mysql_error());   
    $result = mysql_query("SELECT ID from url_main where url='$url'");  
    list($url_id) = mysql_fetch_row($result);  
    $keyword = get_meta_tags("http://".$url);                                   
    if(array_key_exists('keywords', $keyword))                                    
            $tag = $keyword['keywords'];  
    elseif(array_key_exists('Keywords', $keyword))  
            $tag = $keyword['Keywords'];  
    else  
         {  mysql_query("INSERT INTO uncategorized(Url) VALUES('$url')") or trigger_error(mysql_error());  
            break;  
         }  
}
  

Я хочу продолжить выполнение моей программы, даже если управление программой достигает оператора else. Можете ли вы помочь мне, что я должен сделать, чтобы моя программа работала с другими значениями $ url, даже если встречается структура else….

Это остальная часть кода.

 $keyword_array = preg_split('/[s,] / ', $tag);  
foreach( $keyword_array as $url_keyword )        
{  
        mysql_real_escape_string($url_keyword);  
        $query = "SELECT ID from category_keyword where Keyword='$url_keyword'";  
        $result = mysql_query($query);  
        while($row=mysql_fetch_array($result))  
        {
             $out = mysql_query("INSERT INTO url_keyword(Url_ID,Keyword,Keyword_ID) values ($url_id, '$url_keyword','$row[ID]')");  
        }  
        $query2 = "SELECT ID_Category, sum(Score) as score from `category_keyword` as ck ,`url_keyword` as uk where  ck.ID = uk.Keyword_ID and Url_ID=$url_id group by ID_Category";  
        $result2 = mysql_query($query2);  
    }

    while($row2 = mysql_fetch_array($result2))
    {
             print_r($row2);
            if( $row2['score'] > $THRES )
            {
                $query3="INSERT INTO url_category_map(Url_ID, Category_ID) values( $url_id, $row2[ID_Category])";
                $out3 = mysql_query($query3);
                $FLAG=true;
            }
     }
}
  

Комментарии:

1. Это не ответ на ваш вопрос, но я предлагаю подключаться к вашей базе данных только один раз вне вашего цикла foreach.

Ответ №1:

Просто удалите break полностью.

Комментарии:

1. это весь код .. удаление break не работает.. Я не хочу запускать весь код, если встречается оператор else

2. С какого момента вы хотите продолжить? Прерывание приводит к продолжению выполнения после закрывающей фигурной скобки foreach … Я не понимаю, чего вы хотите достичь.