modificare un campo in base alla data

darkman_1975

Nuovo Utente
15 Giu 2011
20
0
0
Salve a tutti, ho questo problema:

ho 1 tabella "slide" con un campo "scadenza" e campo "attivo"
io vorrei fare il confrondo del campo "scadenza con la data odierna e settare il campo attivo a "1". Faccio così:

PHP:
$qslide = "SELECT datiutente.*, slide.* FROM datiutente INNER JOIN slide ON datiutente.ID = slide.CODUTENTE  WHERE ATTIVO='0' ORDER BY RAND()";
$resqslide = mysql_query($qslide);
$quante = mysql_num_rows($resqslide);

if($quante != 0){
	while($val = mysql_fetch_array($resqslide,MYSQL_NUM))
				{
				$ID = $val[0];
				$Cognome = $val[1];
				$Nome = $val[2];
				$CF = $val[3];
				$Sesso = $val[4];
				$NatoA = $val[5];				
				$NatoProv = $val[6];
				$NatoIl = $val[7];
				$Res = $val[8];
				$Via = $val[9];
				$CAP = $val[10];				
				$Prov2 = $val[11];				
				$TelCell = $val[12];
				$Doc = $val[13];
				$DocNum = $val[14];
				$DocRil = $val[15];
				$DocIl = $val[16];				
				$DocLuogo = $val[17];	
				$IDANNUNCIO = $val[18];
				$CODUTENTE = $val[19];
				$TESTO = $val [20];
				$src = $val [21];
				$ATTIVO = $val [22];
				$scadenza =$val [23];
				
$TESTO2 = stripslashes(utf8_decode(trim($TESTO)));
$data =(date("y-m-d"));
if ($data = $scadenza) {
	
$query = "UPDATE  slide SET  ATTIVO='1'";

$Result=mysql_query($query) or die ("Errore nella query:" . mysql_error()); 
echo mysql_error();
	};

Però mi setta tutti i campi "attivo" della tabella slide a "1" e non solo quello scaduto.

Dove sbaglio?
 
ciao
mi sembra che ti sia dimenticato un =
PHP:
if ($data = $scadenza) {
non hai fatto un confronto ma un'assegnazione, correggi in
PHP:
if ($data == $scadenza) {
 
hai ragione, ho sbagliato il segno == Grazie per avermelo fatto notare e per avermi risposto.
Però scrivendo in quel modo non fà nessuna modifica al record :crying:
Riscrivo il codice perchè me ne ero dimenticato un pò.

PHP:
      <?php
$qslide = "SELECT datiutente.*, slide.* FROM datiutente INNER JOIN slide ON datiutente.ID = slide.CODUTENTE  WHERE ATTIVO='0' ORDER BY RAND()";
$resqslide = mysql_query($qslide);
$quante = mysql_num_rows($resqslide);

if($quante != 0){
	while($val = mysql_fetch_array($resqslide,MYSQL_NUM))
				{
				$ID = $val[0];
				$Cognome = $val[1];
				$Nome = $val[2];
				$CF = $val[3];
				$Sesso = $val[4];
				$NatoA = $val[5];				
				$NatoProv = $val[6];
				$NatoIl = $val[7];
				$Res = $val[8];
				$Via = $val[9];
				$CAP = $val[10];				
				$Prov2 = $val[11];				
				$TelCell = $val[12];
				$Doc = $val[13];
				$DocNum = $val[14];
				$DocRil = $val[15];
				$DocIl = $val[16];				
				$DocLuogo = $val[17];	
				$IDANNUNCIO = $val[18];
				$CODUTENTE = $val[19];
				$TESTO = $val [20];
				$src = $val [21];
				$ATTIVO = $val [22];
				$SCADENZA = $val [23];
				
$TESTO2 = stripslashes(utf8_decode(trim($TESTO)));
$data =(date("y-m-d"));
if ($data == $SCADENZA) {
	
$query = "UPDATE  slide SET  ATTIVO='1'";
$Result=mysql_query($query) or die ("Errore nella query:" . mysql_error()); 
echo mysql_error();
	};
				echo"<li class=\"s3sliderImage\">
				<table align=\"center\" width=\"900\" height=\"700\">
				<tr><td align=\"center\">
					<img onLoad=\"img_rid(this, '1000', '700')\" src=".$src." />
					</td></tr></table>";
					
				echo ('<span><em class="nome">'.$Nome.' '.$Cognome.':</em> '.$TESTO2.' <font color="#00CC00">Contattalo al</font>  <em class="tele">'.$TelCell.'</em></span>.
					</li>');
				}
}else {
echo('<h2>Non ci sono annunci in archivio: '.$quante.'</h2>');
}	  
	  ?>
<? include("includes/close.php"); ?>

Poi pensavo ma la query di modifica non dovrebbe essere:

$query = "UPDATE slide SET ATTIVO='1'" WHERE SCADENZA=$data;
??? giusto?? cioè dovrebbe modificarmi solo il record che ha la scadenza uguale alla data. ma non va....
 
Risolto! :elvis:
ho modificato così:

PHP:
$data =(date("Y-m-d"));
if ($data == $SCADENZA) {
	
$query = "UPDATE  slide SET  ATTIVO='1' WHERE SCADENZA = '$data'";
$Risultato=mysql_query($query) or die ("Errore nella query:" . mysql_error());
echo mysql_error();
	};
 
Solo un piccolo appunto: non utilizzare "<?" che è deprecato, ma "<?php".
 

Discussioni simili