- Home
- Categorie
- Coding e Sistemistica
- PHP
- Chi mi aiuta con il PHP?\
-
Se c'è già la condizione con la chiave primaria è inutile, in quanto la chiave primaria deve per forza identificare univocamente un record. O non è quella la chiave primaria o stavi utilizzando un campo inutile.
-
Il campo Utilizzatore è la chiave... Se tu mi metti anche la checkbox allora ti adorerò per sempre! Almeno togliamo anche strumenti!
-
Dipende che tipo di chiave è.
Qualcosa non mi quadra, puoi postarmi la query di creazione della tabella?
Il checkbox va bene se hai più di un record mostrato, ma se usi un chiave primaria che senso ha?
-
Un Utilizzatore può utilizzare più strumenti! Per questo ce l'ho bisogno! Va' bene lo stesso se ti do solo le caratteristiche principali?
-
Se un utilizzatore può usare più strumenti il campo Utilizzatore non è chiave primaria, ma è chiave esterna. La tabella strumenti deve comunque avere una chiave primaria.
Dovresti postarmi proprio la query che hai usato perchè creo che tra quello che stai facendo tu, e quello che dovevi ottenere c'è qualche leggera differenza e non riesco a scriverti il codice esatto da utilizzare.
-
CREATE TABLE strumenti
(Fornitore char(50) Not null,
Assistenza char(50) Not null,
Utilizzatore char(8) Not null,
Strumento char(50) Not null,
Marca char(50) Not null,
Modello char(50),
Descrizione longtext Not null,
Venduto_Dismesso char(3),
Data_acquisizione timestamp,
PRIMARY KEY(Utilizzatore));
-
Ah! Mi sono accorto di aver sbagliato!
Venduto_Dismesso non deve essere nullo!
-
Se un utilizzatore può avere più strumenti come hai detto prima, quella tabella non và bene in quanto fà in modo che un utilizzatore abbia un solo strumento.
-
Hai ragione... Che babbo che sono... XD devo mettere come chiave una variabile contatore? (invisibile all'utente ovviamente...)
-
Si, dovresti creare un campo apposito.
-
Ok, ora lo modifico! Grazie!
-
Come posso definire in MySQL un contatore?
-
Devi mettere il campo come autoincrement e chiave primaria.
-
Guarda non prende l'autoincrement...
-
Che query usi per modificare la tabella?
-
Ho cancellato la precendente... La sto ricreando...
E' questa:
CREATE TABLE strumenti
(Matricola auto_increment Not null,
Fornitore char(50) Not null,
Assistenza char(50) Not null,
Utilizzatore char(8) Not null,
Strumento char(50) Not null,
Marca char(50) Not null,
Modello char(50),
Descrizione longtext Not null,
Venduto_Dismesso char(3),
Data_acquisizione timestamp,
PRIMARY KEY(Matricola));
-
Ho sistemato! XD Falso allarme! XD
-
Hai dimenticato di inserire il tipo int(11)
-
Si, piccolo errore...
-
Ok allora se il nome è Matricola, cosi dovrebbe andare:
[php]
<?php
session_start();
$conn = mysql_connect("localhost","root","") or die('Connessione mancata con il root. Errore: ' . mysql_error());
$select = mysql_select_db("sabicom",$conn) or die("Errore nella connessione con il database. Errore: " . mysql_error());
?>
<html lang="en">
<head>
<title>Cancellazione strumenti</title>
</head>
<body>
<marquee width="100%" direction="left" scrollamount="8"><img src="img/logo.jpg" /></marquee>
<?php
if(isset($_POST['utiliz']))
$utiliz = trim($_POST['utiliz']);
else
die('Input mancante');if(isset($_POST['strum']))
$strum = trim($_POST['strum']);
else
die('Input mancante');$sql = "SELECT * FROM strumenti WHERE Utilizzatore = '".mysql_real_escape_string($utiliz)."' AND Strumento = '".mysql_real_escape_string($strum)."'";
$result = mysql_query($sql, $conn);
if(!$result)
{
die('Errore durante il trasferimento dei dati');
}
$num=mysql_numrows($result);
mysql_close();
?>
<form method="post" action="confirm-cancel.php">
<table border="1" align="center" bordercolor="lightblue">
<tr>
<td align="center">Fornitore</td>
<td align="center">Assistenza</td>
<td align="center">Utilizzatore</td>
<td align="center">Strumento</td>
<td align="center">Marca</td>
<td align="center">Modello</td>
<td align="center">Descrizione</td>
<td align="center">Venduto / Dismesso</td>
<td align="center">Data di acquisizione</td>
</tr>
<?php
$i=0;
while ($i < $num) {
$Matricola = mysql_result($result,$i,"Matricola");
$fornitore=mysql_result($result,$i,"Fornitore");
$assistenza=mysql_result($result,$i,"Assistenza");
$utilizzatore=mysql_result($result,$i,"Utilizzator e");
$strumento=mysql_result($result,$i,"Strumento");
$marca=mysql_result($result,$i,"Marca");
$modello=mysql_result($result,$i,"Modello");
$descrizione=mysql_result($result,$i,"Descrizione" );
$vend_dism=mysql_result($result,$i,"Venduto_Dismes so");
$data_acquis=mysql_result($result,$i,"Data_acquisi zione");
?>
<tr>
<td align="center"><?php echo $fornitore ?></td>
<td align="center"><?php echo $assistenza ?></td>
<td align="center"><?php echo $utilizzatore ?></td>
<td align="center"><?php echo $strumento ?></td>
<td align="center"><?php echo $marca ?></td>
<td align="center"><?php echo $modello ?></td>
<td align="center"><?php echo $descrizione ?></td>
<td align="center"><?php echo $vend_dism ?></td>
<td align="center"><?php echo $data_acquis ?></td>
<td align="center"><input type="checkbox" name="identificatore[]" value="<?php echo $Matricola; ?>" /></td>
</tr>
<?php
$i++;
}
?>
</table>
<input type="submit" value="Elimina selezionati" />
</form>
<br />
<br />
<form method="post" action="index.html">
<div align="right"><input type="submit" value="Vai alla pagina principale" /></div>
</form>
</body>
</html>
[/php]
[php]
<?php
session_start();
$conn = mysql_connect("localhost","root","") or die('Connessione mancata con il root. Errore: ' . mysql_error());
$select = mysql_select_db("sabicom", $conn) or die("Errore nella connessione con il database. Errore: " . mysql_error());
?>
<!DOCTYPE html>
<head>
<title>Conferma cancellazione</title>
</head>
<body>
<marquee width="100%" direction="left" scrollamount="8"><img src="img/logo.jpg" /></marquee>
<?php
if(isset($_POST['identificatore']))
$identificatore = $_POST['identificatore'];
else
die('Input mancante');foreach($identificatore AS $tmp)
if(!is_numeric($tmp))
die('Input manomessi');if(isset($_POST['conferma']))
{
$identificatori = implode(',', $identificatore);
mysql_query("DELETE FROM strumenti WHERE Matricola IN '".mysql_real_escape_string($identificatori)."'");
die('Eliminato/i correttamente');
}
?>
<form method="post" action="">
<input type="submit" name="conferma" value="Conferma eliminazione" />
</form>
<br />
<br />
<form method="post" action="index.html">
<div align="right"><input type="submit" value="Vai alla pagina principale" /></div>
</form>
</body>
</html>
[/php]Vedi se funziona perchè l'ho scritto velocemente.