Buongiorno a tutti,
vi sottopongo il seguente problema: le due pagine che seguiranno ricarca.php e ricerca_exec.php contengono la prima un form in cui inserisco i dettagli della query che voglio costruire e mando in POST i valori dei text box che ho così riempito alla pagina ricerca_exec.php che di fatto esegue la query utilizzando le variabili che gli sono state passate dalla pagina precedente.
Tuttavia qualcosa non va perchè la query mi resstiuisce sempre e solo un valore!! Cos'è che non va?
ricerca.php
codice:
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Inserimento scheda</title>
<link href="loginmodule.css" rel="stylesheet" type="text/css" />
<style type="text/css">
.auto-style1 {
text-align: center;
}
.auto-style2 {
color: #FF9900;
text-align: center;
font-size: small;
}
.auto-style3 {
border: 1px solid #000000;
}
.auto-style4 {
margin-bottom: 0px;
}
.auto-style5 {
margin-top: 0px;
}
.auto-style6 {
text-align: left;
}
.auto-style7 {
margin-left: 0px;
}
</style>
</head>
<body>
<?php
if( isset($_SESSION['ERRMSG_ARR']) && is_array($_SESSION['ERRMSG_ARR']) && count($_SESSION['ERRMSG_ARR']) >0 ) {
echo '<ul class="err">';
foreach($_SESSION['ERRMSG_ARR'] as $msg) {
echo '[*]',$msg,'';
}
echo '[/list]';
unset($_SESSION['ERRMSG_ARR']);
}
if(isset($_POST['Submit']) )
{
$nome = $_POST['nome'];
$cognome = $_POST['città'];
$codfis = $_POST['titolo'];
$sesso = $_POST['sesso'];
$citta = $_POST['citta'];
$titolo = $_POST['titolo'];
$reato = $_POST['reato'];
$giustizia = $_POST['giustizia'];
}
?>
<form id="schedainserimento" name="schedainserimento" method="post" action="ricerca_exec.php">
<p class="auto-style1">
[img]minilogo.jpg[/img][img]sole.jpg[/img]</p>
<p class="auto-style2"></p>
<p class="auto-style2"></p>
<p class="auto-style2">Ricerca scheda utente</p>
<p class="auto-style2"></p>
<table align="center" cellpadding="2" cellspacing="0" style="width: 583px; height: 369px;" class="auto-style3">
<tr>
<th style="width: 134px">Nome </th>
<td class="auto-style1">
<input name="nome" type="text" class="textfield" id="nome" style="width: 421px" /></td>
</tr>
<tr>
<th style="width: 134px">Cognome </th>
<td class="auto-style1">
<input name="cognome" type="text" class="textfield" id="cognome" style="width: 424px" /></tr>
<tr>
<th style="width: 134px">Città</th>
<td>
<select name="citta">
<option value="Palermo">Siena</option>
<option value="Catania">Catania</option>
</select>
<tr>
<th style="width: 134px">Titolo di Studio</th>
<td class="auto-style6">
<select name="titolo" class="auto-style7">
<option value="Licenza elementare">Licenza elementare</option>
<option value="Licenza media">Licenza media</option>
<option value="Diploma">Diploma</option>
<option value="Laurea">Laurea</option>
<option value="Nessuno">Nessuno</option>
</select>
</tr>
<tr>
<td style="width: 134px">Sesso</td>
<td class="auto-style6">
<select name="sesso" value='sesso'>
<option value="Uomo">Uomo</option>
<option value="Donna">Donna</option>
</select></td>
</tr>
<tr>
<td style="width: 134px">Codice Fiscale</td>
<td class="auto-style1">
<input name="codfis" type="text" class="textfield" id="codfis" style="width: 415px; height: 17px" /></td>
</tr>
<tr>
<td style="width: 134px">Tipologia Reato</td>
<td>
<select name="reato">
<option value="Contro il patrimonio">Contro il patrimonio</option>
<option value="Contro la persona">Contro la persona</option>
<option value="Contro L. 309/90">Contro L. 309/90</option>
<option value="ALTRO">ALTRO</option>
<option value="N.S.">N.S.</option>
</select></td>
</tr>
<tr>
<td style="width: 134px">
Giustizia Adulti</td>
<td>
<select name="giustizia">
<option value="Detenuti">Detenuti</option>
<option value="Semiliberi">Semiliberi</option>
<option value="Detenuti domiciliari">Detenuti domiciliari</option>
<option value="Affidati in prova ai s.s.">Affidati in prova ai s.s.</option>
<option value="Ex detenuti">Ex detenuti</option>
<option value="Arresti domiciliari">Arresti domiciliari</option>
<option value="Misure di sicurezza">Misure di sicurezza</option>
<option value="Sospensione pena">Sospensione pena</option>
</select></td>
</tr>
<tr>
<td class="auto-style1" colspan="2">
<input type="submit" name="Ricerca" value="Ricerca" class="auto-style4" /></td>
</tr>
</table>
</form>
<p class="auto-style1"></p>
<p class="auto-style1"></p>
<p class="auto-style1"></p>
<p class="auto-style1"> </p>
<p class="auto-style1">
[img]euro.gif[/img]
[img]logo_comune_pa1.jpg[/img]</p>
</body>
</html>
Questa invece è la pgina di esecuzione della ricerca.
ricerca_exec.php
codice:
<p class="auto-style1">
[img]RISE_minilogo.jpg[/img][img]sole.jpg[/img]</p>
<p class="auto-style2"></p>
<p class="auto-style2"></p>
<p class="auto-style2">Risultati ricerca</p>
<head>
<style type="text/css">
.auto-style1 {
text-align: center;
}
.auto-style2 {
color: #FF9900;
text-align: center;
font-size: small;
}
</style>
</head>
<?php
//Start session
session_start();
//Include database connection details
require_once('config.php');
//Array to store validation errors
$errmsg_arr = array();
//Validation error flag
$errflag = false;
//Connect to mysql server
$link = mysql_connect(DB_HOST,DB_USER,DB_PASSWORD);
if(!$link) {
die('Failed to connect to server: ' . mysql_error());
}
//Select database
$db = mysql_select_db(DB_DATABASE);
if(!$db) {
die("Unable to select database");
}
//Function to sanitize values received from the form. Prevents SQL injection
function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return mysql_real_escape_string($str);
}
//Sanitize the POST values
$nome = clean($_POST['nome']);
$cognome = clean($_POST['cognome']);
$sesso = clean($_POST['sesso']);
$codfis = clean($_POST['codfis']);
$citta = clean($_POST['citta']);
$titolo = clean($_POST['titolo']);
$reato = clean($_POST['reato']);
$giustizia = clean($_POST['giustizia']);
if($_POST)
{
$ids = isset($_POST['id']) ? $_POST['id'] : array();
elimina_record($ids);
}
elseif(isset($_GET['id']))
{
elimina_record(array($_GET['id']));
}
else
mostra_lista();
function mostra_lista()
{
// mostro un eventuale messaggio
if(isset($_GET['msg']))
echo ''.htmlentities($_GET['msg']).'
';
// preparo la query
$query = "SELECT * FROM utenti WHERE nome= '".$_POST['nome']."'OR cognome= '".$_POST['cognome']."'OR citta='".$_POST['citta']."'OR titolo= //'".$_POST['titolo']."'OR sesso= '".$_POST['sesso']."'OR codfis= '".$_POST['codfis']."'OR reato= '".$_POST['reato']."'OR giustizia= '".$_POST//['giustizia']."'";
// invio la query
$result = mysql_query($query);
// controllo l'esito
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}
echo '
<form name="form1" method="post" action="">
<table border="1">
<tr>
<th></th>
<th>Nome</th>
<th>Cognome</th>
<th>Sesso</th>
<th>Codice Fiscale</th>
<th>citta</th>
<th>Titolo</th>
<th>Reato</th>
<th>Giustizia</th>
<th>Note</th>
<th></th>
</tr>';
while ($row = mysql_fetch_assoc($result))
{
$nome = htmlentities($row['nome']);
$cognome = htmlentities($row['cognome']);
$sesso = htmlentities($row['sesso']);
$codfis = htmlentities($row['codfis']);
$citta_ = htmlentities($row['citta']);
$titolo = htmlentities($row['titolo']);
$reato = htmlentities($row['reato']);
$giustizia = htmlentities($row['giustizia']);
$note = htmlentities($row['note']);
$server=$_SERVER['PHP_SELF'];
$rowid=$row['id'];
$link="$server/?id=$rowid";
$link2="update_record_schede.php?id=$rowid";
echo "<tr>
<td><input name=\"id[]\" type=\"checkbox\" value=\"$row[id]\" /></td>
<td>$nome</td>
<td>$cognome</td>
<td>$sesso</td>
<td>$codfis</td>
<td>$citta</td>
<td>$titolo</td>
<td>$reato</td>
<td>$giustizia</td>
<td>$note</td>
<td><a href=\"$link\">elimina</a></td>
<td><a href=\"$link2\">modifica</a></td>
</tr>";
}
echo '</table>
<input type="submit" name="Submit" value="Elimina record selezionati" />
<input type="submit" name="Submit2" value="Modifica record selezionati" />
</form>';
// libero la memoria di PHP occupata dai record estratti con la SELECT
mysql_free_result($result);
// chiudo la connessione a MySQL
mysql_close();
}
function elimina_record($ids)
{
// verifico che almeno un id sia stato selezionato
if(count($ids) < 1)
{
$messaggio = urlencode("Nessun record selezionato!");
header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
exit;
}
// per precauzione converto gli ID in interi
$ids = array_map('intval',$ids);
// creo una lista di ID per la query
$ids = implode(',',$ids);
// preparo la query
$query = "DELETE FROM utenti WHERE id IN ($ids)";
// invio la query
$result = mysql_query($query);
// controllo l'esito
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}
// conto il numero di record cancellati
$num_record = mysql_affected_rows();
// chiudo la connessione a MySQL
mysql_close();
$messaggio = urlencode("Numero record cancellati: $num_record");
header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
}
?>
Grazie in anticipo per il vostro aiuto!!
Tiziano