Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    41

    Interrogazione db sql attraverso un link.

    Ho questo problema.

    Ho una biblioteca tecnica specifica già messa in db sql (mysql). Il db ha una sola tabella che è così divisa:

    Book (indica il libro tecnico, contraddistinto da numeri 1, 2, 3 etc)
    Capitolo (indica il capitolo ed è espresso in numeri 1, 2, 3 etc)
    sottocapitolo (indica il sottocapitolo e anche questo è espresso in forma numerica)
    Testo (il testo contenuto nel libro, capitolo e sottocapitolo)

    Quello che vorrei fare è interrogare il db in forma di link per estrarre il testo.

    Per esempio, nella pagina web compaiono delle istruzioni e voglio far riferimento al libro pertanto metto il solito "clicca qui" dove il link sarà "www.sitotecnico.com/leggi.php?libro+capitolo+sottocapitolo"

    E' possibile realizzare una pagina php in questo modo? Dove posso vedere esempi tipo questo?
    Spero di essere stato sufficientemente chiaro. Grazie a tutti.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    certo che è possibile... più che passare i dati che dici nel link dovresti passare l'id interno, se possibile, altrimenti la chiave (puoi aggiungere un campo? Altrimenti: la terna book-capitolo-sottocapitolo è univoca?), p.es.

    www.example.com/leggi.php?id=x

    oppure

    http://www.example.com/leggi.php?boo...ottocapitolo=c

    poi dentro leggi.php puoi recuperare le informazioni e fare la query:

    Codice PHP:
    $book $_GET['book'];
    ...
    // qui applichi l'escape ai parametri e poi:
    $query "SELECT * FROM libri WHERE book=$book AND ..."
    ...in realtà quando recuperi le info con $_GET devi anche filtrarle per prevenire attacchi

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    41
    Dove potrei trovare un esempio completo?

  4. #4
    Guarda su HTML.it fra le guide c'è un esempio che potrebbe fare al caso tuo:

    http://php.html.it/guide/lezione/446...-singolo-post/

    questo esempio è un po' diverso da quello che vuoi fare, ma il meccanismo alla base è lo stesso. Qui si interroga il database per mostrare un singolo post, nel tuo caso puoi sostituire l'identificativo del post con la terna di identificativi libro, capitolo, sottocapitolo e poi mostrarne il testo mediante una select mysql e visualizzarlo come meglio credi.

    Una cosa molto importante è, come dice eyen, controllare i parametri che prendi da GET per evitare attacchi al db.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    41
    Grazie. Mi tuffo nell'impresa ...

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ...tieni conto che per selezionare un record devi usare la "chiave" (così si chiama): nel tuo caso sembrerebbe che questa sia la terna <book, capitolo, sottocapitolo>, ma non so se il db è impostato correttamente (e magari sono possibili duplicati)... verifica semplicemente di fare le query correttamente e di gestire eventuali duplicati (nel qual caso avresti in risposta più record... una "patch" può essere un LIMIT 1 in fondo alla query e un ORDER BY in base a cosa è meglio fare, magari prendere il più recente).

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 © 2024 vBulletin Solutions, Inc. All rights reserved.