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

db mysql - chiave primaria auto-increment

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
trattobasso
Utente
Utente
Messaggi: 3
Iscritto il: 26/09/2014, 10:39
Sesso: Maschio
Database: mysql

db mysql - chiave primaria auto-increment

Messaggio da trattobasso » 26/09/2014, 10:47

ciao e buongiorno a tutti,
ammetto che sono abbastanza inesperto e non so se quello che vi sto per chiedere, non mi riesce semplicemente perchè non si può fare oppure se perchè non lo so fare io...
in sostanza vorrei creare in una tabella, una colonna di tipo Primary Key|Not Null|Unique|Auto Increment e fin qui nessun problema. Il particolare che mi piacerebbe implementare, è che il record fosse accompagnato da una dicitura fissa tipo:
"ITA - 14 - "
creando di conseguenza:
ITA - 14 - 001
ITA - 14 - 002
ITA - 14 - 003
ITA - 14 - 004

Colgo l'occasione per ringraziarvi in anticipo e per salutarvi tutti.

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: db mysql - chiave primaria auto-increment

Messaggio da Micogian » 26/09/2014, 11:54

Il campo "auto-increment" è un numero, non una stringa.
Da programma si può creare una stringa dal campo numerico, ad esempio il campo id
Crea un file "prova.php" con questo contenuto e prova:

Codice: Seleziona tutto

<html>
<head>
<?php
$id = 2;
$cod = "ITA - 14 - " . str_pad($id, 3, "0", STR_PAD_LEFT);
echo "$cod";  // il risultato sarà  $cod = ITA - 14 - 002
?>
</body>
</html>
La variabile $cod trasforma la variabile $id in una stringa.
La funzione str_pad aggiunge gli eventuali "0" se il numero è inferiore a 3 cifre. Se il numero deve essere di 4 cifre basta mettere il valore 4 alla funzione str_pad.

trattobasso
Utente
Utente
Messaggi: 3
Iscritto il: 26/09/2014, 10:39
Sesso: Maschio
Database: mysql

Re: db mysql - chiave primaria auto-increment

Messaggio da trattobasso » 26/09/2014, 12:47

Ciao micogian ti ringrazio della risposta, chiara, purtroppo devo pensare ad un'altra soluzione.
Il motivo è che sto provando a pilotare il db da un'applicazione winfor con vb.net
La soluzione potrebbe essere quella di spacchettare il record e nel campo id mettere solo un semplice contatore, il resto lo aggiungo altrove ma, si può personalizzare il formato del campo auto-increment, ovvero invece che 0 1 2 3 4 ad esempio 0001 0002 0003 0004?
Con workbench vedo il campo Default in corrispondenza della creazione, ma se aggiungo li 0001 come primo numero del contatore, si disattiva automaticamente il check da autoincrement.
E' possibile?
Ancora grazie di tutto.

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: db mysql - chiave primaria auto-increment

Messaggio da Micogian » 26/09/2014, 13:45

No, non credo. Per lo meno non con un campo auto-increment.
Bisognerebbe creare un campo text e inserire la numerazione che vuoi tu da codice.
ma per lo stesso motivo non vedo perchè non si possa creare il codice che ti serve da programma, come nell'esempio precedente.
Il database avrà una sequenza di id numerica che da programma viene modificato nel codice necessario.
Probabilmente non ho capito il motivo ma si può fare e non serve che nel database ci sia il campo "testo", quello si ricava.
Se il campo è necessario va inserito, sempre da codice, al momento della creazione del record.

trattobasso
Utente
Utente
Messaggi: 3
Iscritto il: 26/09/2014, 10:39
Sesso: Maschio
Database: mysql

Re: db mysql - chiave primaria auto-increment

Messaggio da trattobasso » 26/09/2014, 15:23

ciao, mi sa che ho risolto molto semplicemente impostando la chiave primaria "ZERO FILL" con datatype (INT3).
sembra giusto. è corretto formalmente?

Rispondi

Torna a “PHP - MySQL”

Chi c’è in linea

Visitano il forum: Nessuno e 47 ospiti