[PHP] piccola modifica a script (non mio...)

  • Creatore Discussione Creatore Discussione theseo
  • Data di inizio Data di inizio

theseo

Utente Attivo
22 Feb 2017
95
5
8
62
ciao a tutti, ho questo script php-->

$where = "";

if (isset($_REQUEST["argomento_1"]) and $_REQUEST["argomento_1"])
$where .= "AND (difficolta LIKE '".mysql_real_escape_string($_REQUEST["argomento_1"])."' OR difficolta2 LIKE '".mysql_real_escape_string($_REQUEST["argomento_1"])."') \n";

if (isset($_REQUEST["argomento_2"]) and $_REQUEST["argomento_2"])
$where .= "AND (difficolta LIKE '".mysql_real_escape_string($_REQUEST["argomento_1"])."' OR difficolta2 LIKE '".mysql_real_escape_string($_REQUEST["argomento_1"])."') \n";

if (isset($_REQUEST["difficolta2"]) and $_REQUEST["difficolta2"])
{
foreach ($_REQUEST["difficolta2"] as $difficolta2_t)
$where .= "AND (difficolta2 LIKE '%".mysql_real_escape_string($difficolta2_t)."%') \n";
}

if (isset($_REQUEST["numdomande"]) and $_REQUEST["numdomande"])
$where .= "AND numdomande = '".mysql_real_escape_string($_REQUEST["numdomande"])."' \n";

if (isset($_REQUEST["numoperazioni"]) and $_REQUEST["numoperazioni"])
$where .= "AND numoperazioni = '".mysql_real_escape_string($_REQUEST["numoperazioni"])."' \n";

if (isset($_REQUEST["classe"]) and $_REQUEST["classe"])
{
$classe_arr = str_split($_REQUEST["classe"]);
$where .= "AND classe IN (".implode(",", $classe_arr).") \n";
}

$query = "
SELECT COUNT(id)
FROM tabella
WHERE 1
$where
";
$result = doQuery($query);
list($cnt) = mysql_fetch_array($result);

che nella variabile finale $cnt restituisce il NUMERO dei record scelti dall'utente selezionando (tramite dei checkbox) le variabili:
argomento_1
argomento_2
difficolta2
numdomande
numoperazioni
classe

io invece avrei bisogno che la query mi elencasse il tipo di variabile che è stata scelta, ossia: qual era l'argomento_1 scelto? quale l'argomento_? qual era la difficolta2? ecc ecc
è uno script che non ho fatto io e non so proprio come farlo... mi potete aiutare x favore?
 
Ciao Theseo.
Non mi è molto chiaro quello che vuoi ottenere.
Lo script che hai postato fa una select nel database, e nella variabile $cnt inserisce il numero di record trovati nel database.

Tu non vuoi visualizzare il numero, ma l'elenco dei record, con tutti i campi?
 
ah ciao Livellacri non volevo di nuovo disturbare te... mannaggia
si lo script fa una select in base a delle scelte dell'utente
l'utente sceglie-->
argomento_1
argomento_2
difficolta2
numdomande
numoperazioni
classe

io vorrei sapere qual era l'argomento_1 scelto? quale l'argomento_2? qual era la difficolta2? ecc ecc
dovrebbe essere possibile no? sono variabili che ci sono ed invece di essere contate vorrei che fossero messe in un array che poi io stampo con un bel print
 
non capisco dove è il problema.
semplicemente argomento_1 è $_REQUEST["argomento_1"], argomento_2 è $_REQUEST["argomento_2"], ecc...

se vuoi mettere tutto in un array:
PHP:
$userInput = array();
$r = array("argomento_1", "argomento_2", "difficolta2", "numdomande", "numoperazioni", "classe");
foreach ($r AS $thisR) {
    if (isset($_REQUEST[$thisR]) AND $_REQUEST[$thisR]) {
        $userInput[$thisR] = $_REQUEST[$thisR];
    }
}

per printare l'array:
PHP:
print_r($userInput);
 
(grazie infinite sempre x i tuoi aiuti)
te lo spiego con un esempio
se io in quella pagina faccio:
<?=$_REQUEST["argomento_1"]?><?=$_REQUEST["argomento_2"]?> non mi appare nulla
se faccio il print_r che mi ha suggerito tu appare:
Array ( [argomento_1] => compravendita [difficolta2] => Array ( [0] => netto [1] => lordo [2] => tara ) )
io invece vorrei che apparisse: compravendita netto lordo tara
 
ops, mi ero dimenticato che l'array è multidimensionale :(
prova così:
PHP:
$output = "";
foreach ($userInput as $thisUserInput) {
    if (is_array($thisUserInput))
        $output .= implode(" ", $thisUserInput);
    else
        $output .= " ".$thisUserInput." ";
}
echo trim($output);
 

Discussioni simili