limitare campo descrizione

searedone

Utente Attivo
11 Giu 2010
508
0
0
Ciao a tutti,
chi mi dice come si fa' a limitare il campo descrizione ?

Nel senso ho un listato annunci come vi posto, ma il campo descrizione mi posta tutta la descrizione e così mi allunga tutta la tabella come faccio a dare un limite tipo 30 caratteri o 20 caratteri a questo script ???

PHP:
 <?php      

  require ('db_connect.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) 
     
      
WHERE 
    provincia.name='agrigento'"); 
     
     



     
     
     


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

while ($joke = mysql_fetch_array($jokelist)) { 
$click_annuncio = $joke['click_annuncio']; 
$id_annunci = $joke['id_annunci']; 
  $descrizione = $joke['descrizione']; 
  $mq = $joke['mq']; 
  $prezzo = $joke['prezzo']; 
  $tipologia = $joke['tipologia']; 
   
  $name = $joke['name']; 
  $via = $joke['via']; 
  $citta = $joke['citta']; 
  $user_name = $joke['user_name']; 
  $user_email = $joke['user_email']; 
   $condizioni = $joke['condizioni']; 
    $regione = $joke['regione']; 
     $tipo = $joke['tipo']; 
      $condizioni = $joke['condizioni']; 
       $logo_cliente = $joke['logo_cliente']; 
          
   
   $nome_file = $joke['nome_file']; 
  $tipo_file = $joke['tipo_file']; 
  $dati_file = $joke['dati_file']; 
   
  // Display the joke with author information 



   
   
  echo" <table width='100%'>"; 
  echo" <tr>"; 
   echo" <p class='three'><td colspan='3'>(by <a href=\"http://localhost:8888/sicilia/rannunci.php?id=$id_annunci\"/>$via,$citta,$name,$regione</a> )</td>"; 
 echo" </tr>"; 
 echo" <tr>"; 
  echo"  <td width='14%' bgcolor='#CCCCCC'><img src='immagini1.php?id=$id_annunci' name='nome_file'  alt'' width='110' height='90'  /></td>"; 
  echo"  <td width='55%' bgcolor='#CCCCCC'><table width='100%'>"; 
   echo"   <tr>"; 
    echo"    <td>$descrizione</td>"; 
    echo"  </tr>"; 
    echo"  <tr>"; 
      echo"  <td>$id_annunci</td>"; 
echo"</tr>"; 
 echo"     <tr>"; 
    echo"    <td>&nbsp;</td>"; 
    echo"  </tr>"; 
   echo" </table></td>"; 
  echo"  <td width='31%' bgcolor='#CCCCCC'>$logo_cliente<br />$prezzo</p></td>"; 
  echo"</tr>"; 
echo"</table>"; 

  }  
   
   
?>
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
Grazie mille ragazzi :)

solo una cosa mi risolvete questo arcano che non ci riesce nessuno :(

sto cercando di contare i click che fanno sugli annunci ma non mi prende l'id , e nessuno capisce perché :( Borgo aiutami tuuuuuuuuuuuuu

PHP:
<?php 


require ('db_connect.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) 
      
WHERE 
    provincia.name='agrigento'"); 
     
     



     
     
     


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

while ($joke = mysql_fetch_array($jokelist)) { 
$click_annuncio = $joke['click_annuncio']; 
$id_annunci = $joke['id_annunci']; 
  $descrizione = $joke['descrizione']; 
  $mq = $joke['mq']; 
  $prezzo = $joke['prezzo']; 
  $tipologia = $joke['tipologia']; 
   
  $name = $joke['name']; 
  $citta = $joke['citta']; 
  $user_name = $joke['user_name']; 
  $user_email = $joke['user_email']; 
   $condizioni = $joke['condizioni']; 
    $regione = $joke['regione']; 
     $tipo = $joke['tipo']; 
      $condizioni = $joke['condizioni']; 
       $logo_cliente = $joke['logo_cliente']; 
          
   
   $nome_file = $joke['nome_file']; 
  $tipo_file = $joke['tipo_file']; 
  $dati_file = $joke['dati_file']; 
   
  echo "<p>$descrizione<br />" . 

      "(by <a href=\"http://localhost:8888/sicilia/rannunci.php?id=$id_annunci\"/>$id_annunci</a> )<br />" . "$name</br>" . "$mq</br>" . "$prezzo</br>". "$tipologia</br>" . "$citta<br />" . "$regione<br />" . "$logo_cliente<br />" . "$condizioni<br />" . "$tipo</br></p>"; 

  echo "<img src='immagini1.php?id=$id_annunci' name='nome_file'  alt'' width='110' height='90'  />";   


} 





?> 

<?php 
$jokelist = mysql_query ("UPDATE annunci SET click_annuncio = click_annuncio + 1 WHERE id_annunci='$id_annunci' " ) or die (mysql_error());   
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
mi sembra che non sia un errore di sintassi, ma di logica
se non capisco male, tu vuoi contare quente volte è stato fatto clic su un particolare annuncio, cioè quando uno clicca sul link
Codice:
...by <a href=\"http://localhost:8888/sicilia/rannunci.php?id=$id_annunci\"/>$id_annunci</a>....
giusto?
quindi l'up non dovresti metterlo li, ma nella pagina rannunci.php dove immagino tu leggi l'id con il $_GET
questo perche se ad esempio hai tre annunci nella provincia ti uppa solo l'annuncio n. 3, all'uscita del while la variabile $id_annunci è sempre il valore dell'ultimo
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
Si giusto hai capito al volo grazie mille...

Quindi se non ho capito male questa parte va' in rannunci ?

PHP:
<?php 
$jokelist = mysql_query ("UPDATE annunci SET click_annuncio = click_annuncio + 1 WHERE id_annunci='$id_annunci' " ) or die (mysql_error());   
?>
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
Sei un genioooooooooooo :)


Finalmente funzionaaaaaaaaaaaaaa, non sai a quante persone ho chiesto ma tutti dicevano che dovevo farlo nella pagina del listato annunci :)

Grazie milleeeeeeeeeeeeee


PS per non aprire un'altro post, posso chiederti dove o come posso fare a far si che un annuncio dopo 6 mesi scada ????????????
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
dovresti per prima cosa avere nella tabella annunci un campo chiamato (es.) data_ins che io farei del tipo int(15) in quanto per poi fare i calcoli è meglio usare la data in formato timestamp.
poi quando inserisci l'annuncio, oltre algli altri dati, valorizzi anche quel campo (es.)
PHP:
<?php
//dati connessione...............
//altri valori dei campi
$data_ins=time();
//aggungi alla query di inserimento
$query="INSERT INTO annunci(...,...,..., data_ins) VALUES(...,..., ...,$data_ins)";
$ris=mysql_query($query);
//.......
?>
poi puoi farti una paginetta (se non vuoi farlo in automatico quando l'utente visualizza gli annunci) con
PHP:
<?php
//dati connessione...............
$adesso=time();//leggi il tempo attuale
//
$vecchi=$adesso-(30*24*60-60);//tolgo circa 6 mesi 30 gg * 24 ore * 60 minuti * 60 sec
$query="DELETE FROM annunci WHERE data_ins < $vecchi";
$ris=mysql_query($query);
//....
?>
lanciando lo script elimini i vecchi annunci

p.s.
sarebbe comunque meglio aprire un nuovo post, altrimenti questo viene troppo lungo e fuori tema col titolo
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
Ciao e grazie mille come al solito per la risposta esaustiva, io ho già un campo nella tabella annunci con timestamp che ho chiamato ts per comodità quindi potrei usare quello :)

Devo solo provare a integrare quello che mi hai postato nel mio sito..

Se ho problemi e non ci riesco da subito, apro un'altro post e magari mi dici li cosa correggere.

Solo una curiosità, io passo già il campo ts quando uno posta l'annuncio, e qui mi sembra di capire che era il primo punto che tu mi hai scritto, la seconda pagina che mi dici non in automatico, mi darebbe il risultato degli annunci vecchi che hanno superato tale data e nel caso io posso toglierli dal sito corretto ???? e se volessi anche solo sospenderli che dovrei fare ???? scusa sono un rompi lo so , ma è cosi difficile trovare uno che ne sa come te ........

Ps grazie davvero molto per il tuo aiuto, e complimenti per quanto ne sai di php, sei davvero un genio ... chissa se prima o poi ne saprò almeno il 30% di quanto ne sai tu :)
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
si il campo ts dovrebbe andare bene
dicevo in automatico in quanto:
1. se metti lo script nella posizione in cui visualizzi gli annunci, quando un'utente chiama l'elenco lo script elimina gli annunci vecchi
2. non in automatico in quanto tu devi richiamarti la paginetta ed eliminarli, quando ne hai voglia

per sospenderli sempre nella tabella annunci dovresti avere un campio chiamato (es) attivo (potrebbe essere di tipo enum con due valori, A per attivo e S per sospeso, con A predefinito).
in questo caso al posto del delete devi uppare passando il valore da A a S, nella visualizzazione devi mettere nel where anche attivo='A'.
quando vuoi eliminare poi fai il delete con WHERE attivo='S' e, se vuoi, altre condizioni, in questo caso potresi farti una paginetta che visualizza solo gli S e eliminarli tutti o solo una alla volta scegliendo quale
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
Ciao Borgo, forse mi sono perso qualcosa ...

Ho fatto così ma non funge :(

PHP:
<?php 
require ('db_connect.php');
$adesso=time();//leggi il tempo attuale 
// 
$vecchi=$adesso-(30*24*60-60);//tolgo circa 6 mesi 30 gg * 24 ore * 60 minuti * 60 sec 
$jokelist="DELETE FROM annunci WHERE ts < $vecchi"; 
$joke=mysql_query($jokelist); 
$id_annunci = $joke['id_annunci'];
 

  $ts = $joke['ts'];
  
?>
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
CiO BORGO, SONO IN CRISI

per sospenderli sempre nella tabella annunci dovresti avere un campio chiamato (es) attivo (potrebbe essere di tipo enum con due valori, A per attivo e S per sospeso, con A predefinito).
in questo caso al posto del delete devi uppare passando il valore da A a S, nella visualizzazione devi mettere nel where anche attivo='A'.
quando vuoi eliminare poi fai il delete con WHERE attivo='S' e, se vuoi, altre condizioni, in questo caso potresi farti una paginetta che visualizza solo gli S e eliminarli tutti o solo una alla volta scegliendo quale
:
Se pèrovo ad aggiungere un qualsiasi campo enum mi dice

query SQL:

ALTER TABLE `annunci` ADD `A` ENUM NOT NULL AFTER `id_annunci`

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 'NOT NULL AFTER `id_annunci`' at line 1
Perché ?????


Bordo forse mi sono perso qualcosa anche qui ???? ...

Ho fatto così ma non funge :(

PHP:
<?php 
require ('db_connect.php');
$adesso=time();//leggi il tempo attuale 
// 
$vecchi=$adesso-(30*24*60-60);//tolgo circa 6 mesi 30 gg * 24 ore * 60 minuti * 60 sec 
$jokelist="DELETE FROM annunci WHERE ts < $vecchi"; 
$joke=mysql_query($jokelist); 
$id_annunci = $joke['id_annunci'];
 

  $ts = $joke['ts'];
  
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
per l'aggiunta del campo devo dare un occhio al manuale, poi forse ti so dire.
per la parte che non funge, per prima cosa mi sono dimenticato un 6
$vecchi=$adesso-(6*30*24*60-60);//tolgo circa 6 mesi 30 gg * 24 ore * 60 minuti * 60 sec
così come è più vecchi di 30 gg.
poi subito dopo la querystringa metti un var dump (ceh poi toglierai)
PHP:
//....
$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'];//questo cos'è?
//....
e verifica come viene scritta

p.s.
dimenticavo
hai annunci con data di 6 mesi e più fa?
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
Ciao,
si ho modificato un paio di date oltre i 6 mesi per vedere se funziona ma niente :(

Ok questa sera provo a mettere un var dump e vediamo... se scopri sul manuale per il campo enum fammi sapere grazie mille ..

Ps oggi provo a smanettare su internet e vedo se trovo qualcosa sull'enum

$id_annunci = $joke['id_annunci'];//questo cos'è?

Questo è il campo id della tabella annunci . volevo richiamare gli annunci vecchi insieme all'id per cancellare nel caso solo quelli di un id particolare oppure tutti in base alla scelta.

IN poche parole ho creato un admin e ogni utente registrato può mettere gli annunci, ma non so se devo togliere quelli di tutti, oppure quelli di un account specifico , idem per sospenderli o attivarli, e quindi pensavo di richiamare anche l'id cliente ... Sbaglio ??? o dovevo fare diversamente ???
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
... e quindi pensavo di richiamare anche l'id cliente ... Sbaglio ??? o dovevo fare diversamente ???
ti chiedevo cosa era quell'id in quanto nella parte di script non si vede da dove provenga.
secondo me dovresti selezionare un utente e trasmettere il suo id alla pagina che cancella (così come ti avevo postato cancella tutti indipendente dall'id)
probabilmente dovresti fare così
PHP:
<?php
//........
//verificare se hai selezionato l'id
// e trasmesso tramite $_GET
$vecchi=$adesso-(6*30*24*60-60);
if(isset($_GET['id'])){
	$wh=" WHERE ts < '$vecchi' AND id='".$_GET['id']."'";//i vecchi di quell'id
}else{
	$wh=" WHERE ts < '$vecchi'";//tutti i vecchi
}
$jokelist="DELETE FROM annunci".$wh;
//ecc....
?>
se invece vuoi sospendere non devi usare il delete ma l'UPDATE (ho chiamato il campo ENUM attivo, ma devi mettere eventualmente il nome che gli hai dato tu)
PHP:
<?php
//tutto come precedente escluso il delete che diventa
$jokelist="UPDATE annunci SET attivo='S'".$wh;
//ecc...
?>
per l'enum prova
PHP:
<?php
//dati di connessione
mysql_query("ALTER TABLE 'annunci' ADD 'attivo' ENUM( 'A', 'S' ) NOT NULL DEFAULT 'A'");
?>
hai messo il var_dump? cosa ti risulta? sei sicuro che il campo ts sia un intero?
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
Ciao Borgo ben tornato ...

Nel frattempo purtroppo ho avuto casotti e non sono riuscito a provare lo faccio questa sera promesso..

Per il campo ts sono sicurissimo che sia un campo int timestamp ....

Per l'enum quando provo ad inserire un campo di tipo enum non me lo prende e non capisco perchè :( .....

Pensavo anche di creare una tabella nuova es attivi ( dove all'interno ho i 3 campi id, attivo, non attivo e di collegarla alla tabella annunci principale ..

Secondo te sarebbe una cattiva idea ????? tanto ho il db relazionale, e poi quando faccio la join chiedo di restituirmi tutti i campi attivo , in questo modo posso crearmi un pannello dove posso disattivare gli annunci , oppure attivarli a mio piacere, mentre per l'inserimento potrei dare di default il campo attivo a chi li posta ...

che ne dici ?????
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
era un difettaccio sull'alimentatore (a sbalzi da +3 a +10V).

Per l'enum quando provo ad inserire un campo di tipo enum non me lo prende e non capisco perchè
anche col codice che ti ho postato?
Pensavo anche di creare una tabella nuova es attivi...
a me le join non sono molto simpatiche, hai provato ad usare l'admin di mysql modificando direttamenta la tabella annunci?
mentre per l'inserimento potrei dare di default il campo attivo a chi li posta ...
comunque prima o poi devi attivare, o di default o te manualmente utente per utente, io preferirei di default
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
ciao
era un difettaccio sull'alimentatore (a sbalzi da +3 a +10V).


anche col codice che ti ho postato?

No con il codice non ho ancora provato perchè ieri non ero a casa, ma per comodità ho provato ad aggiungerlo proprio dal pannello di myadmin..

Ho fatto cosi .. nome campo attivo enum e ho provato a mettere altre robe che a memoria non ricordo ma niente mi da un errore di mysql :(

a me le join non sono molto simpatiche, hai provato ad usare l'admin di mysql modificando direttamenta la tabella annunci?

La join io la trovavo inutile ma da quando ho imparato ad usarla a parte la velocità mi ha risolto un sacco di problemi e trovo che sia la cosa più bella che ho imparato negli ultimi mesi davvero semplice una volta capita e utilissimaaaaa in qualsiasi momento puoi aggiungere cio che vuoi ... ;) ho ancora qualche problemino nelle interrogazioni ma fighissimo ......

comunque prima o poi devi attivare, o di default o te manualmente utente per utente, io preferirei di default

Si infatti lo immaginavo per questo pensavo di passare direttamente ( non so ancora come ma ci provo ) il campo attivo di default dell'annuncio che postano gli iscritti nel campo id_attivo che creo nella tabella annunci cosi io come amministratore posso eventualemte attivare disattivare, mentre loro possono solo attivare ...

Un ultima info che mi sono dimenticato, ma come cavolo si da un limite annunci ? tipo come posso fare a dire che ogni user ha diritto a postare solo 5 o 10 annunci ???? cmq questa sera provo subito la parte che mi hai creato per visualizzare gli annunci più vecchi di sei mesi, nel frattempo risolvo con la join l'attivo e il non attivo ( questo semplice ) e poi aspetto da te info se sai come posso limitare gli annunci ... e tutto questo solo e unicamente per puro sapere e non per soldi ;) ma mi piace da impazzireeeeeeeeeee

dimenticavo grazie mille come sempre
 
Discussioni simili
Autore Titolo Forum Risposte Data
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
A Limitare accesso ad alcune pagine web PHP PHP 2
P [PHP] Limitare login ad un solo utente per volta PHP 12
A [PHP] limitare counter paginazione PHP 7
J Limitare accesso disco condiviso Server Dedicati e VPS 0
Marco_88 Limitare un contatore PHP 1
otto9due limitare l'accesso a cartelle e file a tutti tranne che ad alcuni domini.. PHP 1
M limitare dimensione file PHP 7
L limitare accesso a una cartella attraverso url Apache 1
E [risolto] limitare lunghezza del testo in tabella Mysql PHP 5
N Limitare accesso a form html con User e Password PHP 5
C script per limitare upload Javascript 1
E limitare il numero di risultato per linea PHP 4
M limitare l'accesso ad alcuni file Web Server 1
P limitare checkbox selezionati Javascript 3
M Limitare numero di risultati MySQL MySQL 2
SolidSnake4 limitare caratteri in textarea Javascript 0
M limitare accesso pagina per data e ora estratti da database Classic ASP 3
T Limitare accessi giornalieri di un utente [era: Piccolo problema] Classic ASP 1
A limitare il peso degli allegati della mail PHP 1
M Limitare i download HTML e CSS 12
R Come limitare i risultati di una query in una tabella? Database 3
G Valore del campo id maggiore di 9999 MySQL 0
S da casella di testo a campo tabella Database 0
M Vendo il mio sito web teknosurfng.com, che trasmette nel campo della tecnologia Compravendita siti e domini 0
F errore 1062 su campo nuovo MySQL 4
R Aprire maschera con Openform filtrando un campo testuale con un valore recuperato da un'altra maschera MS Access 10
D Visualizzazione pagina basata sul valore di un campo del database PHP 2
A pulsante di update campo mysql con javascript Javascript 2
M Creare un campo input select quantità di un numero intero prelevato dal db PHP 3
D riempire campo inserendo un valore in un altro campo PHP 2
S riflettere valore di campo input range in live Javascript 0
P Ricerca campo data PHP 1
M Aggiornare stesso campo in due tabelle PHP 0
U Campo vuoto data errore Fatal error: PHP 2
Alex_70 Aggiornare campo da un altro campo PHP 16
F Steps campo input field Javascript 1
N Chiave Primaria in Campo Calcolato Windows e Software 1
I Focus su un campo Javascript 9
Alex_70 Nascondere label tab se campo vuoto PHP 2
G Impostare suggerimenti campo text di un form Javascript 2
Shyson Inserire placeholder nel campo cerca PHP 5
B Campo ricerca domini HTML e CSS 4
D verifica codice fiscale persona fisica /aziendale stesso campo HTML e CSS 1
G Campo Not null a condizione MySQL 8
M [PHP] Compilare automaticamente il campo data PHP 5
M [PHP] Problemi di salvataggio su campo calcolato PHP 0
M [PHP] Salvare campo di una tabella in una variabile PHP 14
M [MySQL] CREARE UN LINK SU UN DETERMINATO CAMPO DI UNA TABELLA RISULTATO DI UNA QUERY SQL MySQL 3
D [ASP] Leggere Campo decimal MYSQL Classic ASP 1

Discussioni simili