- Home
- Categorie
- Coding e Sistemistica
- PHP
- Chi mi aiuta con il PHP?\
-
Ciao SantuzzoHendrix,
invece di:
[php]
$q = mysql_query("SELECT * FROM strumenti WHERE Utilizzatore = '$_GET['utilizz']';";
[/php]Devi mettere:
[php]
$q = mysql_query("SELECT * FROM strumenti WHERE Utilizzatore = ".$_GET['utilizz']);
[/php]
-
Ciao!
L'errore precedente è sparito!
Ora però ne sono comparsi altri...Notice: Undefined variable: _SESSION in C:\xampp\htdocs\database\confirm-cancel.php on line 18
Notice: Undefined variable: postcode in C:\xampp\htdocs\database\confirm-cancel.php on line 18
Notice: Undefined variable: _SESSION in C:\xampp\htdocs\database\confirm-cancel.php on line 18
Notice: Undefined variable: postcode in C:\xampp\htdocs\database\confirm-cancel.php on line 18
Notice: Undefined index: utilizz in C:\xampp\htdocs\database\confirm-cancel.php on line 20
Notice: Undefined variable: utilizz in C:\xampp\htdocs\database\confirm-cancel.php on line 21
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\database\confirm-cancel.php on line 21
-
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.