Record con stato diverso

  • Creatore Discussione Creatore Discussione Max61
  • Data di inizio Data di inizio

Max61

Utente Attivo
2 Mar 2014
761
4
18
Salve a tutti, sono ancora una volta a chiedere il vostro prezioso aiuto, cerco di spiegarmi:

Ho una tabella tbltablet dove registro i tablet utilizzati, tra i vari campi c'è il campo 'Stato' che può assumere diversi valori:

Utilizzato, Rientrato, Guasto ecc..

Quando un tablet inizia un attività lo Stato diventa 'Utilizzato', quando rientra, cioè finito il suo utilizzo lo Stato passa a 'Rientrato' e così via.

Ogni volta che lo stesso tablet viene utilizzato duplico il record del tablet e lo Stato lo aggiorno in 'Utilizzato', quindi in qualche modo creo uno storico per quel tablet.

Adesso avendo più record dello stesso tablet con stati diversi quando lo vado a duplicare nel menu a tendina mi compare il tablet che ha lo Stato 'Rientrato' mentre succede che in un altro record lo stesso tablet risulta 'Utilizzato'.


Es.: il tablet n.9 esce e cambio lo stato in Utilizzato, non appena rientra modifico lo stato in Rientrato.

Successivamente il tablet n.9 viene riutilizzato, quindi duplico il record corrispondente cambiando lo stato da Rientrato a Utilizzato, ma nel menu a tendina mi compare anche il record contrassegnato dallo stato Rientrato.


Come posso escludere i tablet che sono rientrati e allo stesso tempo sono attualmente utilizzati?


Allego codice che seleziona i tablet non utilizzati da duplicare

PHP:
SELECT TabletNumero

FROM tbltablet

WHERE

(Stato <> 'Utilizzato')

AND Stato <>'Guasto'

AND TabletNumero <> ''

ORDER BY TabletNumero ASC


$Leggi_TabletNumero=@mysql_query($Query1) or die (mysql_error());

if(!$Leggi_TabletNumero)

print("<H2>Query fallita!</H2>");

else

echo "<select name='TabletNumero' id='TabletNumeroid' required>";//Genera casella a discesa

echo "<option value =''>seleziona</option>";//valore vuoto

while ($row = mysql_fetch_array($Leggi_TabletNumero)){

$TabletNumero=$row['TabletNumero'];

$TabletNumero = iconv('UTF-8', 'windows-1252', $TabletNumero);

$TabletNumero= addslashes($row['TabletNumero']);

mysql_query("SET CHARACTER SET utf8");

mysql_query("SET NAMES utf8");



echo "<option value =\"$TabletNumero\">$TabletNumero </option>"; //Popola casella

}

$TabletNumero= addslashes($row['TabletNumero']);



echo "value=$TabletNumero </select>";



mysql_query("SET CHARACTER SET utf8");

mysql_query("SET NAMES utf8");

function removeslashes2 ( $TabletNumero )

{

$TabletNumero = implode ( "" , explode ( "\\" , $TabletNumero ));

return stripslashes ( trim ( $TabletNumero ));

}


Grazie Max61
 
Ciao Max61,
ho letto solo ora il tuo post, non so se nel frattempo hai risollto, comunque farò qualche prova








Ciao Max61,

ho letto solo ora il tuo post, non so se nel frattempo hai risollto, comunque farò qualche prova

o



Es.: il tablet n.9 esce e cambio lo stato in Utilizzato, non appena rientra modifico lo stato in Rientrato.



Successivamente il tablet n.9 viene riutilizzato, quindi duplico il record corrispondente cambiando lo stato da Rientrato a Utilizzato, ma nel menu a tendina mi compare anche il record contrassegnato dallo stato Rientrato.





Come posso escludere i tablet che sono rientrati e allo stesso tempo sono attualmente utilizzati?


tempo fa ho avuto un problema simile: devi inserire il tutto in un array in quanto devi leggere un record per volta, cosa non possibile con le tabelle; a questo punto hai un array con tre elementi relativi allo stesso tablet (il nr.9); quindi leggi il primo elemento e lo memorizzi in altrettante variabili d'appoggio (data e stato), quindi leggi il secondo e confronti la data con quella memorizzata e, in caso sia più recente, la memorizzi, assieme allo stato, nelle varilabili d'appoggio e così via per tutto l'array; alla fine avrai l'ultimo stato (quello attuale) nelle variabili d'appoggio





Zorro



Allegati...
 

Discussioni simili