Oggi vi illustrerò una serie di consigli e trucchi molto utili durante la programmazione in PHP/MYSQL, davvero unici e per esperti!
[lightgrey_box]
SOMMARIO GUIDA
Parte 2: Funzioni per gestire le stringhe
Parte 4: Guida Cicli IF, ELSE, ISSET, EMPTY
Parte 6: i cicli PHP: Do,While – For – Foreach
[/lightgrey_box]
Spero vi siano utili durante i vostri progetti! Iniziamo per diventare dei mysql “ninja” dovete sapere:
– Resettare conteggio campi id mysql
Vi è mai capitato di scrivere 10 record nel database e di cancellarne 9? Bhè il successivo record auto-incrementato sarà 11. Come fare ad ovviare a questo problema?
ALTER TABLE nometabella AUTO_INCREMENT = 1
Il codice proposto setta il valore di auto-incremento di nuovo a 1 facendo ripartire la catena. E’ molto utile dopo la fase di progettazione quando si devono eliminare gli articoli “di prova” per lasciare il posto a quelli “finali” e completi.
– Ottenere la data auto-generata dopo l’inserimento di un articolo nel DB
Usate questo comando se volete auto-generare la data ogni volta che inserite un nuovo campo nel database:
data = CURDATE() //nota: data è un campo mysql
Ovviamente il campo data dovrà essere impostato in questo modo per un corretto funzionamento: NULL=Sì | predefinito: NULL | tipo date. Ogni volta che inserirete un nuovo campo nella vostra tabella il valore curdate() scriverà la data nel vostro campo automaticamente 😉
– Recuperare l’ultimo ID (auto-generato) inserito
Può essere utile capire quale sia l’ultimo id auto-generato inserito nel db, per trovarlo esistono due strade:
ultimoIDinserito = "SELECT TOP 1 id FROM tuatabella ORDER BY id DESC"
Esiste tuttavia anche un comando per richiamare l’ultimo id direttamente dentro una variabile PHP:
mysql_insert_id()
Attenzione, operare sull’ultimo id auto-generato può generare ridondanza ciclica, maneggiare con cura!
Problema con gli apostrofi e i link
In alcuni progetti mi è capitato di avere (grossi) problemi con gli apostrofi durante l’invio del link o testo in PHP. Del genere: villa-d’alessando-liguria inviando un link di questo tipo via GET per poterlo poi usare in PHP ad esempio ho avuto non pochi problemi. Per aggirare queste limitazioni vi consiglio 3 soluzioni (potete usarle anche tutte e 3 insieme):
– Per il testo dentro l’input, utilizzare htmlspecialchars.
– [Consigliato] per l’url, utilizzare urlencode. (es. urlencode($row[‘descrizione’]); )
– per le query mysql fate l’escape dei caratteri sul GET usando: mysql_real_escape_string.
– Redirect automatico dopo modifica apportata con successo
In un pannello admin che si rispetti questa feature è indispensabile, possiamo facilmente creare il redirect in due modi:
header(Location …)
Oppure con javascript in questo modo:
echo 'Modifica avvenuta con successo!';
echo '<script type="text/javascript">setTimeout("parent.history.back()",5*1000)</script>';
Il codice conta fino a 5 secondi e poi reindirizza alla pagina precedente di modifica.
Spero vi sia utile, buona giornata a tutti!
articolo stupendo e veramente utile!
Grazie Giacomo! ogni tanto ci sta qualche articolo anche per gli esperti 😉
Grande ricky! 🙂
grazie Marco!
Funziona questo? (non ci ho mai provato)
ALTER TABLE nometabella AUTO_INCREMENT = 1
Io avevo provato a modificare manualmente l’id di una tupla, ma ovviamente non funzionava. Non sapevo che rimettendolo a 1 il tutto ripartiva.. Farò delle prove.
Sicuramente è un metodo più veloce di quello che usavo:
– export della tabella
– truncate tabella
– import nella tabella
ciao
Ciao daniele, certo che funziona provare per credere 😉 purtroppo per alcuni progetti è indispensabile per ripristinarlo a 1 😉