Joomla.it Forum

Non solo Joomla... => Sviluppo => : renix 28 Jul 2010, 17:33:48

: creare componente query database
: renix 28 Jul 2010, 17:33:48
Ciao, ho realizzato un sito dedicato all'urbanistica del Comune di Foggia - www.urbanisticafoggia.org (http://www.urbanisticafoggia.org) e ho necessità di integrare nel database di joomla un form di ricerca fatto in questo modo: campo1: foglio, campo2: particella. Inserendo questi dati, es. foglio 120, particella 41, il risultato della ricerca dovrebbe restituirmi tre opzioni: dentro, parzialmente, fuori. "Dentro" se la zona ricade nell'area da noi richiesta, "parzialmente" se ricade in parte e "fuori" se non rientra. Ho un elenco per le parti che sono fuori e uno per le pari che ricadono parzialmente. A dirlo sembra semplice, ma purtroppo non ho dimestichezza con le query e non so da dove cominciare. Qualcuno sa darmi una dritta?
Grazie
: Re:creare componente query database
: mmleoni 29 Jul 2010, 11:18:12
ciao renix,
benvenuto sul forum!  :)

prova a cercare qualche estensione tra quelle già fatte, altrimenti la questione non è propriamente banale: parti da fabrik (fabrikar.com).

ciao,
marco

: Re:creare componente query database
: renix 29 Jul 2010, 12:09:30
Ciao Marco, grazie per l'aiuto... gli do un'occhiata.
Cmq ho creato, con phpmyadmin, due tabelle: "dentro", "parzialmente" e ho importato i dati in ognuna.
Ora ho due tabelle popolate dai dati che l'eventuale utente del sito dovrebbe inserire nel form di ricerca ed ottenere il risultato: dentro, parzialmente, fuori.
Quale operazione devo effettuare per andare avanti?

Grazie
: Re:creare componente query database
: mmleoni 29 Jul 2010, 12:23:11
http://wiki.joomla.it/index.php?title=Creazione_di_un_componente_con_MVC_in_Joomla_1.5_-_Parte_1

buona lettura.

ciao,
marco
: Re:creare componente query database
: renix 30 Jul 2010, 08:31:04
Molto interessante.
Grazie Marco
: Re:creare componente query database
: renix 31 Jul 2010, 18:50:38
Ho risolto creando una sola tabella nella quale ho inserito tutti i dati.
Posto il codice, potrebbe essere utile a qualcuno:
Form
:
<html>
    <body>
        <form method="post" action="risultati.php">
            <fieldset>
                Foglio: <input type="text" name="foglio" />
                Particella: <input type="text" name="particella" />
                </fieldset>
            <input type="submit" value="Cerca">
        </form>
    </body>
</html>

Risultati:
:
<?php
$link 
mysql_connect('localhost''mysql_user''mysql_password') or die("Errore di connessione al db");
mysql_select_db('nomedatabase') or die("Non riesco a selezionare il dbase $MYSQL[dbase]");
$recordset mysql_query ("SELECT * FROM aquila_foggia WHERE foglio = '".$_POST[foglio]."' AND particella = '".$_POST[particella]."'") or die("errore nella query");
while (
$linea mysql_fetch_array($recordsetMYSQL_ASSOC)) $risultato[] = $linea;
mysql_free_result($recordset);
mysql_close($link);

switch (
$risultato[0][tipo]) {
case "Totalmente ricadente":

echo "<h1>$_POST[foglio]/$_POST[particella] Totalmente ricadente</h1>";

break;

case "Parzialmente ricadente":

echo "$_POST[foglio]/$_POST[particella] Parzialmente ricadente";

break;

default:

echo "$_POST[foglio]/$_POST[particella] Non ricadente";

break;
}
?>


Ora ho un altro problema:  ho inserito il tutto in joomla in un modulo wrapper e un modulo php ma niente.
il problema è che mi restituisce 404 - Componente non trovato con questo url: http://www.urbanisticafoggia.org/index.php/risultati.php. Come fare per avere http://www.urbanisticafoggia.org/risultati.php, quindi senza index.php
: Re:creare componente query database
: mmleoni 31 Jul 2010, 19:04:05
ciao,
quello che hai fatto è esattamente ciò che NON va mai fatto.

1.
non è sicuro! stai passando al db dei dati senza alcun controllo! SQL injection sicura.  >:( >:(
2.
non è conforme al coding standard di joomla
3.
è ovviamente sbagliata l'action, perché porta fuori da joomla.

studia il link che ti ho indicato prima di postare codice che possa far sbagliare gli altri.

ciao,
marco

: Re:creare componente query database
: renix 04 Aug 2010, 18:53:18
Hai ragione, chiedo scusa a tutti.