salve a tutti,non so quanto sia corretto il titolo,ma non so cosa metterexD allora sto lavorando sul modulo RMA,ma sono bloccato su un punto,ovvero far si che durante il controllo dei dati inseriti nel modulo,appaia l'errore nel caso l'utente inserisca 2 prodotti in quanto è possibile aprire un RMA per prodotto.Faccio un banale esempio per intenderci,io ho confermato un ordine acquistando 4 unità del prodotto1 e 3 unità del prodotto2 quando mi arriva la merce a casa mi accorgo che 3 unità del prodotto1 non funzionano(che sfigaxD) così avvio il modulo RMA inserendo tre volte il prodotto1 insieme al codice e relativa descrizione del difetto e clicco invia e quì arrivano i problemi xD
Queste sono le variabili trasformate in array nella form del modulo( ho inserito nella form name="Cod[]" )
finquì tutto tranquillo(come minimo se non sapevo fare questoxD) salto i vari controlli di data,nomi ecc..perchè inutili e passo direttamente al controllo per verificare se sono stati selezionati più prodotti,faccio prima il controllo sul codice prodottoCodice PHP:
if(isset($_POST['Cod'])) $C = $_POST['Cod'];
if(isset($_POST['Prd'])) $P = $_POST['Prd'];
if(isset($_POST['Qnt'])) $Q = $_POST['Qnt'];
if(isset($_POST['DD'])) $DD = $_POST['DD'];
$Codice = ''; //inizializzo codice che serve più in basso
il problema principale sta nel fatto che la variabile $conta risulta sempre 1 anche se seleziono più prodotti,e per tanto la query da errore perchè l'array viene formattato male, e se seleziono più di 2 prodotti ottengo questo risultato 'Cod1','Cod2' 'Cod3' ecc..(la virgola viene stampata solo nei primi 2).Attualmente funziona solo se digito nel modulo un solo prodotto.Oddio lo so è un pò un casino^^' ho commentato in più punti per cercare di essere il più chiaro possibile,se non capite qualcosa basta chiedere,grazie in anticipoCodice PHP:
$conta = count($C); //Conto quanti valori ci sono nell'array $C che contiene i codici dei prodotti
if($DD != ''){ //Escludo i valori vuoti dell'array
For($I = 0;$I<= count($DD)-1;$I++){ //Eseguo un for valido per tutti gli array
$VC = $C[$I];
if($VC != ''){
$Codice .= "'".$VC."'"; //Aggiungo a $Codice l'array stampato con gli apici ottenendo 'Cod1' 'Cod2' ecc..
// Quì ho dovuto fare questo controllo perchè se nella form digito più prodotti il risultato è 'Cod1','Cod2',ecc.. ,ma se il prodotto è uno solo riscontro un errore nella query perchè il risultato che ottengo è 'Cod1',
if($conta > 1){
$Codice.=',';
}else{
$Codice.=" ";
}
}
}
$SelectC = QuerySemplice("SELECT DISTINCT count(CodiceProdotto) as CodiceProdotto FROM articoli WHERE CodiceProdotto IN({$Codice})");
while($rt = mysql_fetch_assoc($SelectC)){
$ContaCod = $rt['CodiceProdotto'];
}
if($ContaCod > 1){ //Se maggiore di 1 allora sono stati selezionati più di un prodotto
echo "Errore puoi richiedere un RMA per prodotto [url='ModuloRMA.php']Riprova[/url]
";
exit();
}
if($ContaCod == 0){ Se uguale a 0 c'è qualche errore di battitura del codice
echo "Errore COD: Prodotto non presente in fattura [url='ModuloRMA.php']Riprova[/url]
";
exit();
}
}