limitare campo descrizione

ciao
potresti fare così
PHP:
<?php
//....
//qui raccogli tutti i dati che l'utente ti invia
//immagino che debba inserire nome e/o cognome e/o email oppure un nick e/o passwrd
//vedi tu quale dato si riferisce ad un unico utente e, penso, solo gli annunci attivi
$query="SELECT * FROM annunci WHERE none='$nome' AND cognome='$cognome' AND attivo='A'";
//per quello sarebbe meglio il campo attivo nella tabella annunci
//o nel WHERE un altro campo che sia unico per l'utente
$quanti=mysql_num_rows(mysql_query($query));//guardi quanti annunci ha
//ho messo per esempio 10
if($quanti <= 10){
	//inserisci l'annuncio
}else{
	echo "hai gia inserito 10 annunci, non puoi inserirne altri";
}
//...
?>

p.s.
per puro sapere e non per soldi..., ma per denaro;)
 
ciao..

Ho provato a fare il vardump
PHP:
<?php 
require ('db_connect.php');
$adesso=time();

$vecchi=$adesso-(6*30*24*60-60);//tolgo circa 6 mesi 30 gg * 24 ore * 60 minuti * 60 sec  
$jokelist="DELETE FROM annunci WHERE ts < $vecchi";  
var_dump($jokelist);
$joke=mysql_query($jokelist);  
$id_annunci = $joke['id_annunci'];

?>


e restituisce questo ??? :(

string(41) "DELETE FROM annunci WHERE ts < 1316366767"
 
ho provato così...

ma mi da pagina bianca ;(

PHP:
<?php




require ('db_connect.php');
$adesso=time();
//........ 
//verificare se hai selezionato l'id 
// e trasmesso tramite $_GET 
$vecchi=$adesso-(6*30*24*60-60); 
if(isset($_GET['id_annunci'])){ 
    $wh=" WHERE ts < '$vecchi' AND id_annunci='".$_GET['id_annunci']."'";//i vecchi di quell'id 
}else{ 
    $wh=" WHERE ts < '$vecchi'";//tutti i vecchi 
} 
$jokelist="DELETE FROM annunci".$wh; 


if (!$jokelist) {  
  exit('<p>Error performing query: ' . mysql_error() . '</p>');  
}  

while ($joke = mysql_fetch_array($jokelist)) { 
$id_annunci = $joke['id_annunci'];
$ts = $joke['ts'];
var_dump($jokelist);
echo "$id_annunci" ;
echo "$ts";
}


?>
 
Campo enum..

se provo ad aggiungerlo con il tuo script mi da questo errore...

PHP:
Errore
Pare che ci sia un errore nella query SQL immessa. L'errore del server MySQL mostrato qui sotto, se c'è, può anche aiutare nella risoluzione del problema

ERROR: Stringa di Punctuation Sconosciuta @ 1
STR: <?
SQL: <?php 
//dati di connessione 
mysql_query("ALTER TABLE 'annunci' ADD 'attivo' ENUM( 'A', 'S' ) NOT NULL DEFAULT 'A'");<?php 
//dati di connessione 
mysql_query("ALTER TABLE 'annunci' ADD 'attivo' ENUM( 'A', 'S' ) NOT NULL DEFAULT 'A'");<?php 
//dati di connessione 
mysql_query("ALTER TABLE 'annunci' ADD 'attivo' ENUM( 'A', 'S' ) NOT NULL DEFAULT 'A'");

query SQL:

<?php //dati di connessione mysql_query("ALTER TABLE 'annunci' ADD 'attivo' ENUM( 'A', 'S' ) NOT NULL DEFAULT 'A'");

Messaggio di MySQL: 

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '&lt;?php 
//dati di connessione 
mysql_query(&quot;ALTER TABLE 'annunci' ADD 'attivo' EN' at line 1
 
ciao
al primo script non vedo come raccogli l'idi, dovresti avere auqlcosa di simile
$id_annunci=$_GET['id_nnunci'];
nel secondo (otreal fatto che hai scritto tre volte la query) non capisco il perchè
per il var_dump quanto restituito mi sembra giusto quindi dovrebbe eliminare, verifica di avere delle date minori di 1316366767
 
ciao
stai commettendo un errore sul calcolo della data, prova questo script
PHP:
<?php
$adesso=time();
$stamp=1316366767;//valore che hai postato

echo "il valore che hai postato ($stamp) corrisponde al ".date("d m Y", $stamp)."<br>";
$vecchi=$adesso-(6*30*24*60*60);
echo "mentre 6 mesi fa in timestamp=$vecchi corrisponde al ".date("d m Y", $vecchi)."<br>";
?>
come vedi i valore che hai postato non corrisponde a sei mesi fa
non
$vecchi=$adesso-(6*30*24*60-60);
ma
$vecchi=$adesso-(6*30*24*60*60);
 
limite annunci

Ho provato a fare così .. ma l'undicesimo annuncio lo posta :(

PHP:
<?php echo $_SESSION['user_id'];  

require ("db_connect.php");   

 

if (isset($_POST['descrizione'])):   
  // x un nuovo annuncio usa il form  
    

 $user_id = $_POST['user_id'];  

  $aid = $_POST['aid'];  
  $cid = $_POST['cid'];  
  $did = $_POST['did'];  
   $eid = $_POST['eid'];  
    $fid = $_POST['fid'];  
    $gid = $_POST['gid']; 
     $zid = $_POST['zid']; 
  $descrizione=$_POST["descrizione"];
$descrizione=ereg_replace("\n","<br>",$descrizione); 
  $mq = $_POST['mq'];  
   $via = $_POST['via'];  
  $locali = $_POST['locali'];  
  $prezzo = $_POST['prezzo'];  
  $tipologia = $_POST['tipologia'];  
  $altro = $_POST['altro'];  
  $cats = $_POST['cats'];  
  
  
 $nome_file_temporaneo = $_FILES['file_inviato']['tmp_name'];
	$nome_file_vero = $_FILES['file_inviato']['name'];
	$tipo_file = $_FILES['file_inviato']['type'];
	$dati_file = file_get_contents($nome_file_temporaneo);
	$dati_file = addslashes($dati_file);
	
	 $nome_file_temporaneo2 = $_FILES['file_inviato2']['tmp_name'];
	$nome_file_vero2 = $_FILES['file_inviato2']['name'];
	$tipo_file2 = $_FILES['file_inviato2']['type'];
	$dati_file2 = file_get_contents($nome_file_temporaneo2);
	$dati_file2 = addslashes($dati_file2);
  
  
   $nome_file_temporaneo3 = $_FILES['file_inviato3']['tmp_name'];
	$nome_file_vero3 = $_FILES['file_inviato3']['name'];
	$tipo_file3 = $_FILES['file_inviato3']['type'];
	$dati_file3 = file_get_contents($nome_file_temporaneo3);
	$dati_file3 = addslashes($dati_file3);
	
	 $nome_file_temporaneo4 = $_FILES['file_inviato4']['tmp_name'];
	$nome_file_vero4 = $_FILES['file_inviato4']['name'];
	$tipo_file4 = $_FILES['file_inviato4']['type'];
	$dati_file4 = file_get_contents($nome_file_temporaneo4);
	$dati_file4 = addslashes($dati_file4);


 $nome_file_temporaneo5 = $_FILES['file_inviato5']['tmp_name'];
	$nome_file_vero5 = $_FILES['file_inviato5']['name'];
	$tipo_file5 = $_FILES['file_inviato5']['type'];
	$dati_file5 = file_get_contents($nome_file_temporaneo5);
	$dati_file5 = addslashes($dati_file5);
	
$nome_file_temporaneo10 = $_FILES['file_inviato10']['tmp_name'];
	$nome_file_vero10 = $_FILES['file_inviato10']['name'];
	$tipo_file10 = $_FILES['file_inviato10']['type'];
	$dati_file10 = file_get_contents($nome_file_temporaneo10);
	$dati_file10 = addslashes($dati_file10);	
	
	if(get_magic_quotes_gpc()) { 
	
	$descrizione=stripslashes($descrizione);

}  

$descrizione =mysql_real_escape_string($descrizione); 

  if ($aid == '') {  
    exit('<p>Scegli la provincia x l annuncio. Click "Back" and try again.</p>');  
  } 
  
  if ($cid == '') {  
    exit('<p>Scegli il comune x l annuncio. Click "Back" and try again.</p>');  
  } 
  
  if ($did == '') {  
    exit('<p>Scegli la regione x l annuncio. Click "Back" and try again.</p>');  
  } 

if ($eid == '') {  
    exit('<p>Scegli il tipo cliente x l annuncio. Click "Back" and try again.</p>');  
  } 
  
  if ($fid == '') {  
    exit('<p>Scegli il canale dell annuncio. Click "Back" and try again.</p>');  
  } 


if ($gid == '') {  
    exit('<p>Scegli le condizioni dell immobile. Click "Back" and try again.</p>');  
  } 
  
  if ($zid == '') {  
    exit('<p>Scegli lo stato dell annuncio. Click "Back" and try again.</p>');  
  } 



  $sql = "INSERT INTO annunci SET  
      descrizione='$descrizione',  
      mq='$mq',  
      locali='$locali',  
      prezzo='$prezzo',  
      tipologia='$tipologia',  
      altro='$altro', 
      via='$via', 
     
      provinciaid='$aid',  
      cittaid='$cid',  
      regioneid='$did',  
      clienteid='$eid',  
       tipoid='$fid',  
       condizioniid='$gid',
       statoid='$zid',  
       nome_file = '$nome_file_vero', 
				tipo_file = '$tipo_file', 
				dati_file = '$dati_file', 
				
				nome_file2 = '$nome_file_vero2', 
				tipo_file2 = '$tipo_file2', 
				dati_file2 = '$dati_file2', 
				
				nome_file3 = '$nome_file_vero3', 
				tipo_file3 = '$tipo_file3', 
				dati_file3 = '$dati_file3', 
				
				nome_file4 = '$nome_file_vero4', 
				tipo_file4 = '$tipo_file4', 
				dati_file4 = '$dati_file4', 
				
				nome_file5 = '$nome_file_vero5', 
				tipo_file5 = '$tipo_file5', 
				dati_file5 = '$dati_file5', 
				
				nome_file10 = '$nome_file_vero10', 
				tipo_file10 = '$tipo_file10', 
				dati_file10 = '$dati_file10', 
        
      user_id=".$_SESSION['user_id']."";
  if (@mysql_query($sql)) {
    echo '<p></p>';
  } else {
    exit('<p>Errore aggiunta nuovo annuncio: ' . mysql_error() . '</p>');
  }
  
  $quanti=mysql_num_rows(mysql_query($sql));//guardi quanti annunci ha 
//ho messo per esempio 10 
if($quanti <= 10){ 
    //inserisci l'annuncio 
}else{ 
    echo "hai gia inserito 10 annunci, non puoi inserirne altri"; 
}
 
mi restituisce questo :) forse siamo sulla buona strada ...

il valore che hai postato (1316366767) corrisponde al 18 09 2011
mentre 6 mesi fa in timestamp=1301083042 corrisponde al 25 03 2011

<?php
$adesso=time();
$stamp=1316366767;//valore che hai postato

echo "il valore che hai postato ($stamp) corrisponde al ".date("d m Y", $stamp)."<br>";
$vecchi=$adesso-(6*30*24*60*60);
echo "mentre 6 mesi fa in timestamp=$vecchi corrisponde al ".date("d m Y", $vecchi)."<br>";
?>

la data tra l'altro nel campo timestamp per provare è la seguente : 2010-04-15 09:58:53
 
intendi cosi ????

al primo script non vedo come raccogli l'idi, dovresti avere auqlcosa di simile
$id_annunci=$_GET['id_nnunci'];

PHP:
<?php 




require ('db_connect.php'); 
$adesso=time(); 

//........  
//verificare se hai selezionato l'id  
// e trasmesso tramite $_GET  
$vecchi=$adesso-(6*30*24*60-60);  
if(isset($_GET['id_annunci'])){  
    $wh=" WHERE ts < '$vecchi' AND id_annunci='".$_GET['id_annunci']."'";//i vecchi di quell'id  
}else{  
    $wh=" WHERE ts < '$vecchi'";//tutti i vecchi  
}  
$jokelist="DELETE FROM annunci".$wh;  


if (!$jokelist) {   
  exit('<p>Error performing query: ' . mysql_error() . '</p>');   
}   

while ($joke = mysql_fetch_array($jokelist)) {
$id_annunci=$_GET['id_annunci'];
$id_annunci = $joke['id_annunci']; 
$ts = $joke['ts']; 

echo "$id_annunci" ; 
echo "$ts"; 
}
 
per annuncio attivo o sospeso ho risolto così :)

solo attivi

PHP:
$jokelist = @mysql_query(
"SELECT * FROM
    annunci INNER JOIN regione ON (annunci.regioneid=regione.id AND provinciaid=provinciaid )
     INNER JOIN provincia ON (annunci.provinciaid=provincia.id)
     INNER JOIN citta ON (annunci.cittaid=citta.id)
	  INNER JOIN cliente ON (annunci.clienteid=cliente.id)
	  INNER JOIN stato ON (annunci.statoid=stato.id)
    
     
WHERE
    provincia.name='agrigento' AND stato.stato='attivo'");

Solo sospesi

PHP:
$jokelist = @mysql_query(
"SELECT * FROM
    annunci INNER JOIN regione ON (annunci.regioneid=regione.id AND provinciaid=provinciaid )
     INNER JOIN provincia ON (annunci.provinciaid=provincia.id)
     INNER JOIN citta ON (annunci.cittaid=citta.id)
	  INNER JOIN cliente ON (annunci.clienteid=cliente.id)
	  INNER JOIN stato ON (annunci.statoid=stato.id)
    
     
WHERE
    provincia.name='agrigento' AND stato.stato='sospeso'");

Ho deciso anche di far scegliere a chi posta l'annuncio se attivare o disattivare l'annuncio in base al limite... tipo ho 10 annunci che posto postare se ne ho 10 attivi, ne posso sospendere uno e attivare un'altro ... ...
 
ciao
Ho provato a fare così .. ma l'undicesimo annuncio lo posta
come hai fatto tu (a parte che è strano che non ti dia errore) ti posta anche il dodicesimo, il tredicesimo....
I° errore
$quanti=mysql_num_rows(mysql_query($sql));//guardi quanti annunci ha
sta usando la query di insert $sql
devi usare un'altra query
PHP:
$query_cerca="SELECT * FROM annunci WHERE  user_id=".$_SESSION['user_id']."";
//visto che usi l'user id dell'utente
//poi
$quanti=mysql_num_rows(mysql_query($query_cerca));//guardi quanti annunci ha l'utente
II° errore
la parte di INSERT deve essere dentro l'if altrimenti prima inserisce comunque e poi ti dice che non puo inserire
PHP:
<?php
//.....
 if ($zid == '') {  
    exit('<p>Scegli lo stato dell annuncio. Click "Back" and try again.</p>');  
  } 
$quanti=mysql_num_rows(mysql_query($query_cerca));//guardi quanti annunci ha l'utente
if($quanti <= 10){
	$sql = "INSERT INTO annunci SET  
      descrizione='$descrizione',  ........eccc,
	user_id=".$_SESSION['user_id'];
  if (@mysql_query($sql)) {
    echo '<p></p>';
  } else {
    exit('<p>Errore aggiunta nuovo annuncio: ' . mysql_error() . '</p>');
  }
}else{
	echo "hai gia inserito 10 annunci, non puoi inserirne altri"; 
}
?>
poi se non vado errato la query di insert non è giusta, la query dovrebbe essere in questo modo (schematizzo)

$query="INSERT INTO tabella(nome_campo1, nome_campo2, nome_campo3) VALUES('val_c1', 'val_c2', 'val_c3')";
 
Ciao ,
la query di insert funziona correttamente.

Provo appena posso a modificarla aggiungendo il limite annunci come mi hai detto :)

Invece hai capito perchè non mi restituisce i risultati degli annunci vecchi ????

Ps. Naturalmene grazie mille ....... Domanda come mai uno che ne sa quanto te non utilizza la JOIN ??? mi fa' davvero strano .....
 
ciao
prova a farti questa paginetta e provala, poi mi sai dire

PHP:
<?php  
require ('db_connect.php'); 
$adesso=time(); 
$vecchi=$adesso-(6*30*24*60-60);//tolgo circa 6 mesi 30 gg * 24 ore * 60 minuti * 60 sec   
$jokelist="SELECT * FROM annunci WHERE ts < $vecchi";   
var_dump($jokelist); echo "<br>";// cosa risulta
$query=mysql_query($jokelist);
var_dump($query); echo "<br>";//cosa risulta
$ce_ne_sono=mysql_num_rows($query);
//e cosa stampa
if($ce_ne_sono >0){
	echo "ci sono $ce_ne_sono più vecchi di ".date("d m Y",$vecchi)."<br>";
	while($riga=mysql_fetch_array($query)){
		$data_del_annucio_vecchio=$riga['ts'];
		echo "annuncio del ".date("d m Y",$data_del_annucio_vecchio)." o in timestamp = $data_del_annucio_vecchio <br>";
	}else{
		echo "non ci sono annunci più vecchi di ".date("d m Y",$vecchi)."<br>";
	}
}
?>
comunque un'altra cosa: apri un nuovo post per il problema comincio a non capirci più nulla (così gli altri utenti), meglio "un problema -> un post"

p.s.
non è che non usi le join, però se posso farne a meno preferisco
 
Ok...

questa sera provo, altrimenti apro un nuovo post e vediamo che cosa succede ;)

Grazie mille
 
se lo provo con aptana o dreamwever mi da errore alla riga 16

prima posto lo script completo .. poi solo l'errore

script completo

PHP:
<?php   
require ('db_connect.php');  
$adesso=time();  
$vecchi=$adesso-(6*30*24*60-60);//tolgo circa 6 mesi 30 gg * 24 ore * 60 minuti * 60 sec    
$jokelist="SELECT * FROM annunci WHERE ts < $vecchi";    
var_dump($jokelist); echo "<br>";// cosa risulta 
$query=mysql_query($jokelist); 
var_dump($query); echo "<br>";//cosa risulta 
$ce_ne_sono=mysql_num_rows($query); 
//e cosa stampa 
if($ce_ne_sono >0){ 
    echo "ci sono $ce_ne_sono più vecchi di ".date("d m Y",$vecchi)."<br>"; 
    while($riga=mysql_fetch_array($query)){ 
        $data_del_annucio_vecchio=$riga['ts']; 
        echo "annuncio del ".date("d m Y",$data_del_annucio_vecchio)." o in timestamp = $data_del_annucio_vecchio <br>" ; 
    }else { 
        echo "non ci sono annunci più vecchi di ".date("d m Y",$vecchi)."<br>"; 
    } 
} 
?>

riga errore

PHP:
in corrispondenza dell'else

  }else {
 
ciao
può succedere, mi ero dimenticato di chiudere il while

PHP:
<?php    
require ('db_connect.php');   
$adesso=time();   
$vecchi=$adesso-(6*30*24*60-60);//tolgo circa 6 mesi 30 gg * 24 ore * 60 minuti * 60 sec     
$jokelist="SELECT * FROM annunci WHERE ts < $vecchi";     
var_dump($jokelist); echo "<br>";// cosa risulta  
$query=mysql_query($jokelist);  
var_dump($query); echo "<br>";//cosa risulta  
$ce_ne_sono=mysql_num_rows($query);  
//e cosa stampa  
if($ce_ne_sono >0){  
    echo "ci sono $ce_ne_sono più vecchi di ".date("d m Y",$vecchi)."<br>";  
    while($riga=mysql_fetch_array($query)){  
        $data_del_annucio_vecchio=$riga['ts'];  
        echo "annuncio del ".date("d m Y",$data_del_annucio_vecchio)." o in timestamp = $data_del_annucio_vecchio <br>" ;
	} //dimenticato di chiudere il while
}else {  
        echo "non ci sono annunci più vecchi di ".date("d m Y",$vecchi)."<br>";   
}  
?>
 
Mizze ma quante ne sai ??? :)

io mi ero incaponito con le virgolette.... :(

Mi da questo

string(43) "SELECT * FROM annunci WHERE ts < 1316806697"
resource(4) of type (mysql result)
non ci sono annunci più vecchi di 23 09 2011

ma non è vero ho due annunci con questa data :

2010-09-22 21:47:01
 
ciao
se il campo ts è del tipo timestamp devi trasormare la variabile $vecchi in quanto (se tipo timestamp) la data risulta del tipo Y-m-d H:i:s (es come hai detto 2010-09-22 21:47:01).
io uso per i campi con data il tipo int(15) - intero lungo 15 - così evito problemi.
se usi il formato timestam è logico che il confronto ti dia quel risultato in quanto un numero intero è sempre minore di una data in quel formato (esegue il confronto come due stringhe)
quindi o cambi il tipo al campo ts o aggiungi

PHP:
<?php
//.....
$vecchi=$adesso-(6*30*24*60*60);//tolgo circa 6 mesi 30 gg * 24 ore * 60 minuti * 60 sec  
$vecchi=date("Y-m-d H:i:s", $vecchi);// trasformo la data nel formato Y-m-d H:i:s
//.....
?>
p.s.
io uso il formato intero in quanto usando il formato timestamp devi, con molta probabilità, poi trasformarti la data in formato italiano (d-m-Y), trasformazione che è sempre più rognosa che partire dal formato int

ps al ps
correggi quel benedetto meno 6*30*24*60-60 in 6*30*24*60*60
 
Borgo sta diventando un incubo :(

ho corretto cosi ...
PHP:
<?php     
require ('db_connect.php');    
$adesso=time();    
$vecchi=$adesso-(6*30*24*60*60);//tolgo circa 6 mesi 30 gg * 24 ore * 60 minuti * 60 sec   
$vecchi=date("Y-m-d H:i:s", $vecchi);// trasformo la data nel formato Y-m-d H:i:s 
$jokelist="SELECT * FROM annunci WHERE ts < $vecchi";      
var_dump($jokelist); echo "<br>";// cosa risulta   
$query=mysql_query($jokelist);   
var_dump($query); echo "<br>";//cosa risulta   
$ce_ne_sono=mysql_num_rows($query);   
//e cosa stampa   
if($ce_ne_sono >0){   
    echo "ci sono $ce_ne_sono più vecchi di ".date("d m Y",$vecchi)."<br>";   
    while($riga=mysql_fetch_array($query)){   
        $data_del_annucio_vecchio=$riga['ts'];   
        echo "annuncio del ".date("d m Y",$data_del_annucio_vecchio)." o in timestamp = $data_del_annucio_vecchio <br>" ; 
    } //dimenticato di chiudere il while 
}else {   
        echo "non ci sono annunci più vecchi di ".date("d m Y",$vecchi)."<br>";    
}   
?>

mi stampa questo ??

string(52) "SELECT * FROM annunci WHERE ts < 2011-03-31 18:52:30"
bool(false)
non ci sono annunci più vecchi di 01 01 1970
 

Discussioni simili