Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - Cosa comporta eliminare un record da una tabella?
Forum - PHP - Cosa comporta eliminare un record da una tabella?

Avatar
RapFan (Normal User)
Newbie


Messaggi: 7
Iscritto: 03/03/2011

Segnala al moderatore
Postato alle 21:00
Venerdì, 22/04/2011
Ciao a tutti!
Ho fatto un programmino che legge record da una tabella, composta da due campi:
"ID" che ho impostato come indice intero con autoincremento e preimpostato su NULL
"Frase" che contiene il testo da visualizzare

-genero un numero casuale
-questo numero casuale è il campo id della tabella
-stampo la frase associata a quell'id

Ho come l'impressione che questo sia solo la punta dell'iceberg:rotfl:

Adesso io voglio fare un programmino simile che si occupi di inserire altre frasi prese da un form html

- devo inserire solo il campo frase? o anche quello ID? se metto su autoincremento dovrebbe farlo solo no?
- ogni record viene inserito automaticamente alla fine della tabella?
- ogni volta che inserisco delle frasi aumenta il range del numero casuale da generare, ovviamente questo numero è proprio il campo ID dell'ultimo record inserito c'è un modo per prenderlo e usarlo?


e di eliminare una frase sempre presa da un form

esempio pratico
ID 4 Frase "quattro"
ID 5 Frase "cinque"
ID 6 Frase "sei"

voglio eliminare "cinque"

- faccio la ricerca con le varie query e lo elimino
- adesso devo spostare il record con ID 6 per farlo tornare ID 5 oppure fa tutto in automatico?

Scusate la niubbagine!:hail:

se può servire sto lavorando su un server altervista con phpmyadmin per creare le tabelle

Ultima modifica effettuata da RapFan il 22/04/2011 alle 21:02
PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Up
1
Down
V
Segnala al moderatore
Postato alle 21:36
Venerdì, 22/04/2011
non hai bisogno di preoccuparti dei valori degli indici, in nessun caso.
auto_increment permette di generare un nuovo numero (seriale) ad ogni insert, inoltre dopo le delete è possibile che vengano lasciati dei "buchi".
Non vedere una tabella come un array perchè c'entra poco o niente :)

Grazie per la risposta! è un problema avere dei buchi all'interno di una tabella? in quali casi potrebbe esserlo? come potrei risolverlo? - RapFan - 22/04/11 21:44
NON E' UN PROBLEMA IN NESSUN CASO E IN NESSUN CASO SI DEVE "RISOLVERE" - HeDo - 22/04/11 23:05
Hai ragione, stavo usando gli ID solo per generare un numero causale, adesso ho scoperto un comando mysql "RAND" che fa la stessa cosa ma mi risparmia gli indici! Fantastico! Vado a buttare qualche riga di codice! - RapFan - 23/04/11 16:15
PM
Avatar
Cristian Sannino (Ex-Member)
Rookie


Messaggi: 26
Iscritto: 12/02/2011

Up
0
Down
V
Segnala al moderatore
Postato alle 1:08
Sabato, 23/04/2011
Ciao non scusarti perchè il migliore di questo forum avrà fatto domande del tipo come metto il grassetto su un testo e se ti dicono che non è vero è una bugia XD

Allora quando fai una query puoi farla in due modi :

INSERT INTO nome tabella VALUES (id,'frase')
in questo caso devi per forza di cose mettere tutti i valori ma se al posto dell'id scrivi NULL in automatico lo inserisce da se

oppure cosi : INSERT INTO tabella (frase) VALUES ('frase')

in questo caso inserisce frase dando automaticamente un id...attento agli apici se sono campi stringhe se invece sono numerici senza apici, non dimenticarlo mai questo è la base

non preoccuparti degli id è impossibile gestirli o per meglio dire inutilissimo gestirli, anche microsoft.com non gestisce gli ID perchè i database non ne hanno bisogno se voglio recuperare valori da un database li recupero tutti non mi preoccupo degli id, mentre se ho una tabella dove cliccando sul tasto modifica voglio recuperare il dato dovrai semplicemente visualizzare o per meglio dire recuperare l'id della riga ed ottieni tutte le informazioni nel tuo caso la frase corrispondente all'ID

programmino base per aiutarti, ed oggetto di studio
Codice sorgente - presumibilmente Plain Text

  1. index.html
  2. <form action='ciccio.php' method='post'>
  3. Frase : <input type='text' name='frase'>
  4. <input type='submit' value='invia'>
  5. </form>



ciccio.php
Codice sorgente - presumibilmente Plain Text

  1. $frase=$_POST['frase'];
  2. $link=mysql_connect('host','user','pass');
  3. mysql_select_db('nome_db',$link);
  4. mysql_query("INSERT INTO nome_tabella (frase) VALUES('$frase')");



con questo programmino inserisci nel database la frase mentre per il recupero basta fare
Codice sorgente - presumibilmente PHP

  1. $link=mysql_connect('host','user','pass');
  2. mysql_select_db('nome_db',$link);
  3. $result=mysql_query("SELECT * FROM nome_tabella");
  4. while($row=mysql_fetch_array($result))
  5. {
  6. $id=$row['id']
  7. $frase=$row['frase'];
  8. echo "id=$id e frase=$frase<br>";
  9. }



questo ti stamperà tutte le frasi...ho buttato il codice giù senza controllare ma dovrebbe andare...
non commento niente per fartelo almeno studiare, ma se hai bisogno chiedi pure.

P.S.: dopo che avrai preso confidenza con i post devi assolutamente imparare i GET che sono il vero punto forte di molte applicazioni, non so se lo sai ma quegli indirizzi come index.php?page=home, significa che sto passando alla pagina index.php la variabile page ed il suo valore home...
Insomma prova e riprova non smetterai di divertirti...:pat:

Grazie per la mole di informazioni XD! Proverò sicuramente a modificare i link per passargli dei valori diversi da quelli preimpostati! XD! - RapFan - 23/04/11 16:13
PM