Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    come creare una "temporary table" ?

    Ciao ragazzi, ho la necessità di creare una "temporary table" con mysql, ma non conoscevo questo tipo di tabelle fino a qualche giorno fa... Ho letto da qualche parte che per creare una simile tabella devo usare lo stesso procedimento di una normale tabella cioè CREATE TEMPORARY TABLE (tutti i nomi dei campi con relativi tipi di dato) ma ho provato diverse volte senza ottenere alcun risultato...

    Per creare una normale tabella faccio in questo modo:

    -- ESEMPIO CREAZIONE DI UNA NORMALE TABELLA CON MYSQL E PHP --

    $creazione=mysql_query("CREATE TABLE nome_tabella (
    id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
    nome VARCHAR(30) NOT NULL,
    cognome VARCHAR(30) NOT NULL,
    indirizzo VARCHAR(30) NOT NULL)
    AUTO_INCREMENT=1;");

    Poi qui inserisco i dati nella tabella con un comando INSERT.


    in questo modo creo tranquillamente tabelle a volontà, ma ora ho bisogno di tabelle temporanee che mi diano la possibilità di inserire dati temporaneamene (trattasi di test di ammissione e di carrelli e-commerce), una tabella che si autocancelli a rinuncia da parte dell'utente, una tabella che c'è e non c'è allo stesso tempo...
    Qualcuno può suggerirmi il codice da utilizzare per creare queste tabelle?
    Anche modificando questo esempio che ho inviato...
    Grazie mille a tutti.

  2. #2
    La tabella temporanea non serve nel tuo caso. Tu hai bisogno di una tabella normale che possa venire aggiornata, modificata e/o cancellata durante varie connessioni al db.

    Una tabella temporanea invece dura il tempo della connessione. Quindi a termine dello script della pagina ... puff ... sparisce e non esiste piu'.

    Pero' mi chiedo perche' non usi una tabella normale e provvedi a "segnare" lo stato corrente del record in modo da eliminare quando il caso i record interessati?

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Ciao piero.mac, grazie della risposta, pensavo che la tabella temporanea (che sparisce se l'utente chiude il browser perchè nn ha più voglia magari di acquistare o di proseguire il test di ammissione) fosse la miglior cosa. Per questo motivo ho pensato ad una temporary table.
    Coì non ho tabelle superflue, mi sembra la cosa più azzeccata, ma posso sbagliarmi. Aspetto e accetto ogni delucidazione e consiglio. Ciao piero.mac, Grazie ancora e buon San Lorenzo

  4. #4
    Prova ad utilizzare le sessioni. Quando chiudera' il browser verranno annullate.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Originariamente inviato da iron_horse
    Ciao piero.mac, grazie della risposta, pensavo che la tabella temporanea (che sparisce se l'utente chiude il browser perchè nn ha più voglia magari di acquistare o di proseguire il test di ammissione) fosse la miglior cosa. Per questo motivo ho pensato ad una temporary table.
    Coì non ho tabelle superflue, mi sembra la cosa più azzeccata, ma posso sbagliarmi. Aspetto e accetto ogni delucidazione e consiglio. Ciao piero.mac, Grazie ancora e buon San Lorenzo
    giusto per precisare: la tabella temporanea non scompare quando l'utente chiude il browser bensì quando php termina la connessione che avviene di norma al termine dell'esecuzione della pagina php stessa, tranne nel caso in cui utilizzi le connessioni persistenti ma in quel caso non puoi avere certezza di riacquisire la stessa connessione e la stessa tabella temporanea

    Come piero anch'io ti consiglio di utilizzare le sessioni o, se usi le sessioni su database, ti consiglio di utilizzare tabelle legate alle sessioni in modo che svuoti le righe collegate alle sessioni scadute quando ti serve!

    Ad esempio se ad ogni login fai un calcolo di tipo rand(0,100) verificando che il valore restituito sia, ad esempio, inferiore a 10 riesci a ottenere performance sufficentemente elevate e nel contempo anche una semplicità di gestione

    Se poi vuoi riuscire a massimizzare le performance un'altra cosa da guardare sono le tabelle di tipo HEAP (o MEMORY) ed in alternativa software come memcache, apc, eaccelerator, xcache e cosi via.
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.