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

    [SQL + PHP] inserimento dati in un DB

    Premetto di essere proprio alle prime armi sia con PHP che con MySQL...
    Allora, quello che devo fare è popolare una tabella con dei dati che vengono inseriti da un form di registrazione, e quello che vorrei fare è uno script in grado di collegarsi al DB e inserire i dati "nella riga successiva" all'ultima popolata.

    Mi spiego meglio: io per ora sono solo in grado di inserire i dati nel modo seguente, ovvero indicando specificamente in che punto della tabella inserire il dato (in questo caso nella prima riga).

    codice:
    $result = $mysqli->query("INSERT INTO user_table VALUES (1,'$_POST[name]','$_POST[surname]')");
    Ora se uso sempre questo script, è logico che vado ad inserire ogni nuovo utente sempre nella prima posizione cancellando il precedente record.
    Quello che vorrei fare è usare un codice del tipo

    codice:
    $result = $mysqli->query("INSERT INTO user_table VALUES ($index,'$_POST[name]','$_POST[surname]')");
    in cui la variabile $index mi tiene conto della prima nuova riga disponibile in cui poter inserire il nuovo utente.
    Ci sono dei comandi (My)SQL tramite cui posso ipostare $index in modo che sia sempre aggiornato sulla prima posizione libera nella tabella (in questo caso user_table)?


    Seconda cosa, ma per il momento assai meno importante: dovendo prevedere anche una cancellazione di utente da questa tabella, vorrei mantenere la tabella senza buchi, ovvero vorrei che lo script di cancellazione prevedesse un riordino della tabella in modo da non lasciare record inutilizzati. Si deve necessariamente procedere con una riorganizzazione tramite PHP, oppure magari (mi auguro) questa funzione può essere fatta internamente da MySQL?

    Spero di essere stato abbastanza chiaro ;-)

  2. #2
    Per quanto riguarda la tua prima domanda..devi lavorare sulla struttura della tabella.
    Esiste in MySql il campo AutoIncrement che per ogni inserimento che effettui da solo si incrementa.

    Per la seconda domanda...bhe si allinea con quanto scritto sopra...se esiste un tale tipo di campo perchè dovresti prevedere il riordino della tabella ?!

  3. #3
    Originariamente inviato da ellecubo
    Per quanto riguarda la tua prima domanda..devi lavorare sulla struttura della tabella.
    Esiste in MySql il campo AutoIncrement che per ogni inserimento che effettui da solo si incrementa.

    Per la seconda domanda...bhe si allinea con quanto scritto sopra...se esiste un tale tipo di campo perchè dovresti prevedere il riordino della tabella ?!
    Ottimo, ho risolto il primo problema: infatti avevo diciarato AUTOINCREMENT il campo user_id, ma solo non sapevo come richiamarlo, quando bastava semplicemente fare come segue

    codice:
    $result = $mysqli->query("INSERT INTO user_table VALUES  ('user_id','$_POST[name]','$_POST[surname]'  )");

    Invece per quanto riguarda la seconda parte della domanda, tu dici che semplicemente eliminando un record (diciamo per esempio il 32esimo su 50 record della tabella), ci pensa direttamente MySQL a "riordinare" in modo da eliminare il buco? Leggendo la documentazione non mi sembrava fosse così...
    Puoi essere un po' più preciso? Grazie mille.

  4. #4
    no scusa mi sarò spiegato male...
    mysql non riordina il tuo buco....
    essendo autoincrement continuerà così..per sempre..per questo ti ho detto non vedo l'utilità di avere un id che sia necessariamente sequenziale...

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.