2012-03-25 2 views
0

전에 array_combine을 사용한 적이없고 쿼리에 "리소스 대신 부울"오류가 표시됩니다. 읽을 쿼리를 변경하면 ... WHERE cal_id = ". $ quidx."; 불리언 오류가 사라집니다하지만 나는 그림 수없는 이유로 스크립트에서 예기치 않은 T_STRING 오류가 발생하고 쿼리의 결과는 아무 것도 아닙니다.array_combine 사용 또는 쿼리 오류가 발생 했습니까?

주요 질문 : array_combine의 올바른 사용법입니까? 그렇다면이 스크립트의 나머지 부분에서 쿼리 후 아무 정보도없는 부분은 무엇이 있습니까? $ quid1은 id 번호의 배열이고 $ tm은 Unix 타임 스탬프의 배열입니다. 두 배열은 동일한 수의 행을 일관성있게 유지합니다. array_combine 이후에 $ cls1은 이전 두 배열의 유효한 배열을 반환하지만 쿼리에서 작동하지 않는 것 같습니다.

도와 주셔서 감사합니다. 나는 아직도 배우고있다.

새 쿼리 문을 포함하도록 스크립트를 편집했습니다. 문제는 이제 오류가 잘못된 인수를 읽는 foreach 문과 함께 발생합니다.

$cls1 = array_combine($quid1, $tm); 
     $quidx = array_values($quid1); 
     $quclx = array_values($tm); 
//// note to self.. start final query for email write with new id data, likely redundant. 
$qumail = "SELECT cal_id, cal_name, cal_time, cal_description FROM webcal_entry WHERE cal_id in (" . implode (',' , $quidx) . ")"; 
$wemail = mysql_query($qumail); 
while ($row = mysql_fetch_array($wemail, MYSQL_NUM)) { 
    $quname2 = $row[1]; 
    $qtime = $row[2] 
    $qudesc2 = $row[3]; 

다음은 전체 스크립트 섹션입니다. 이 모두가 아직 고정되지 않은, 그래서 나는 아직도 그것을 통해 쪼아 해요 :

$cls1 = array_combine($quid1, $tm); 
     $quidx = array_values($quid1); 
     $quclx = array_values($tm); 
//// note to self.. start final query for email write with new id data, likely redundant. 
$qumail = "SELECT cal_id, cal_name, cal_time, cal_description FROM webcal_entry WHERE cal_id in (" . implode (',' , $quidx) . ")"; 
$wemail = mysql_query($qumail); 
while ($row = mysql_fetch_array($wemail, MYSQL_NUM)) { 
    $quname2 = $row[1]; 
    $qtime = $row[2] 
    $qudesc2 = $row[3]; 
} 
    foreach ($qtime as $key=>$btUx) { 
     if (strlen($btUx) < 6){ 
     $btUx = '0' . $btUx; 
     date_default_timezone_set('UTC'); 
     $unixEpoch = strtotime($btUx); 
     date_default_timezone_set('America/Denver'); 
     $formtime = date("H:i", $unixEpoch); 
     } 
    } 
    foreach ($tm as $key=>$tf) { 
     $idnotime = 0; 
     $idnow = (strlen($tf) > 2); 

    switch($tf) { 
     case $idnow: 
     $repmlnow = sprintf("Event: %s \nTime: %s \nDesc: %s \n\n", $row[1], $formtime, $row[3]); 
     break; 
     case $idnotime: 
     $repmlnotm = sprintf("Event: %s \nDesc: %s \n\n", $row[1], $row[3]); 
     break; 
    } 
} 
/////===================== send mail... 

다른 의견이 존재하지 않는 한이 내 마지막 편집이다.

$cls1 = array_combine($quid1, $tm); 
     $quidx = array_values($quid1); 
     $quclx = array_values($tm); 
$qumail = "SELECT cal_id, cal_name, cal_time, cal_description FROM webcal_entry WHERE cal_id in (" . implode (',' , $quidx) . ")"; 
$wemail = mysql_query($qumail); 
while ($row = mysql_fetch_array($wemail, MYSQL_NUM)) { 
    $quname2 = $row[1]; 
    $qtime = $row[2]; 
    $qudesc2 = $row[3]; 
} 
if(strlen($qtime) < 6){ 
    $btUx = '0' . $qtime; 
    date_default_timezone_set('UTC'); 
    $unixEpoch = strtotime($btUx); 
    date_default_timezone_set('America/Denver'); 
    $formtime = date("H:i", $unixEpoch); 
}elseif(strlen($qtime) > 5){ 
    date_default_timezone_set('UTC'); 
    $unixEpoch = strtotime($value); 
    date_default_timezone_set('America/Denver'); 
    $formtime = date("H:i", $unixEpoch); 
} 
foreach ($quclx as $key=>$tf) { 
    $idnotime = 0; 
    $idnow = (strlen($tf) > 2); 

    switch($tf) { 
     case $idnow: 
     $repmlnow = sprintf("Event: %s \nTime: %s \nDesc: %s \n\n", $quname2, $formtime, $qudesc2); 
     break; 
     case $idnotime: 
     $repmlnotm = sprintf("Event: %s \nDesc: %s \n\n", $quname2, $qudesc2); 
     break; 
    } 
} 
/////===================== send mail... 
+0

감사합니다 habibillah,이 확실히 어딘가에 도착하지만 꽤 골드 반지 아니에요. 몇 가지 데이터가 전달되고 있는데이 문제가 쿼리 문제를 해결했을 수도 있지만 이제는 foreach 문에 오류가 있습니다. 위의 스크립트를 몇 번 수정하고 거기에서 더 많은 도움을 받으려고합니다. 다시 한 번 감사드립니다! – defacto7

+0

또한 implode 문에 대해서도 읽어 볼 것입니다. 그건 나에게 처음이다. – defacto7

답변

1

$ quidx이 같은 숫자 키와 인덱스와 $ quid1 배열 값 배열입니다 ... 나는 다음에 원래의 스크립트를 변경 한 모든 것이 아래의 공헌이 경우 덕분에 제대로 작동하는 것 같다 값. 변경 쿼리를 시도해보십시오 :

관련 문제