phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

Trasferire dati in altra tabella

Area di discussione relativa al linguaggio di programmazione web più conosciuto. Il forum è dedicato anche a MySQL, la piattaforma di database più utilizzata con il PHP.
Rispondi
Avatar utente
frank
Utente
Utente
Messaggi: 1908
Iscritto il: 25/11/2014, 8:02
Sesso: Maschio
Versione: 3.1.7-PL1
Server: UNIX/Linux
PHP: 5.5.29
Database: MySQL(i) 5.5.43-log

Trasferire dati in altra tabella

Messaggio da frank » 02/10/2015, 22:21

Questo codice dopo 3 messaggi li dovrebbe trasferire nella tabella archivio, cioè, dal quarto in poi dovrebbero archiviarsi dal più recente al più vecchio, ma non ci va niente in questa tabella. Rimangono sempre i 3 nella tabella principale (successi) dal più recente in basso e il più vecchio in alto.

Codice: Seleziona tutto

<?php
//Dichiaro la variabile e la rendo vuota, altrimenti da errore
$contatore = ""; 
//Fa uscire la freccia a DX se esistono successi in archivio
if(mysql_num_rows(mysql_query("SELECT * FROM archivio")) > 0){ 
echo "<a class=\"frecciaDX\" href=\"archivio-successi.php\">Vai nell'archivio (<span style=\"font-size: 0.9em; color:#ff0000;\">".$_SESSION['num_archivio']. "</span>)&nbsp;&nbsp;&rArr;</a>";
} 
$numero=3; //Limite max successi da visualizzare nella pag. successi.php
//Estraggo 3 successi dall'alto verso il basso, in ordine crescente
$q="SELECT * FROM successi ORDER BY id ASC LIMIT $numero"; 
//Lancio la query
$ris=mysql_query($q); 
if(mysql_num_rows($ris) > 0) { // Conto i record
    //Leggo un record alla volta e lo stampo a video
    while($riga=mysql_fetch_array($ris)) {
        //Verifico se il conteggio è pari o dispari e in alternato cambio il colore
        if($contatore%2==0) {
        $sfondo="#f1f1f1";
        }
        else {
        $sfondo="#e7ebed";  
        }
echo "<div class=\"xxx\">"; 
        echo "<div class=\"dataBox\">".$riga['dataGmtSX']."<div class=\"idSuccessiSX\"></div><div class=\"idSuccessiDX\">#".$riga['id']."</div></div>"; 
        echo "<div class=\"stampaS\" style=\"background-color: $sfondo\">"; 
        echo "<div class=\"campiAltiS\">"; 
        //Toglie il prefisso all'url 
        $tolgo_http_www = array('http://', 'www.'); 
        $riga['oggettoS'] = trim(str_ireplace($tolgo_http_www,"",$riga['oggettoS']));
        echo "<div class=\"oggettoBox\">".preg_replace($paroleArray, $replacements, $riga['oggettoS'])."</div>";  
        echo "</div>"; //campiAltiS
        $riga['messaggioS'] = preg_replace($paroleArray, $replacements, $riga['messaggioS']);
        $riga['messaggioS'] = str_ireplace("http://%5bCensura%5d", "[Censura]", $riga['messaggioS']); 
        //Rende l'URL linkabile nel campo messaggio, va messo qui
        $riga['messaggioS'] = preg_replace("/(ftp(s|es)?:\/\/|sftp:\/\/|http(s)?:\/\/|www\.)(\w)+[.]*(\w)+(\.[a-z]{2,20})((\/)[-_!#$%&;:.,*+=?^{|}()~A-Za-z0-9\/]*)*/","<a class=\"carattereText\" href=\"$0\">$0</a>",$riga['messaggioS']);                                                                                        
        //Faccine, vanno messe in QUESTO punto DELLA PAG.
        $riga['messaggioS'] = str_ireplace(":CIAO:","<img src=\"http://gruppoalveo.it/faccine/cxiao.gif\" alt=\"Ciao\" title=\"Ciao\" />",$riga['messaggioS']);
        echo "<div class=\"messaggioBox\">".$riga['messaggioS']."</div>"; 
        echo "<div class=\"bassoS\"></div>"; //bassoS
        $tolgo_http_www = array('http://', 'www.'); 
        $riga['nomeS'] = trim(str_ireplace($tolgo_http_www,"",$riga['nomeS']));
        echo "<div class=\"nomeBox\">".preg_replace($paroleArray, $replacements, $riga['nomeS']).",</div>";
        $tolgo_http_www = array('http://', 'www.'); 
        $riga['cittaS'] = trim(str_ireplace($tolgo_http_www,"",$riga['cittaS'])); 
        echo "<div class=\"cittaBox\">".preg_replace($paroleArray, $replacements, $riga['cittaS'])."</div>"; 
        echo "<div id=\"ipBox\"><span class=\"bandierinaBox\">".$riga['bandierina']."</span><span class=\"nazione\">".$riga['country']."</span>&nbsp;&nbsp;<strong>Ip:</strong>&nbsp;".$riga['ip']."</div>";   
        echo "</div>";//stampaS
        echo "</div>";//xxx 
        $contatore ++; //Ad ogni giro incremento di uno 
    }
//*********Inizio trasferimento nella tabella archivio
//Leggiamo tra i post estratti il valore max dell'id
$ris=mysql_query("SELECT MAX(id) as massimo FROM successi ORDER BY id DESC"); 
//Lancio la query  
$riga=mysql_fetch_array($ris); 
$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"); 
    if(mysql_num_rows($ris)>0) { //se maggiore di 0 ci sono records 
    while($riga=mysql_fetch_array($ris)) { 
            //Estraggo tutti i dati del successo col valore minimo id dalla tabella successi...
            $id=$riga['id']; 
            $data_localeS=$riga['data_localeS'];
            $dataGmtSX=$riga['dataGmtSX'];
            $nomeS=addslashes($riga['nomeS']);
            $cittaS=addslashes($riga['cittaS']); 
            $suoemailS=$riga['suoemailS']; 
            $oggettoS=addslashes($riga['oggettoS']);
            $messaggioS=addslashes($riga['messaggioS']); 
            $bandierina; 
            $ip;  
            //...e salvo il successo nella tabella archivio, l'insert è uguale a quello che c'è nella tabella successi  
            $ris_a=mysql_query("INSERT INTO archivio(data_localeS,dataGmtSX,nomeS,cittaS,suoemailS,oggettoS,messaggioS,bandierina,country,ip) 
            VALUES('$data_localeS','$dataGmtSX',$nomeS','$cittaS','$suoemailS','$oggettoS','$messaggioS','$bandierina','".$countries[$two_letter_country_code][1]."','$ip')");  
            //Avendo salvato il successo in tabella archivio posso eliminarlo dalla tabella successi
            $ris_d=mysql_query("DELETE FROM successi WHERE id=$id"); 
            //Questa riga ricarica la pagina e quindi aggiorna il contatore in archivio
            echo "<meta http-equiv='refresh' content='0; url=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
        } 
    } 
  } 
}
//********fine del trasferimento


Avatar utente
brunino
Moderatore
Moderatore
Messaggi: 2819
Iscritto il: 12/01/2013, 16:35
Sesso: Maschio
Versione: 3.1.2
Server: UNIX/Linux
PHP: php 5.3
Database: mysql
Località: Toscana, Firenze
Contatta:

Re: R: Trasferire dati in altra tabella

Messaggio da brunino » 02/10/2015, 23:04

Ma hai messo il collegamrnto col database?

Inviato dal mio GT-S5360 con Tapatalk 2
E' sempre gradito un grazie

Creo estensioni per phpBB 3.1 su misura: contattami via MP.
Mie Estensioni: Top Ten Topics | Ban List | Topic List
Visita il mio forum di test e sviluppo stili e estensioni phpBB 3.1

Avatar utente
frank
Utente
Utente
Messaggi: 1908
Iscritto il: 25/11/2014, 8:02
Sesso: Maschio
Versione: 3.1.7-PL1
Server: UNIX/Linux
PHP: 5.5.29
Database: MySQL(i) 5.5.43-log

Re: Trasferire dati in altra tabella

Messaggio da frank » 02/10/2015, 23:15

Si, i dati li passa solo nella tabella principale, ma dal 4° dovrebbe inseriti nella tabella archivio.

EDIT: risolto, mancava un apice prima di $nomeS (ora l'ho messo) :frustrante:

Codice: Seleziona tutto

VALUES('$data_localeS','$dataGmtSX','$nomeS','$cittaS','$suoemailS','$oggettoS','$messaggioS','$bandierina','".$countries[$two_letter_country_code][1]."','$ip')");  

Rispondi

Torna a “PHP - MySQL”

Chi c’è in linea

Visitano il forum: Nessuno e 35 ospiti