Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Ricerca Avanzata (controlli incrociati)

    salve,
    ho le seguenti tabelle:

    RICETTE:
    ID_RICETTA
    TITOLO
    TESTO

    esempio: 1, pasta all'amatriciana, la pasta si cuoce ecc

    INGREDIENTI:
    ID_INGREDIENTE
    TITOLO

    esempio: 1, sugo | 2, pancetta | 3, peperoncino

    RICETTE_INGREDIENTI:
    ID_RICETTA
    ID_INGREDIENTI

    esempio: 1, 1 | 1, 2 | 1, 3 <- in modo che ho legato la pasta all'amatriciana con gli ingredienti sugo, pancetta e peperoncino


    ora fin qua tutto apposto. se io volessi cercare "amatriciana" tramite un campo di ricerca farei un bel:
    SELECT * FROM RICETTE WHERE TITOLO LIKE '%amatriciana%'

    fin qua ancora tutto apposto. ora però arriva il problema: se volessi cercare un piatto che contiene la parola "amatriciana" e contenga gli ingredienti "sugo" e "pancetta"???
    come unisco le due select???

    perchè una sarebbero:
    1) SELECT * FROM RICETTE WHERE TITOLO LIKE '%amatriciana%'
    2) SELECT * FROM INGREDIENTI WHERE TITOLO LIKE '%sugo%' XOR LIKE '%pancetta%'

    ma come faccio a ritrovarle dentro RICETTE_INGREDIENTI??
    please HELP ME!!!!!!!!!

  2. #2
    la metto anche sottoforma di schemino in caso non si fosse capita bene:


    ora come chiedo quale pasta ha RICETTE.TITOLO LIKE '%amatriciana%' e INGREDIENTI.TITOLO LIKE '%sugo%' oppure (XOR) INGREDIENTI.TITOLO LIKE '%pancetta%' ??

    please aiuto!

  3. #3

  4. #4
    niente ragazzi è così complesso?

  5. #5
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    dovresti provare a vedere con le join, se puoi fare qualcosa.. con la struttura che hai usato te, non saprei come aiutarti, ma probabilmente la soluzione sta là.. e lo faresti con una sola query..
    posta un dump delle tabelle con qualcosa dentro, e provo a vedere se riesco ad aiutarti..

  6. #6
    cioè cosa dovrei postarti?

    i nomi delle tabelle sono su, ci sono anche mini esempi nel secondo post...
    si sono sicuro che è con join però non riesco a gestirle..

    c'è la tabella RICETTE_INGREDIENTI che contiene i due ID e raccorda le ricette agli ingredienti.. se ti serve di più dimmi, grazie mille

  7. #7
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    è per non crearmi le tabelle.. per farle come le tue..
    e per metterci dentro roba come hai fatto te..
    devi esportarle, sia struttura che dati..

  8. #8
    http://www.dalistudio.com/atavola/RETRO/db.zip
    ci stanno le 3 tabelle con dei testi di prova!!

  9. #9
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    da qua
    http://database.html.it/articoli/leg...le-in-mysql/4/
    un po' complicato ma va..
    questa è la query..
    Codice PHP:
    SELECT ricette.titolo_ricettaGROUP_CONCAT(DISTINCT ingredienti.titolo
    ORDER BY ingredienti
    .titolo ASC SEPARATOR ', ') AS INGREDricette.testo
    FROM ricette
    JOIN ricette_ingredienti ON 
    (ricette.ID_RICETTA ricette_ingredienti.ID_RICETTA)
    JOIN ingredienti ON (ingredienti.ID_INGREDIENTE ricette_ingredienti.ID_INGREDIENTE)
    WHERE TESTO LIKE '%sugo%' or ricette.titolo_ricetta LIKE '%sugo%' 
    GROUP BY ricette.ID_RICETTA
    ORDER BY titolo ASC 
    se sei su phpmyadmin PRIMA aggiungi questi
    PHP]
    INSERT INTO `ricette` VALUES (2, 'PASTA ALL''UOVO', 'la pasta all''uovo si fa con l''uovo');[
    INSERT INTO `ricette_ingredienti` VALUES (4, 2, 1);
    INSERT INTO `ricette_ingredienti` VALUES (5, 2, 3);
    INSERT INTO `ricette_ingredienti` VALUES (6, 2, 4);
    [/PHP]
    se togli il where hai la query da usare nelle pagine.. puoi aggiungere quanti "WHERE" vuoi..
    qualsiasi cosa sto qua..

    p.s.: ho imparato anche io una cosa, non avevo mai fatto una relazione "molti a molti"..

  10. #10
    sei un grande!!!!!!!!!!!!!!

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.