- Home
- Categorie
- Coding e Sistemistica
- PHP
- Query was empty variabili interno funzione
-
Query was empty variabili interno funzione
Salve a tutti, ho un problema che non riesco a risolvere, ed è questo:
devo passare una query che è il risultato di una ricerca che avviene in una pagina precedente e che viene passata con questo codice con una variabile :</SPAN>
<?
echo "<form action="prova.php?tipo=$tipo" method="post" target="_blank">";
echo "<input type="hidden" name="query" value="".$query."">";
echo "<button name="submit" type="submit">Selezionati</button>";
echo "</form></td></tr>";
?>con questo la recupero nella pagina attuale
$laura = $_REQUEST['query']; // preparo la query
echo "$laura";e stampando a video la variabile $laura ottengo:
SELECT id_ass, cognome_nome, data_nascita, com_nascita, cod_fiscale, email, pro_dataiscr, pub_dataiscr, num_tessera, indirizzo_res, concat(cap_res,'-',comune_res,'-','(',prov_res,')') as indirizzoresidenza, indirizzo_dom, comune_dom, prov_dom, comune_res, prov_res, cap_res, cap_dom, concat(cap_dom,'-',comune_dom,'-','(',prov_dom,')') as indirizzodomicilio, moroso, morosoucsi, morosoussi, professionale, testate, noncontrat, pensionato, sindacato030, morosogus, selezione_ind, email, selezione_ind2, id_quota, dataiscr_ucsi, dataiscr_ussi, dataiscr_gus FROM anagrafica WHERE 1 AND visualizza LIKE '0' AND sospeso=0 AND cancellato=0 AND deceduto=0 AND (pub_att !=0) AND moroso LIKE '%mor%' ORDER BY cognome_nome
Warning: Cannot modify header information - headers already sent by (output started at C:\Programmi\xampp\htdocs\stampasarda\prova.php:5) in C:\Programmi\xampp\htdocs\stampasarda\prova.php on line 69dunque presumo che la variabile non sia vuota e contenga quello che serve per la query ....
nell'attuale pagina la variabile dovrebbe venire "catturata" dalla variabile $laura attraverso il request... e poi richiamata all'interno della funzione mostra lista per andare a diventare la query e mostrare la lista corrispondente,,, invece continuo ad avere come messaggio Query was empty
posto il codice:
</SPAN>codice PHP:
include("db.php");$laura = $_REQUEST['query']; // preparo la query
$laura1 = ciao;
//echo $GLOBALS['laura'];
if($_POST)
{
$ids = isset($_POST['id_ass']) ? $_POST['id_ass'] : array();
elimina_record($ids);
}
elseif(isset($_GET['id_ass']))
{
elimina_record(array($_GET['id_ass']));
}else
$result = mostra_lista();function mostra_lista()
{
global $laura; // le global le scrivo sempre per prime
echo $GLOBALS['laura']; // mostro un eventuale messaggio
if(isset($_GET['msg']))
echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';
$table = "anagrafica";
// invio la query$result = mysql_query($laura) or die (mysql_error()); // 'vedo' la variabile $laura? .. la uso! // controllo l'esito return $result ; if (!$result) { die("Errore nella query $query: " . mysql_error()); }
echo '
<form name="form1" method="post" action="">
<table border="1">
<tr>
<th> </th>
<th>anagrafica</th><th>Ragione Sociale</th><th>indirizzo_res</th><th>cap_res</th>
<th> </th>
</tr>';while ($row = mysql_fetch_array($result))
{
$nome = htmlentities($row['id_ass']);
$ragione= htmlentities($row['cognome_nome']);
$indirizzo_res= htmlentities($row['indirizzo_res']);
$tel= htmlentities($row['cap_res']);
// preparo il link per la modifica dei dati del record
$link = $_SERVER['PHP_SELF'].'?id_ass=' . $row['id_ass'];echo "<tr>
<td><input name="id_ass[]" type="checkbox" value="$row[id_ass]" /></td>
<td>$nome</td><td>$ragione</td><td>$indirizzo_res</td><td>$tel</td>
<td><a href="$link">elimina</a></td>
</tr>";
}echo '</table>
<br />
<input type="submit" name="Submit" value="Elimina record selezionati" />
</form>';// 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 anagrafica WHERE id_ass 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);
}
?>se non uso la variabile ma inserisco direttamente:
codice PHP:SELECT id_ass, cognome_nome, data_nascita,
com_nascita, cod_fiscale, email, pro_dataiscr, pub_dataiscr, num_tessera, indirizzo_res,
concat(cap_res,'-',comune_res,'-','(',prov_res,')') as indirizzoresidenza, indirizzo_dom,
comune_dom, prov_dom, comune_res, prov_res, cap_res, cap_dom, concat(cap_dom,'-
',comune_dom,'-','(',prov_dom,')') as indirizzodomicilio, moroso, morosoucsi, morosoussi,
professionale, testate, noncontrat, pensionato, sindacato030, morosogus, selezione_ind,
email, selezione_ind2, id_quota, dataiscr_ucsi, dataiscr_ussi, dataiscr_gus FROM anagrafica
WHERE 1 AND visualizza LIKE '0' AND sospeso=0 AND cancellato=0 AND deceduto=0 AND
pra_att !=0 AND pub_att !=0 ORDER BY cognome_nometutto funziona... ma io ho necessità di ottenere questa query con una ricerca effettuata in una pagina precedente che la filtra e poi la passa a questa pagina dove dovrebbe diventare il valore della variabile laura, ma all'interno della funzione dove la inserisco rimane vuota... PERCHE'?!:bho:
VI PREGO AIUTATEMI, CI STO PERDENDO LA TESTA, spero solo di essere riuscita a spiegarmi...
</SPAN>
-
Questa riga
// controllo l'esito
return $result ;Ti fa terminare la funzione mostra_lista prima che stampi qualsiasi cosa. Di fatto la query probabilmente funziona altrimenti l'istruzione die() ti stamperebbe l'errore sql. Solo che ritorni $result senza mai usarlo.