- Home
- Categorie
- Coding e Sistemistica
- PHP
- Chi mi aiuta con il PHP?\
-
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.
-
All'ultima pagina mi dice "Input mancante".. Da dove viene?
-
Hai selezionato qualche checkbox?
-
Si, è proprio questo che mi chiedo... Nonostante abbia selezionato il checkbox mi da' problemi!