2015-04-22 37 views
-1

下面的代碼顯示一個錯誤UNDEFINED偏移:2(線22,28,29)

「未定義偏移:2」 上線22,28,和29

$sql = "SELECT email FROM CommercialEmails WHERE dripid = 1 AND sent='a'"; 
if ($resultsd1 = mysqli_query($conn, $sql)) { 
    $affectedrows = mysqli_num_rows($resultsd1); 
    while ($row = mysqli_fetch_row($resultsd1)){ 
     $results = $row[0]; 
     global $results; 
    } 
} 

$broken = explode(' ', $results); 
$hi = 0; 
$hello = 0; 
a:           
/**Line 22 **/ if (substr($broken[$hi], -4) == "com," && $broken[$hi] == "qwert"){ 

    $hey[$hi] = $broken[$hi]; 
    $hello++; 
} 

If(substr($broken[$hi], -4) !== "com,"){ // line 28 
    $hey[$hi] = $broken[$hi];    //Line 29 
} 
$hi++; 
if ($hi == $affectedrows){ 
    if (!isset($hey)){ 
     echo "There are no emails"; 
    } else { 
     foreach($hey as $key => $value){ 
      echo $value; 
     } 
     echo $hey; 
    } 
}else{ 
    goto a; 
} 
+0

太棒了!您的錯誤檢查正在工作!你看了看那些爲什麼他們未定義? –

+0

22,28和29的行號在代碼 – tmello01

+0

中註釋爲什麼你在'globalling'$ results'?在循環之前初始化它'$ results ='';''。 – frz3993

回答

0

我不知道你想什麼來實現的,而是讓你的代碼只是工作試試這樣:

$sql = "SELECT email FROM CommercialEmails WHERE dripid = 1 AND sent='a'"; 
$results = array(); 
$hey = array(); 
if ($resultsd1 = mysqli_query($conn, $sql)) { 
    $affectedrows = mysqli_num_rows($resultsd1); 
    while ($row = mysqli_fetch_row($resultsd1)){ 
     $results[] = $row; 
     If(substr($row[0], -4) !== "com,"){ 
      $hey[] = $row[0];    
     } 
    } 
} 

if (count($hey)==0){ 
    echo "There are no emails"; 
} else { 
    foreach($hey as $value){ 
     echo $value; 
    } 
    echo $hey; 
} 

,你可以看到我徹底清除你的許多變量,你不需要他們直到你能解釋你的目標。

而且我已經刪除你的古怪病情if

if (substr($broken[$hi], -4) == "com," && $broken[$hi] == "qwert"){ 

    $hey[$hi] = $broken[$hi]; 
    $hello++; 
} 

因爲是$broken[$hi]沒有這樣的值可以等於'qwert',並有'com'作爲子裏面。所以這種編碼總是假的,我們可以刪除它。嘗試解釋你的目標。希望我能幫助你。

0

這意味着$ broken數組沒有3個元素(ofset index = 2)。

我看不到$ hi var被設置爲2的位置,但它在代碼中的某處我沒有顯示。

+0

這就是我的所有代碼,而不是MySQL的東西。 – tmello01

0

代替global $results; while循環中,while循環開始前剛剛宣佈$結果爲空數組$results = array();

然後while循環結束後做print_r($results);,看它是否有您所期望的內容。