Ciao
Fai un'iscrizione quindi hai un database giusto? Se è cosi prima di far registrare vai ad eseguire una query e vedi quale è l'ultimo ID e incrementi di 1.
Ma tutta questa scomodità la potresti evitare facendo direttamente un' ID Autoincrement.
Se hai bisogno spiega meglio cosa vorresti fare e vediamo di risolvere.
non so cosa sia l'id_anagrafe, ma facendo come dici tu nella casella numero di tessera si incrementa il numero o lo fa solo nella tabella del database? Ti Allego il codice php della pagina che gestisce l'iscrizione cosi vedi se riesci a capire come gestire quella casella...Buongiorno,
Cosa è id_anagrafe?
Allora io ti consigliere di aggiungere una colonna alla tabella prima di "ntessera" e chiamarla id e dare autoincrement dal database e li ci sarà l'incremento automatico.
session_start();
$user = $_SESSION['utente'];
$langanagrins = $_SESSION['lingua'];
$paginaanagrins = "insanagrins.inc";
$linguaanagrins = ($langanagrins.$paginaanagrins);
include($linguaanagrins);
if ($user == 'admin') {
include('./top.inc');
include('./menu.inc');
include ('./dati_db.inc');
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
?>
<center><h2><? echo $Lpresentazioneangrins; ?></h2>
<small><? echo $Lsuggerimento; ?></small></center>
<br>
<!--Visualizza il numero di tessere -->
<table><tr><td>
<form action='./stampa_soci.php' method='POST' target='_blank'>
<button name='ordine' type='submit' value="ntessera"><? echo $Ltessere; ?></button>
</form></td>
<td><form action='./Scheda_regioni.php' method='POST'>
<button name='Regioni' type='submit' value="regioni">Regioni</button></form></td>
<td><form action='./Scheda_province.php' method='POST'>
<button name='Province' type='submit' value="Province">Province</button></form></td>
<td><form action='./Scheda_comuni.php' method='POST'>
<button name='Comuni' type='submit' value="comuni">Comuni</button></form></td></tr>
</table>
<form action='./conf_dati_ins.php' method='POST' enctype="multipart/form-data">
<table align='center' border='0' width='60%'>
<tbody>
<tr>
<td width='150'><font color="red"><? echo $Lntessera; ?></td>
<td><input name='ntessera' size='5' type='text' required='required'>
<br><small><sub><i><? echo $Listntessera; ?></small></i></sub></td>
</tr>
<?php include('./DatiComuni.inc'); ?>
<tr>
<td width='150'><font color="red"><?echo $Ltipoassociato; ?> *:</td>
<td><select name="materia" >
<option value="" selected="selected"><? echo $Ltipoassociato; ?> </option>
<?php
$query = "SELECT materia FROM tb_materia";
$rs=mysql_query($query)
or die("<b>Errore:</b> Impossibile eseguire la query della Combo");
while ($row=mysql_fetch_row($rs))
{
echo "<option>" .$row["0"]. "</option>";
}
mysql_close();
?>
</select></td>
</tr>
<tr>
<td colspan='2' align='center'>
<input value=<? echo $Linvia; ?> type='submit' <? echo($limit); ?>></td>
</tr>
</tbody>
</table>
<br>
</form>
<?php
include('./menusx.inc');
echo $Lhelpanagrins;
include('./botton.inc');
} else {
header('Location: Rip_database.php');
}
?>
, deduco che non hai fatto tu questo codice e DB.non so cosa sia l'id_anagrafe
Ciao
Dalla tua riposta
, deduco che non hai fatto tu questo codice e DB.
Molto probabilmente id_anagrafe è già autoincrement (significa che ogni volta che farai una query per un nuovo tesserato quel numero incrementerà di uno in automatico 1, 2, 3, 4 ecc...)
prima di andare ad aggiungere un nuovo tesserato vai a fare una query di controllo, vedi quale è l'ultimo id_anagrafe e da quello farai a sua volta il ntessera.
Fammi sapere se non mi sono spiegato bene.
Ciao
"A".$numeroestratto."B"
ciao dopo qualche mese ho ripreso questo progetto, allora ho modificato le due voci e utilizzato l'id_anagrafe al posto del numero di tessera, è nella lista delle registrazioni funziona perfettamente, ma non c'è un modo per poter visualizzare il numero di id nella casella del form?Ciao
Se il numero di tessera è solo numerico ti consiglio di usare il campo id_anagrafe già funzionante.
In alternativa se il tuo numero tessera deve diventare esempio: A001B.
Fai una query SELECT e vai a recuperare l'ultimo id creato e una volta che vai a fare un nuovo tesserato incrementi di 1 e vai ad aggiungere
PHP:"A".$numeroestratto."B"
Fammi sapere
$query_ultimo_id = "SELECT id_anagrafe FROM clienti ORDER BY id DESC LIMIT 1";
$query = mysqli_query($conn, $query_ultimo_id);
$row = mysqli_fetch_array($query);
$ultimo = $row['id_anagrafe']+1;
<input type="text" name="nrtessera" value="<?php echo $ultimo; ?>" readonly />
questa query devo farla sul database o devo copiarla nel file php?Ciao
per riempire in automatico il campo del form devi andare a fare questo passaggio.
Fai una query, vai a recuperare l'ultimo id_anagrafe ed incrementi di 1.
Es.:
PHP:$query_ultimo_id = "SELECT id_anagrafe FROM clienti ORDER BY id DESC LIMIT 1"; $query = mysqli_query($conn, $query_ultimo_id); $row = mysqli_fetch_array($query); $ultimo = $row['id_anagrafe']+1;
questa invece io non ho un file html che gestisci il tutto ma solo file phppoi il campo nr.tessera del form andrai a farlo tipo in questo modo
HTML:<input type="text" name="nrtessera" value="<?php echo $ultimo; ?>" readonly />
Con readonly come dice la parola permetti la visualizzazione (che magari può tornarti utile) ma non puoi modificarlo.
Fammi sapere
<?php
session_start();
$user = $_SESSION['utente'];
$langanagrins = $_SESSION['lingua'];
$paginaanagrins = "insanagrins.inc";
$linguaanagrins = ($langanagrins.$paginaanagrins);
include($linguaanagrins);
if ($user == 'admin') {
include('./top.inc');
include('./menu.inc');
include ('./dati_db.inc');
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
?>
<center><h2><? echo $Lpresentazioneangrins; ?></h2>
<small><? echo $Lsuggerimento; ?></small></center>
<br>
<!--Visualizza il numero di tessere -->
<table><tr><td>
<form action='./stampa_soci.php' method='POST' target='_blank'>
<button name='ordine' type='submit' value="ntessera"><? echo $Ltessere; ?></button>
</form></td>
<td><form action='./Scheda_regioni.php' method='POST'>
<button name='Regioni' type='submit' value="regioni">Regioni</button></form></td>
<td><form action='./Scheda_province.php' method='POST'>
<button name='Province' type='submit' value="Province">Province</button></form></td>
<td><form action='./Scheda_comuni.php' method='POST'>
<button name='Comuni' type='submit' value="comuni">Comuni</button></form></td></tr>
</table>
<form action='./conf_dati_ins.php' method='POST' enctype="multipart/form-data">
<table align='center' border='0' width='60%'>
<tbody>
<tr>
<td width='150'><font color="red"><? echo $Lntessera; ?></td>
<td><name='ntessera' size='5' type='text' required='not'>
<br><small><sub><i><? echo $Listntessera; ?></small></i></sub></td>
</tr>
<?php include('./DatiComuni.inc'); ?>
<tr>
<td width='150'><font color="red"><?echo $Ltipoassociato; ?> *:</td>
<td><select name="materia" >
<option value="" selected="selected"><? echo $Ltipoassociato; ?> </option>
<?php
$query = "SELECT materia FROM tb_materia";
$rs=mysql_query($query)
or die("<b>Errore:</b> Impossibile eseguire la query della Combo");
while ($row=mysql_fetch_row($rs))
{
echo "<option>" .$row["0"]. "</option>";
}
mysql_close();
?>
</select></td>
</tr>
<tr>
<td colspan='2' align='center'>
<input value=<? echo $Linvia; ?> type='submit' <? echo($limit); ?>></td>
</tr>
</tbody>
</table>
<br>
</form>
<?php
include('./menusx.inc');
echo $Lhelpanagrins;
include('./botton.inc');
} else {
header('Location: Rip_database.php');
}
?>
<?php
session_start();
$user = $_SESSION['utente'];
if ($user) {
$ntessera = $_POST['ntessera'];
$nnome = $_POST['nome'];
$ncognome = $_POST['cognome'];
$nindirizzo = $_POST['indirizzo'];
$cap = $_POST['comuni'];
$ncitta = $_POST['regioni'];
$nprovincia = $_POST['provincie'];
$ntel = $_POST['tel'];
$ntel2 = $_POST['tel2'];
$ndatangg = $_POST['datangg'];
$ndatanmm = $_POST['datanmm'];
$ndatanaaaa = $_POST['datanaaaa'];
$materia = $_POST['materia'];
$nnomerif = $_POST['nomerif']; //Codice fiscale
$email = $_POST['email'];
$nnote = $_POST['note'];
$ndatan = ($ndatangg."-".$ndatanmm."-".$ndatanaaaa);
//escape html
$nome = htmlspecialchars($nnome, ENT_NOQUOTES, "UTF-8");
$tessera = htmlspecialchars($ntessera, ENT_NOQUOTES, "UTF-8");
$cognome = htmlspecialchars($ncognome, ENT_NOQUOTES, "UTF-8");
$indirizzo = htmlspecialchars($nindirizzo, ENT_NOQUOTES, "UTF-8");
$citta = htmlspecialchars($ncitta, ENT_NOQUOTES, "UTF-8");
$provincia = htmlspecialchars($nprovincia, ENT_NOQUOTES, "UTF-8");
$tel = htmlspecialchars($ntel, ENT_NOQUOTES, "UTF-8");
$tel2 = htmlspecialchars($ntel2, ENT_NOQUOTES, "UTF-8");
$datan = htmlspecialchars($ndatan, ENT_NOQUOTES, "UTF-8");
$nomerif = htmlspecialchars($nnomerif, ENT_NOQUOTES, "UTF-8");
$note = htmlspecialchars($nnote, ENT_NOQUOTES, "UTF-8");
//Se L'associato è attivo
$checkbox = isset($_POST["check"]);
if ($checkbox) {
$associato = "si";
} else { $associato = "no";}
//Funzione per il redirect
function redirect($url,$tempo = FALSE ){
if(!headers_sent() && $tempo == FALSE ){
header('Location:' . $url);
}elseif(!headers_sent() && $tempo != FALSE ){
header('Refresh:' . $tempo . ';' . $url);
}else{
if($tempo == FALSE ){
$tempo = 0;
}
echo "<meta http-equiv=\"refresh\" content=\"" . $tempo . ";" . $url . "\">";
}
}
//Controllo campi compilati
if ($nome == "")
{
echo "<center><b>Il campo nome è obbligatorio</b></center>";
redirect('./InsAnagrIns.php' ,2);
// break;
die ("");
}
if ($materia == "")
{
echo "<center><b>Il campo Tipo associato è obbligatorio</b></center>";
redirect('./InsAnagrIns.php' ,2);
// break;
die ("");
}
// *** GESTIONE DELL'IMMAGINE ***
$upload_dir = "./Immagini/Utenti";
if(@is_uploaded_file($_FILES["immagine"]["tmp_name"])) {
$file_name = $_FILES["immagine"]["name"];
@move_uploaded_file($_FILES["immagine"]["tmp_name"], "$upload_dir/$file_name")
or die("Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload.");
} else {
$file_name = "personal.gif";
@move_uploaded_file($_FILES["immagine"]["tmp_name"], "$upload_dir/$file_name");
}
// *** FINE MODULO GESTIONE IMMAGINE ***
include ('./dati_db.inc');
$connect = mysqli_connect("$host", "$username", "$password", "$db_name", $port ) or die("cannot connect DB");
$tb_anagrafe = ('tb_anagrafe(ntessera, nome, cognome, indirizzo, cap, citta, provincia, tel, tel2, datan, classe, nomerif, materia, mansione, email, tipologia, note, immagine, associato)');
if ($nome){
$sql="insert into $tb_anagrafe values('$tessera','$nome', '$cognome', '$indirizzo', '$cap', '$citta', '$provincia', '$tel', '$tel2', '$datan', '', '$nomerif', '$materia', '', '$email', 'Ins', '$note', '$file_name', '$associato')"; //inserisco i valori nel database
$result=mysqli_query($connect, $sql);
header('location: ./conferma.php?rif=InsAnagrStud'); //Vado alla pagina di conferma
}else{
header('location: ./errore.php?rif=InsAnagrStud'); //Vado alla pagina di errore
}
mysqli_close($connect);
} else {
header("Location: ./index.php");
} ?>
$query_ultimo_id = "SELECT id_anagrafe FROM clienti ORDER BY id DESC LIMIT 1";
$query = mysql_query($query_ultimo_id);
$row = mysql_fetch_array($query);
$ultimo = $row['id_anagrafe']+1;
Lo avevo notato anch'io questo Problema ma lo avevo già modificato infatti nell'errore è riportato senza la iBene.
L'errore probabilmente è dovuto dal fatto che ti ho passato il php con mysqli.
Per risolvere modifica il php (anche se per farlo pulito e giusto dovresti adattare il tuo a mysqli)
PHP:$query_ultimo_id = "SELECT id_anagrafe FROM clienti ORDER BY id DESC LIMIT 1"; $query = mysql_query($query_ultimo_id); $row = mysql_fetch_array($query); $ultimo = $row['id_anagrafe']+1;
Fammi sapre
scrivimi le righe dalla 33 alla 38 del file InsAnagrIns.php ??
include ('./dati_db.inc');
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$connect = mysqli_connect("$host", "$username", "$password", "$db_name", $port ) or die("cannot connect DB");
$query_ultimo_id = "SELECT ntessera FROM tb_anagrafe ORDER BY id DESC LIMIT 1";
$query = mysqli_query($connect, $query_ultimo_id);
$row = mysqli_fetch_array($query);
$ultimo = $row['ntessera']+1;
dove dovrei aggiungerlo?Cavoli cosi non capisco dovrei fare dei test
prova cosi e vedi che errore ti da.
or die ("Errore: ".mysql_error());