PDA

View Full Version : [PHP & MYSQL] - 2 domande per i guru....


PhoEniX-VooDoo
02-08-2007, 17:21
Ciao, sto lavorando ad un progetto e avrei bisogno di una mano per due cosette.


1. Partendo da una tabella in MySQL dovrei visualizzare in un menu a tendina tutto quello che c'e nel campo "SOC_NOME" della tabella "SOCIETA"


2. Sempre nella stessa tabella mi servirebbe un metodo dinamico per la ricerca tramite filtri.
Ovvero: la tabella ha 18 campi, su 5-6 di questi dovrei filtrare le varie informazioni. In pratica mi serve un modo per generare una query in base ai textfield che riempie l'utente. I textfield vuoti andranno ignorati, quelli pieni invece andaranno a far parte della clausola di WHERE nella Query SQL.


Grazie... :)

dupa
02-08-2007, 17:37
Ciao, sto lavorando ad un progetto e avrei bisogno di una mano per due cosette.


1. Partendo da una tabella in MySQL dovrei visualizzare in un menu a tendina tutto quello che c'e nel campo "SOC_NOME" della tabella "SOCIETA"


2. Sempre nella stessa tabella mi servirebbe un metodo dinamico per la ricerca tramite filtri.
Ovvero: la tabella ha 18 campi, su 5-6 di questi dovrei filtrare le varie informazioni. In pratica mi serve un modo per generare una query in base ai textfield che riempie l'utente. I textfield vuoti andranno ignorati, quelli pieni invece andaranno a far parte della clausola di WHERE nella Query SQL.


Grazie... :)

1)
$miaquery = "SELECT soc_nome FROM societa";
passi sta stringa di query a mysql_query(..)
e passi i risultati con mysql_fetch_array(..)

2)
in questo caso

$miaquery = "SELECT soc_nome FROM societa WHERE 1 = 1";

if ($campodiricerca != "") {
$miaquery = $miaquery . "AND campo = '$campodiricerca' ";
}

ovviamente questa è una base.. poi guarda il manuale sul sito php e capirai che è tutto semplice (occhio a sql injection)

bye

PUMA81
02-08-2007, 20:16
Ciao dupa, vedo che te ne indenti di php & mysql...:p
Avrei da chiedrrti pure io una cosetta, e siccome riguarda più o meno la stessa cosa, ho postato qui anzichè aprire un nuovo post. Passo al dunque: l'utente può scegliere un valore attraverso un menù a tendina e vorrei che questa scelta fatta dall'utente possa essere utiilizzata in una query sql per la visualizzazione di alcuni risultati. Vi posto il codice di quello che ho scritto in modo da farvi una idea più chiara del mio problema...

$query = "SELECT autore FROM news WHERE titolo='.......'";

Praticamente dove ci sono i ..... vorrei inserire il valore scelto dall'utente.
Spero di essere stato chiaro.
Grazie e ciao.

PhoEniX-VooDoo
02-08-2007, 21:19
1)
$miaquery = "SELECT soc_nome FROM societa";
passi sta stringa di query a mysql_query(..)
e passi i risultati con mysql_fetch_array(..)

2)
in questo caso

$miaquery = "SELECT soc_nome FROM societa WHERE 1 = 1";

if ($campodiricerca != "") {
$miaquery = $miaquery . "AND campo = '$campodiricerca' ";
}

ovviamente questa è una base.. poi guarda il manuale sul sito php e capirai che è tutto semplice (occhio a sql injection)

bye



Ma nel primo caso, esattamente cosa scrivo nella Option della struttura che serve per il menu a tendina?


grazie cmq ;)

tomminno
02-08-2007, 21:29
Ciao dupa, vedo che te ne indenti di php & mysql...:p
Avrei da chiedrrti pure io una cosetta, e siccome riguarda più o meno la stessa cosa, ho postato qui anzichè aprire un nuovo post. Passo al dunque: l'utente può scegliere un valore attraverso un menù a tendina e vorrei che questa scelta fatta dall'utente possa essere utiilizzata in una query sql per la visualizzazione di alcuni risultati. Vi posto il codice di quello che ho scritto in modo da farvi una idea più chiara del mio problema...

$query = "SELECT autore FROM news WHERE titolo='.......'";

Praticamente dove ci sono i ..... vorrei inserire il valore scelto dall'utente.
Spero di essere stato chiaro.
Grazie e ciao.

Nell'html avrai qualcosa tipo

<form method="post" action="titolo.php">
<select name="titolo">
<option value="1">uno</option>
<option value="2">due</option>
</select>
</form>


nella pagina titolo.php

...
if (isset($_POST['titolo']))
{
$titolo = $_POST['titolo']
$query = "SELECT autore FROM news WHERE titolo='$titolo'";
...
}

ctdino
03-08-2007, 17:21
Quello che vorrei realizzare è questo: dopo aver selezionato il campo nel primo select, ad esempio "Birra", vorrei che "Birra" apparisse nelle condizione WHERE della query.
Questo è quello che ho scritto:

<form method="post" id="mioform" action="disponibilita.php">
<select id="tipologia" name="tipologia" onchange="tipologia(this.id)"><option></option><option>Birra</option><option>Vino</option><option>Drink</option></select>

<div id='marca' style='visibility:hidden'>
<select id="marca_sel" name="marca_sel">

<?
if (isset($_POST['tipologia']))
{
$tipo = $_POST['tipologia'];
include("top_foot.inc.php");
include("config.inc.php");
top();
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
$query = "SELECT autore FROM news WHERE titolo='$tipo'";
$result = mysql_query($query, $db);
while ($row = mysql_fetch_array($result))
{
echo "<option>$row[autore]</option>";
}
mysql_close($db);
foot();
}
?>
</select>
</div>
</form>

Questo è quello che ho scritto nel file java-script:

function tipologia(id)
{
document.getElementById("marca").style.visibility='visible';
document.getElementById("mioform").submit();
}

tomminno
04-08-2007, 16:59
Se la pagina disponibilita.php è la stessa che hai postato il codice dovrebbe andare bene, altrimenti l'unica alternativa che mi viene in mente è Ajax per cui dalla funzione tipologia fai richiamare uno script che ricarica la pagina mandando in post il contenuto selezionato del primo combo.