Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    5

    [php + html] dire a php di fare una query su MySQL a partire da form HTML

    PREMESSA (che potete saltare se non avete voglia di fare polemiche): sono lento di comprendonio, a tratti pigrissimo, sono giorni che cerco su Forum di tutt'Italia (manco l'inglese so); ho letto le guide di base di PHP, MySQL e HTML pubblicate su HTML.IT ma anche altre; ho fatto la ricerca sul Forum e la cosa che mi interessa non è saltata fuori, ho letto il regolamento e spero di averlo seguito nel formulare il titolo. STO PER CHIEDERE UNA COSA CHE PER VOI SARà SEMPLICE ma per me non lo è; vi ringrazio anticipatamente per l'attenzione, la cortesia e la comprensione concessami. [perdonate il tono ma altri forum mi hanno trattato malissimo]

    I fatti:

    1) sto facendo un sito in locale (con Joomla, ma la cosa non credo sia rilevante, visto che uso Jumi per integrare codice HTML e PHP all'interno degli articoli)
    2) una pagina di questo sito è dedicato alla ricerca su un DB in MySQL (sto in locale e uso XAMPP 1.7.1 [con 1.7.2 Joomla 1.5 non funziona bene])
    3) in questa pagina ci sono una decina di campi di un form che ho fatto io in HTML, con valori predefiniti (intendo dire che ho usato il tag OPTION per compilarli)
    4) l'action relativa a questo form apre un file php
    5) la tabella c'è e funziona benissimo con phpMyAdmin

    Ora (Signori pietà, sempre siate lodati):
    [questo sono le poche righe di codice che sono stato in grado di scrivere nel suddetto file php]

    1 <?php
    2 $mysqli = new mysqli('localhost', 'root', '', 'nomedatabase');
    3 $results = $mysqli->query("SELECT * FROM moeop WHERE Classe = Edifici");
    4 echo "Risultati corrispondenti a Scavi: ".$results->num_rows."
    ";
    5 $mysqli->close();
    6 ?>

    A) Come devo fare per dire a php che la ricerca sulla tabella la deve fare partendo dalle richieste che un utente generico invia tramite i form?
    B) Tralasciando il fatto che è un codice terribilmente (il che dovrebbe lasciarvi la misura di quanto sono perso): è corretto?
    A) Come devo fare per dire a php che la ricerca sulla tabella la deve fare partendo dalle richieste che un utente generico invia tramite i form?

    Chiaritemelo e avrete la mia gratudine eterna...

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    5

    non è che avessi chissà che pretese...

    mi accontentavo anche di un reindirizzamento... chessò... consigliarmi un manuale...

  3. #3
    Allora, premesso che non si capisce benissimo.

    Io ho capito che l'utente fa una scelta dal option menu,
    questa scelta va passata alla query, al posto di edifici che hai messo tu manualmente dovrebbe andare il criterio scelto dall'utente.

    avrai una select di questo genere

    <select name="criterio" ...>
    <option value="edifici">edifici</option>
    ...
    ..

    semplicemente la query va riscritta così
    "SELECT * FROM moeop WHERE Classe='$_POST[edifici]'" // o $_GET se usi il metodo get

    Attento: le stringhe nelle query vanno sempre messe tra apici come ho fatto io

    Infine sulla sintassi mysqli non so dire niente perchè non l'ho mai utilizzata
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    5

    grato ma ancora in trouble

    se il signore mi aveva riservato una vincita al superenalotto la giro a te: grazie, grazie, grazie...

    hai centrato perfettamente il punto, anche se mi sono spiegato male (e dire che mi ero sforzato...); solo che mi sono oscure ancora un paio di cose, se tu potessi fare un po' di luce anche su quelle...

    a) chiaramente l'utente finale deve poter scegliere altre voci oltre "Edifici" nella categoria "Classe"; che devo fare? devo ripetere la riga per ogni voce nella categoria? oppure separare le varie voci fra le parentesi quadre da virgole? o lasciare le parentesi quadre vuote?
    o che???

    b) inoltre quel bastardo esigente dell'utente finale sceglie anche fra differenti categorie: "Classe", "Tipo", "Oggetto", etc...; come imposto la query? ripeto semplicemente l'istruzione? o c'è qualche operatore specifico?

    cmq già grazie un sacco

  5. #5
    Si

    <select name="criterio" ...>
    <option value="edifici">edifici</option>
    <option value="torri">torri</option>
    <option value="pollai">pollai</option>
    .....
    </select>

    poi tra l'altro ho fatto un errore

    nella query non è $_POST['edifici'] ma ovviamente $_POST['criterio']

    per la tua seconda domanda:

    Fai tante select quanti criteri ti servono

    <select name="tipo">
    ....
    ....
    </select>

    Quindi la query

    "SELECT * FROM moeop WHERE Classe='$_POST[criterio]' AND tipo='$_POST[tipo]' AND ...."


    Questo se ho capito.

    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    5

    ti ho riconosciuto

    sei il messia, buono e saggio

    ti ho già ringraziato? no? grazie

  7. #7
    Tra l'altro ti do un consiglio.
    Evita di utilizzare categorie testuali. Immagino che la tabella moeop sia strutturata così
    (tipo)

    id | nome | criterio | tipo

    1 | casa | edificio | villa

    ......
    ......


    E' preferibile avere una tabella per criterio e una per tipo

    id_criterio | nome_criterio

    1 | edifici
    2 | torri
    3 | ....


    id_tipo | nome_tipo

    1 | ....
    2 |.....

    Poi le selct le crei dinamicamente svilupando la tabella criterio

    ...
    <option value=..id_criterio>nome_criterio</option>

    E andando quindi a salvare nel database non i nomi, ma gli id dei criteri e dei tipi.
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.