01/06/10 12:00
NickoMaiden
stavo facendo esperimenti con la creazione di una semplice rubrica. ecco tutto il sorgente:
FILE lawl.php
FILE connetti_db.php
FILE stampa.php
finchè inserisco campi tutto va bene, dal momento in cui cancello un campo succede il finimondo:
cancello i campi e va tutto bene finchè non ne inserisco uno nuovo!
dal momento che inserisco un nuovo campo si crea una confusione con la chiave primaria che crea problemi quando vado a cancellare un ulteriore campo, ad esempio voglio eliminare il 1° e invece mi elimina il 3°.
se avete tempo di provarlo 5 secondi capirete che è + facile capire il problema che spiegarlo. chi mi dice dove sbaglio?
grazie in anticipo
FILE lawl.php
<html> <body> <form action="lawl.php" method="post"> Nome: <input type="text" name="nome" /> <br>Cognome: <input type="text" name="cognome" /> <br>Numero di tel: <input type="text" name="tel" /> <input type="submit" value="Salva" /> </form> </body> </html> <?php include "stampa.php"; include "connetti_db.php"; loggadb(NULL); //elimina $elimina=$_GET['canc']; if($elimina) { $DBdrop='DELETE FROM mio_database.rubrica WHERE rubrica.ID_RUB='.$elimina; $uhm=mysql_query($DBdrop); } //fine elimina if($_POST["nome"]==NULL||$_POST["cognome"]==NULL||$_POST["tel"]==NULL) { echo("Tutti i campi sono obbligatori"); stampa(); loggadb("chiudi"); die(); } $nome=$_POST["nome"]; $cognome=$_POST["cognome"]; $tel=$_POST["tel"]; //lista query $DB_crea= " CREATE TABLE IF NOT EXISTS Rubrica ( ID_RUB int(10) AUTO_INCREMENT, nome char(50), cognome char(50) , numero int(15), PRIMARY KEY(ID_RUB) ) "; $DB_aggiungi=" INSERT INTO mio_database.rubrica ( ID_RUB , nome , cognome , numero ) VALUES ( NULL , '".$nome."','".$cognome."','".$tel."' )"; // creo una rubrica. $uhm=mysql_query($DB_crea); $uhm=mysql_query($DB_aggiungi); stampa(); loggadb("chiudi"); ?>
FILE connetti_db.php
<?php function loggadb($azione) { //dati del database $host="localhost"; $username="root"; $password=""; $nome_db="mio_database"; $link = mysql_connect($host,$username,$password) or die('Impossibile connettersi al database!: ' . msql_error($link)); mysql_select_db($nome_db, $link) or die('Database Non Trovato!'); if($azione=="chiudi") mysql_close($link); } ?>
FILE stampa.php
<?php //stampa! function stampa() { $DBnome=mysql_query('SELECT nome FROM mio_database.rubrica'); $DBcognome=mysql_query('SELECT cognome FROM mio_database.rubrica'); $DBtel=mysql_query('SELECT numero FROM mio_database.rubrica'); $DBid=mysql_query('SELECT ID_RUB FROM mio_database.rubrica'); $i=0; if(!mysql_num_rows($DBnome)) die(); echo('<table border="3">'); echo('<tr> <td> NOME </td> <td>COGNOME</td> <td>TELEFONO</td> <td>ELIMINA</td> </tr>'); while($i<mysql_num_rows($DBnome)) { echo ('<tr> <td>'); echo (mysql_result($DBnome, $i).$i); echo ('</td> <td>'); echo (mysql_result($DBcognome, $i).$i); echo ('</td> <td>'); echo (mysql_result($DBtel, $i).$i); echo ('</td> <td>'); echo ('<a href="lawl.php?canc='.mysql_result($DBid, $i).'"><center>x'.$i.'</center></a>'); echo ('</td> </tr>'); $i++; } echo('</table>'); } ?>
finchè inserisco campi tutto va bene, dal momento in cui cancello un campo succede il finimondo:
cancello i campi e va tutto bene finchè non ne inserisco uno nuovo!
dal momento che inserisco un nuovo campo si crea una confusione con la chiave primaria che crea problemi quando vado a cancellare un ulteriore campo, ad esempio voglio eliminare il 1° e invece mi elimina il 3°.
se avete tempo di provarlo 5 secondi capirete che è + facile capire il problema che spiegarlo. chi mi dice dove sbaglio?
grazie in anticipo
Ultima modifica effettuata da NickoMaiden 01/06/10 13:23
aaa