- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Controllo dati contenuti in campo MySql e apertura pagina web in base al contenuto
-
Controllo dati contenuti in campo MySql e apertura pagina web in base al contenuto
Innanzitutto, un ciao a tutti :):).
sono un neofita di mysql e php. Avrei la necessita', tramite un pulsante, di controllare un valore presente all'interno di un cambo di una tabella Mysql (valore numerico che di default e' null, ma può avere valore 1 o valore 2) ed in base al valore che assume reindirizzare ad una pagina web diversa.
Spiego meglio....
ho inserito un codice php con accesso al database per la selezione di Regione, paese e comune di appartenenza. Ad ogni selezione viene filtrato il risultato del select successivo. Avrei bisogno di poter aggiungere al codice un pulsante (INVIA), il quale mi faccia un controllo nella tabella comuni, nel campo nominato "servizio", e, in base al valore che ho inserito manualmente in quel campo, se nullo mi restituisca la pagina 0.html; se valore "1" mi restituisca la pagina 1.html, se valore "2" mi restituisca la pagina 2.html.Incollo di seguito il codice utilizzato, nella parte body della pagina php:
<?php
include_once 'select.class.php';
$opt = new SelectList();
?>
<body>
<div id="container"><h1>La cascata regioni - province - comuni</h1> <h2>Seleziona una regione e nella select successiva compariranno le province di quella regione</h2> <h3>Selezionando una provincia, nella select successiva compariranno i comuni di quella provincia</h3> <form action="?" id="myform"> Seleziona una regione:<br /> <select id="regioni"> <?php echo $opt->ShowRegioni(); ?> </select> <br /><br /> Seleziona una provincia:<br /> <select id="province"> <option>Scegli...</option> </select> <br /><br /> Seleziona un comune:<br /> <select id="comuni"> <option>Scegli...</option> </select> </div> </form>
</body>
e di seguito la pagina select.class
<?php
class SelectList
{protected $conn; public function __construct() { $this->DbConnect(); } protected function DbConnect() { include "db_config.php"; $this->conn = mysql_connect($host,$user,$password) OR die("Impossibile connettersi al database"); mysql_select_db($db,$this->conn) OR die("Impossibile selezionare il database $db"); return TRUE; } public function ShowRegioni() { $sql = "SELECT * FROM regioni"; $res = mysql_query($sql,$this->conn); $regioni = '<option value="0">scegli...</option>'; while($row = mysql_fetch_array($res)) { $regioni .= '<option value="' . $row['id_reg'] . '">' . utf8_encode($row['nome_regione']) . '</option>'; } return $regioni; } public function ShowProvince() { $sql = "SELECT * FROM province WHERE id_reg=$_POST[id_reg]"; $res = mysql_query($sql,$this->conn); $province = '<option value="0">scegli...</option>'; while($row = mysql_fetch_array($res)) { $province .= '<option value="' . $row['id_pro'] . '">' . utf8_encode($row['nome_provincia']) . '</option>'; } return $province; } public function ShowComuni() { $sql = "SELECT * FROM comuni WHERE id_pro=$_POST[id_pro]"; $res = mysql_query($sql,$this->conn); $comuni = '<option value="0">scegli...</option>'; while($row = mysql_fetch_array($res)) { $comuni .= '<option value="' . $row['id_com'] . '">' . $row['cap'] . ' - ' . utf8_encode($row['comune']) . '</option>'; } return $comuni; }
}
?>
Grazie mille a chi mi da una mano ;);););)
-
Non capisco bene cosa devi fare, non è spiegato benissimo, ma ti basta inserire un input submit nel form per submittare la richiesta, per poi darla in pasto a PHP.
per redirectare fai un if sulla risposta es:
if ($risposta == 0){ header("location: tuapagina0.html"); }else if ($risposta == 1){ header("location: tuapagina1.html"); }else if ($risposta == 2){ header("location: tuapagina2.html") }else{ echo "Errore"; }
E forza ad INT quelle variabili sennò sei soggetto a SQL injection.
Se hai dubbi scrivi
-
Grazie mille per la risposta.
non mi è chiaro il passaggio su come poter acquisire la risposta per lavorarla poi con le sequenze di if.
ho aggiunto al codice il passaggio
<input type="submit">come devo fare per associare il valore del campo che mi interessa alla variabile $risposta ?
Cerco inoltre di spiegare meglio cosa vorrei realizzare (magari sono completamente fuori strada.....)
Vorrei creare una casella di testo che, all'inserimento, mi vada a completare la digitura pescando i dati all'interno di una tabella che si chiama Comuni, composta da ID (chiave primaria), comune, cap, servizio.
Selezionando poi il tasto submit, dovrei controllare, all'interno del comune scelto, il valore del campo servizio ed in base al risultato inserire la sequenza che mi hai descritto per il richiamo di pagine html diverse.
(in pratica qualcosa di molto simile a quello che trovi in ***.tariffa.it/copertura-rete-fissa/?ASID=LASTAMPA )
-
Allora vuoi fare un Autocomplete giusto?
-
Vorrei, ma sto abbandonando l'idea.... continuo a fare mille tentativi ma non riesco a ricavarne nulla.
Sono riuscito a creare un campo autocomplete, ma non riesco comunque a far associare alla scelta fatta dall'utente un controllo valore di una cella del campo per far aprire la pagina html.
Mi andrebbe benissimo a questo punto anche lavorare sulla casella combinata in partenza, ma mi manca sempre questo passaggio...
-
Io comunque continuo a non capire perdonami, prova a spiegarmi punto per punto cosa deve fare questa pagina, cosa un utente dovrebbe entrare e fare.
Meccanicamente.
-
come dal link che ho mandato in intestazione, dovrei creare una pagina html per verificare la copertura di un comune con un servizio di Radio Adsl locale.
Un utente entrando nel sito dovrebbe inserire il comune del quale vuole verificare la copertura (meglio se in autocompletamento, oppure anche in selezione a cascata).
Premendo il pulsante "Verifica copertura" il sistema dovrebbe restituire l'apertura di una pagina html se il paese è coperto con la relativa offerta, oppure una pagina html se il paese non è coperto, infine un'altra pagina html se il paese non è attualmente coperto ma è in fase di copertura breve.
-
Perfetto ora ho capito, come sono strutturate le tabelle quindi?
Fai un elenco:Nome Tabella 1
Campo1 - Campo2Nome Tabella 2
Campo1 - Campo2Così che capisco la struttura e posso aiutarti...
-
Database attualmente cosi strutturato:
Tabella 1: Regioni
Campi: id_reg tipo: int lunghezza: 3
nome_regione tipo: VARCHAR lunghezza 200Tabella 2: Province
Campi: id_pro
id_reg
nome_provinciaTabella 3: Comuni
Campi: id_com
id_pro
cap
comune
servizioIl campo servizio della tabella comuni ha valore numerico indicato da me all'interno del database, in pratica i comuni coperti dal servizio hanno valore '2', i comuni in fase di copertura hanno valore '1', i comuni non coperti hanno valore null
-
Allora potresti fare per iniziare così:
Fai inserire il nome del comune in un form:
pagina.html
<form action="processore.php" method="POST"> Nome comune: <input type="text" name="comune_check" /><br> <input type="submit" name="submit" value="Controlla Disponibilità"> </form>
processore.php
<?php if (isset($_POST['submit']) && isset($_POST['comune_check'])){ mysql_connect("host","user","pass"); mysql_select_db("nome_db"); $nome_comune = mysql_real_escape_string($_POST["comune_check"]); $sql = "SELECT servizio FROM Comuni WHERE comune='$comune';"; $exec = mysql_query($sql) or die ("Errore: ".mysql_error()); if($exec){ $fetch = mysql_fetch_array($exec); $servizio = $fetch['servizio']; if (intval($servizio) == 2){ header("location: comune_coperto.html"); }else if (intval($servizio) == 1){ header("location: comune_in_fase_di_copertura.html"); }else{ header("location: comune_non_coperto.html"); } }else{ echo "Errore"; } }else{ echo "Errore"; } ?>
Premetto che non l'ho testato e l'ho scritto nell'editor qui nel forum(non si capisce nulla) quindi potrei aver omesso qualcosa, ma in linea di massima dovrebbe andare, fammi sapere