PhpAdmin-MySQL com MAMP

  • Creatore Discussione Creatore Discussione Shyson
  • Data di inizio Data di inizio
ciao
non solo.
qui l'ho applicato al primo div, ma tu puoi applicarlo dove vuoi
PHP:
<?php
//...............
    // Leggo un record alla volta e lo stampo
	$conteggio=0;//inizializzo il conteggio
    while($riga=mysql_fetch_array($ris)) {
        //verifico se conteggio è pari o dispari
		if($conteggio%2==0){$sfondo="#FF0000";}else{$sfondo="#006600";}
		//quindi infunzione cambio colore di sfondo
		echo "<div class=\"stampaS\" style=\"background-color: $sfondo \">"; //applico il colore di sfondo
        echo "<div class=\"dataBox\">".crea_data($riga['data_localeS'])."</div>";  
        echo "<div class=\"campiAltiS\">"; 
        echo "<div class=\"oggettoBox\">".$riga['oggettoS']."</div>"; 
        echo "</div>"; // campiAltiS  
        echo "<div class=\"messaggioBox\">".$riga['messaggioS']."</div>"; 
        echo "<div class=\"bassoS\"></div>"; // bassoS  
        echo "<div class=\"nomeBox\">".$riga['nomeS'].",</div>"; 
        if (!empty($riga['cittaS'])) {  // Se il campo è vuoto non stampa neanche la virgola 
            echo "<div class=\"cittaBox\">".$riga['cittaS'].",</div>"; 
        } 
        if (!empty($riga['suoemailS'])) {  // Se il campo è vuoto non stampa neanche il trattino 
            echo "<div class=\"mailBox\">".$riga['suoemailS']."&nbsp;&nbsp;-&nbsp;&nbsp;</div>";  
        }  
        echo "<div class=\"ipBox\">Ip: $ip</div>"; 
        echo "<div class=\"bandierinaBox\">$bandierina<div class=\"nazione\">".$countries[$two_letter_country_code][1]."</div></div>"; 
        echo "</div>";//stampaS
		$conteggio ++; // a ogni giro incremento di uno
    } 
//..............
?>
oppure volendo puoi operare sul css facendo es due classi (quindi più comodo se vuoi alternare anche altre proprietà)
stampaS_1 e stampaS_2 e sempre nell'if
PHP:
<?php
//....
	if($conteggio%2==0){$stile="class=\"stampaS_1\"";}else{$stile="class=\"stampaS_2\"";}
	//.....
	echo "<div $stile>";
	//......
?>
 
ciao
non solo.
qui l'ho applicato al primo div, ma tu puoi applicarlo dove vuoi
PHP:
<?php
//...............
    // Leggo un record alla volta e lo stampo
	$conteggio=0;//inizializzo il conteggio
    while($riga=mysql_fetch_array($ris)) {
        //verifico se conteggio è pari o dispari
		if($conteggio%2==0){$sfondo="#FF0000";}else{$sfondo="#006600";}
		//quindi infunzione cambio colore di sfondo
		echo "<div class=\"stampaS\" style=\"background-color: $sfondo \">"; //applico il colore di sfondo
        echo "<div class=\"dataBox\">".crea_data($riga['data_localeS'])."</div>";  
        echo "<div class=\"campiAltiS\">"; 
        echo "<div class=\"oggettoBox\">".$riga['oggettoS']."</div>"; 
        echo "</div>"; // campiAltiS  
        echo "<div class=\"messaggioBox\">".$riga['messaggioS']."</div>"; 
        echo "<div class=\"bassoS\"></div>"; // bassoS  
        echo "<div class=\"nomeBox\">".$riga['nomeS'].",</div>"; 
        if (!empty($riga['cittaS'])) {  // Se il campo è vuoto non stampa neanche la virgola 
            echo "<div class=\"cittaBox\">".$riga['cittaS'].",</div>"; 
        } 
        if (!empty($riga['suoemailS'])) {  // Se il campo è vuoto non stampa neanche il trattino 
            echo "<div class=\"mailBox\">".$riga['suoemailS']."&nbsp;&nbsp;-&nbsp;&nbsp;</div>";  
        }  
        echo "<div class=\"ipBox\">Ip: $ip</div>"; 
        echo "<div class=\"bandierinaBox\">$bandierina<div class=\"nazione\">".$countries[$two_letter_country_code][1]."</div></div>"; 
        echo "</div>";//stampaS
		$conteggio ++; // a ogni giro incremento di uno
    } 
//..............
?>
oppure volendo puoi operare sul css facendo es due classi (quindi più comodo se vuoi alternare anche altre proprietà)
stampaS_1 e stampaS_2 e sempre nell'if
PHP:
<?php
//....
	if($conteggio%2==0){$stile="class=\"stampaS_1\"";}else{$stile="class=\"stampaS_2\"";}
	//.....
	echo "<div $stile>";
	//......
?>
Adesso lo provo, col css potrebbero esserci problemi coi vari browser, il php invece è uguale per tutti
 
Uso questo

PHP:
 //verifico se conteggio è pari o dispari 
        if($conteggio%2==0){$sfondo="#f5f5f5";}else{$sfondo="#f0f0f0";} 
        //quindi in funzione cambio colore di sfondo 
        echo "<div class=\"stampaS\" style=\"background-color: $sfondo \">"; //applico il colore di sfondo 
...
$conteggio ++; // a ogni giro incremento di uno

Per il conteggio crescente ASC hai qualche idea?
 
ciao
Adesso lo provo, col css potrebbero esserci problemi coi vari browser, il php invece è uguale per tutti
generalmente i problemi si hanno solo sui margin e padding dei div e sui nuovi parametri css3, gli usuali non danno problemi.

per l'asc devo pensarci, perche in genere se sono presenti tutti i record è semplice (l'asc o il desc è sufficiente) ma essendoci il limit prende, come detto, prima l'ordine poi la quantità quindi se asc non prende l'ultimo

p.s.
anche se trattandosi di messaggi a me piacerebbe di più che l'ordine decrescente (l'ultimo in cima)
 
ciao

generalmente i problemi si hanno solo sui margin e padding dei div e sui nuovi parametri css3, gli usuali non danno problemi.

per l'asc devo pensarci, perche in genere se sono presenti tutti i record è semplice (l'asc o il desc è sufficiente) ma essendoci il limit prende, come detto, prima l'ordine poi la quantità quindi se asc non prende l'ultimo

p.s.
anche se trattandosi di messaggi a me piacerebbe di più che l'ordine decrescente (l'ultimo in cima)

Ho messo ASC perché il form è in fondo, è come i blog, mentre nella pagina Archivio ho messo DESC, comunque nel frattempo che ti viene l'idea puoi darmi il codice contamessaggi che poi me lo sistemo.
 
oppure volendo puoi operare sul css facendo es due classi (quindi più comodo se vuoi alternare anche altre proprietà)
stampaS_1 e stampaS_2 e sempre nell'if
PHP:
<?php
//....
	if($conteggio%2==0){$stile="class=\"stampaS_1\"";}else{$stile="class=\"stampaS_2\"";}
	//.....
	echo "<div $stile>";
	//......
?>

Ho creato il css e sto cercando di provare anche questo ma non riesco proprio a integrarlo
 
ciao
intanto il conteggio, secondo me ti conviene mettere questo script solo nella pag index (che è la prima che l'utente chiama)
PHP:
<?php
session_start();
	//dati di connessione o il require se li hai in un file
	$_SESSION['num_suc']=mysql_num_rows(mysql_query("SELECT id FROM successi"));
	$_SESSION['num_arch']=mysql_num_rows(mysql_query("SELECT id FROM archivio"));
//......
?>
poi usi le due sessioni nel menu (non so come l'hai scritto) ma pressapoco dovrebbe essere così

successi (<?php echo $_SESSION['num_suc']; ?>) analogo per l'archivio

ricorda che tutte le pagine che usano le sessioni devono iniziare con session_start
 
ciao
intanto il conteggio, secondo me ti conviene mettere questo script solo nella pag index (che è la prima che l'utente chiama)
PHP:
<?php
session_start();
	//dati di connessione o il require se li hai in un file
	$_SESSION['num_suc']=mysql_num_rows(mysql_query("SELECT id FROM successi"));
	$_SESSION['num_arch']=mysql_num_rows(mysql_query("SELECT id FROM archivio"));
//......
?>
poi usi le due sessioni nel menu (non so come l'hai scritto) ma pressapoco dovrebbe essere così

successi (<?php echo $_SESSION['num_suc']; ?>) analogo per l'archivio

ricorda che tutte le pagine che usano le sessioni devono iniziare con session_start
Lo provo, questo se non sbaglio mi da il conteggio totale, ma ho anche bisogno di mettere un codice anche qui che conteggia solo quelli in archivio <a href="http://sito.it/archivio_successi.php">In archivio</a>
 
Lo provo, questo se non sbaglio mi da il conteggio totale, ma ho anche bisogno di mettere un codice anche qui che conteggia solo quelli in archivio <a href="http://sito.it/archivio_successi.php">In archivio</a>
In parte ho risolto, nella home non mi conteggia il totale ma solo quello nella pagina successi, questi i codici

$_SESSION['successi']=mysql_num_rows(mysql_query("SELECT id FROM successi"));
$_SESSION['archivio']=mysql_num_rows(mysql_query("SELECT id FROM archivio"));
 
ciao
non ti conteggia i record che ci sono in archivio?
per avere cpmunque il totale puoi aggiungere

PHP:
$_SESSION['totale']=$_SESSION['successi']+$_SESSION['archivio'];

poi nell link

...(<?php echo $_SESSION['successi']."/".$_SESSION['totale']; ?>)....
 
ciao
non ti conteggia i record che ci sono in archivio?
per avere cpmunque il totale puoi aggiungere

PHP:
$_SESSION['totale']=$_SESSION['successi']+$_SESSION['archivio'];

poi nell link

...(<?php echo $_SESSION['successi']."/".$_SESSION['totale']; ?>)....
Ok,

resta sempre il problema della stampa del numero totale, che avviene se si aggiorna la pag manualmente.
Penso sia sempre per quella faccenda ASC $q="SELECT * FROM successi ORDER BY id ASC LIMIT $numero";
 
ciao
non dipende dalla query, i contatori così come sono si aggiornano dopo il refresh della pagina, altrimenti si deve ricorrere a ajax e/o jquery
 
ciao
ma qui non posso aitarti, di ajax e jq (salvo scopiazzare a dx e sx) non ne so molto.
se non sai come fare fai un post nella sezione javascript=>ajax e jq
 
Provo a postare in jquery

Come forse avrai notato nel mio posto nella sez. jquery, avendo invertito la sequenza dei codici, ora il totale messaggi si aggiorna automaticamente.
Ma il numero di quelli in archivio no, bisogna aggiornalo...e qui si torna ancora a quel famoso problema ASC

PHP:
$_SESSION['num_successi']=mysql_num_rows(mysql_query("SELECT id FROM successi"));  
$_SESSION['num_archivio']=mysql_num_rows(mysql_query("SELECT id FROM archivio")); 
$_SESSION['totale_successi']=$_SESSION['num_successi']+$_SESSION['num_archivio'];

..

In archivio&nbsp;(<?php echo $_SESSION['num_archivio']; ?>)
 
Ultima modifica:
Come forse avrai notato nel mio posto nella sez. jquery, avendo invertito la sequenza dei codici, ora il totale messaggi si aggiorna automaticamente.
Ma il numero di quelli in archivio no, bisogna aggiornalo...e qui si torna ancora a quel famoso problema ASC

PHP:
$_SESSION['num_successi']=mysql_num_rows(mysql_query("SELECT id FROM successi"));  
$_SESSION['num_archivio']=mysql_num_rows(mysql_query("SELECT id FROM archivio")); 
$_SESSION['totale_successi']=$_SESSION['num_successi']+$_SESSION['num_archivio'];

..

In archivio&nbsp;(<?php echo $_SESSION['num_archivio']; ?>)


PS: ma ho notato che non è un problema ASC perché ho provato a mettere DESC ma il numero in archivio non si aggiorna
 
ciao
strano che non ti metta il numero dei messaggi in archivio
1) controlla
$_SESSION['num_arch']=mysql_num_rows(mysql_query("SELECT id FROM archivio"));
il nome della tabella coincide?
2) hai dei messaggi in archivio? comunque se non ci sono dovrebbe essere 0

counque in quelle due query non mettere l'order by, contano solo il numero dei record presenti

eventualmente posta la solita vista della tabella archivio

edit
dimenticavo nella tabella archivio l'id del record l'hai chiamo id? verifica che siano uguali
3) controlla
$_SESSION['num_arch']=mysql_num_rows(mysql_query("SELECT id FROM archivio"));
 
Ultima modifica:
ciao
strano che non ti metta il numero dei messaggi in archivio
1) controlla
$_SESSION['num_arch']=mysql_num_rows(mysql_query("SELECT id FROM archivio"));
il nome della tabella coincide?
2) hai dei messaggi in archivio? comunque se non ci sono dovrebbe essere 0

counque in quelle due query non mettere l'order by, contano solo il numero dei record presenti

eventualmente posta la solita vista della tabella archivio

edit
dimenticavo nella tabella archivio l'id del record l'hai chiamo id? verifica che siano uguali
3) controlla
$_SESSION['num_arch']=mysql_num_rows(mysql_query("SELECT id FROM archivio"));

Ti spiego meglio, il numero messaggi in archivio li stampa, es:

invio il form, il totale messaggi lo aggiorna subito, perciò questo è a posto.

Riguardo all'archivio, mettiamo che a video è stampato in archivio(8), come io invio il form rimane stampato ancora 8, poi se invio un nuovo post, stampa in archivio(9), e così via, ne mette nella tabella archivio e ne stampa sempre uno di meno.

Questo perché nella pagina dei successi ne trasferisce uno di meno in archivio...quel famoso problema
 
ciao
Questo perché nella pagina dei successi ne trasferisce uno di meno in archivio...quel famoso problema
credo di aver trovato l'inghippo

per semplificare mettiamo numero =10
id testo
--------
1 a
2 b
3 c
4 d
5 e
6 f
7 g
8 h
se inserisci un messaggio risulta $vecchi_id=$riga['massimo']-$numero < 0
9 i
se inserisci un messaggio risulta $vecchi_id=$riga['massimo']-$numero < 0
10 l
se inserisci un messaggio risulta $vecchi_id=$riga['massimo']-$numero = 0

quindi correggi la riga dell'if

PHP:
<?php
//....
$ris=mysql_query("SELECT MAX(id) as massimo FROM successi ORDER BY id DESC");
$vecchi_id=$riga['massimo']-$numero;
if($vecchi_id >= 0){//cioè maggiore o uguale a 0
    //verifico che ci siano record precedenti
    $ris=mysql_query("SELECT * FROM successi WHERE id <= $vecchi_id");
//....
?>
prova e sappimi dire
 

Discussioni simili