- Home
- Categorie
- Coding e Sistemistica
- PHP
- Chi mi aiuta con il PHP?\
-
Quel codice non può funzionare in quanto la sessione non è avviata, devi mettere session_start(); come prima riga del codice.
Inoltre non è sempre detto che si arrivi a quella pagina passando per quella che ti setta le variabili di sessione, per cui bisognerebbe fare dei controlli in base a ciò che devi fare.
Ma perchè devi usare queste variabili di sessione in questo modo? E la variabile GET arriva dal modulo di un altra pagina o hai sbagliato la query?
-
La variabile GET arriva da una pagina PHP precedente... Può darsi che sia quello che disturbi il tutto?
-
Anche mettendo la session_start(); non parte... Uff...
-
E perchè usi session e get mischiati?
Dovresti postare il codice di entrambe le pagine in maniera completa, perchè penso stai mischiando parecchie cose, e cosi non riesco a capire cosa stai facendo.
-
Ti invio la prima pagina PHP... Riusciresti a sistemarmela?
-
Se le posti qui entrambe, risolviamo sicuramente.
-
Questa è la prima!
<html lang="en">
<head>
<title>Cancellazione strumenti</title>
</head>
<body>
<marquee width="100%" direction="left" scrollamount="8"><img src="img/logo.jpg" /></marquee>
<?php
$conn = mysql_connect("localhost","root","");
if (!$conn)
{
die('Connessione mancata con il root. Errore: ' . mysql_error());
}
$select = mysql_select_db("sabicom",$conn);
if (!$select)
{
die("Errore nella connessione con il database. Errore: " . mysql_error());
}
$utiliz = trim($_POST['utiliz']);
session_start();
$_SESSION["utiliz"] = $utilizz;
session_register("utiliz");
$strum = trim($_POST['strum']);
session_start();
$_SESSION["strum"] = $strume;
session_register("strum");
$sql = "SELECT * FROM strumenti WHERE Utilizzatore = '$utiliz' AND Strumento = '$strum';";
$result = mysql_query($sql, $conn);
if (!$result)
{
die('Errore durante il trasferimento dei dati');
}
$num=mysql_numrows($result);
mysql_close();
?>
<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) {
$fornitore=mysql_result($result,$i,"Fornitore");
$assistenza=mysql_result($result,$i,"Assistenza");
$utilizzatore=mysql_result($result,$i,"Utilizzatore");
$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_Dismesso");
$data_acquis=mysql_result($result,$i,"Data_acquisizione");
?>
<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>
</tr>
<?php
$i++;
}
?>
<form method="post" action="confirm-cancel.php">
<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>La seconda la trovi alla pagina precedente!
-
Sto sistemando le pagine, però la pagina che hai appena postato prende dei dati con il metodo POST, ma il form da cui arrivano dov'è?
-
Eccola qua!
<html lang="en">
<head>
<title>Cancellazione strumenti</title>
</head>
<body>
<marquee width="100%" direction="left" scrollamount="8"><img src="img/logo.jpg" /></marquee>
<form method="post" action="cancel.php">
<table border="0" align="center">
<tr>
<td align="center">Utilizzatore ></td>
<td align="center"><input type="text" name="utiliz" /></td>
</tr>
<tr>
<td align="center">Strumento ></td>
<td align="center"><input type="text" name="strum" /></td>
</tr>
<tr>
<td align="center"><input type="submit" value="Invia dati al database" /></td>
<td align="center"><input type="reset" value="Cancella dati nei box" /></td>
</tr>
</table>
</form>
<br />
<br />
<form method="post" action="index.html">
<div align="right"><input type="submit" value="Vai alla pagina principale" /></div>
</form>
</body>
</html>Come posso ringraziarti?
-
Allora la pagina 1, un pò snellita anche se la tabella si poteva fare più semplicemente diversamente:
[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();
?>
<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) {
$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>
</tr>
<?php
$i++;
}
?>
<form method="post" action="confirm-cancel.php">
<input type="hidden" name="utiliz" value="<?php echo $utiliz; ?>" />
<input type="hidden" name="strum" value="<?php echo $strum; ?>" />
<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]La pagina 2, come base va bene questa:
[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['utiliz']))
$utiliz = trim($_POST['utiliz']);
else
die('Input mancante');if(isset($_POST['strum']))
$strum = trim($_POST['strum']);
else
die('Input mancante');
?>
<br />
<br />
<form method="post" action="index.html">
<div align="right"><input type="submit" value="Vai alla pagina principale" /></div>
</form>
</body>
</html>
[/php]In pagina 2 (confirm-cancel.php) dovresti avere un pulsante di conferma eliminazione da quanto ho capito giusto?
-
Si, teoricamente si...
Il problema che non ho idea di come gestirla!
-
Adesso ti posto io il codice, rimane un ultimo problema l'ultima pagina che mi hai postato punta a cancel.php, che ti può trovare ad esempio 4 dati diversi. Tu dovresti fare in quel caso 4 form per cancellare singolarmente un dato, in questo modo non puoi.
Hai fatto parecchia confusione all'inizio.
-
La pagina che punta a cancel.php è la pagina html iniziale, dove inserisco i valori! Quella è una pagina statica!
-
Mi serve il nome della chiave primaria della tabella strumenti.
-
Utilizzatore è la chiave! Grazie 1000! Mi stai dando una grossissima mano!
-
Se Utilizzatore è la chiave primaria, perchè stiamo usando anche strumento? Non è necessario.
-
Strumento è fondamentale... Serve per fare una selezione ulteriore durante la visualizzazione!
-
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?