Salve a tutti,
sono costretto a chiedere aiuto sul forum per risolvere questa stranezza.
Codice PHP:
$query = "SELECT * FROM magazzino WHERE codart = '".$_GET['codart']."'";
$result2 = mysql_query($query) or die('Error, query failedd');
while($rowart = mysql_fetch_array($result2)) {
$art_nserie= $rowart['sernum'] ;
$item2add= unisci_sn($art_nserie);
$totsn = array_merge($totsn,$item2add); //si uniscono poi tutti gli array restituiti per ottenere tutti i serialnumber dentro un unico array
};
if (!isset($_SESSION['totsn']) ) {$_SESSION['totsn'] = $totsn;};
$xx = in_array($_GET['sn'],$_SESSION['totsn']);
print $xx."
";
if ($xx == true) { echo "true"; } else { echo "false"; }
Lo script unisce tutti i serial number di ogni articolo trovato in un unico array , dopo di che la funzione in_array(), mi dovrebbe trovare il seriale passato tramite GET (es. ?codart=C3456A&sn=B573065&oper=chksn)
il bello è che questo script funziona l'ho usato anche su un altra pagina e funziona regolarmente, non capisco perche in questo caso mi TROVA SOLO IL PRIMO RECORD
Codice PHP:
function unisci_sn($nserie)
{
$arr_sn=explode("\r" ,$nserie);
$sn = array();
$lung = count($arr_sn);
for ($cont=0; $cont < $lung; $cont++) {
if (strlen($arr_sn[$cont])==0){unset($arr_sn[$cont]); } else { array_push($sn, $arr_sn[$cont]);}
}
return $sn;
};
SESSION_totsn:
Array ( [0] => B573065 [1] => B466825 [2] => B150156 [3] => B107866)
se provo cercare B466825 , B150156 , B107866 in_array è FALSE
se invece cerco B573065 in_array è TRUE
qualcuno mi puo aiutare a risolvere ??
GRAZIE A TUTTI
SAT