Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Query migliore

  1. #1

    Query migliore

    Buongiorno, premetto che sto imparando a programmare in php e sto provando a creare una specie di sito cerca carrello.
    Da una stringa di ricerca vengono passati alla pagina che elabora i dati mediante metodo POST gli id degli articoli da cercare negli shop. La pagina elabora esplode la stringa ed inserisce gli id in un array ($prodottidacercare) che con un ciclo foreach viene inserito nella query tramite la funzione "id_art IN()", prima cerca gli shop che hanno tutti gli id articoli nel carrello, se li trova stampa i siti che hanno disponibili questi articoli, se non li trova provvede a cercare gli articoli in piu siti privilegiando chi soddisfa i requisiti per la sped gratis se li trova li stampa altrimenti cerca semplicemente gli shop che hanno gli id_art; ogni volta che trova un id_art in uno shop elimina l'id_art dall'array $prodottidacercare. Qui ho dei problemi a strutturare la query. Avendo le seguenti tabelle:

    Tab: "articoli" Colonne: id, nome, descrizione, formato, cat, sub cat
    Tab: "shop" Colonne: id, nome, url, sped_gratis
    Tab: "area_ricerca" Colonne: id, id_art, id_shop, prezzo_art

    Provo la query :
    SELECT articoli.nome, id_art, id_shop, prezzo, url, shop.nome, shop.sped_gratis FROM arearicerca RIGHT OUTER JOIN shop ON arearicerca.id_shop=shop.id RIGHT OUTER JOIN articoli ON arearicerca.id_art=articoli.id WHERE id_art IN (12, 33, 54, 65, 37) GROUP BY id_shop

    Il problema è che cosi, seppur in uno shop mi trova gli articoli "12,33,65" mi stampa una riga contenente solo il primo "12", invece vorrei trovare la query che mi dia la possibilità di avere tutti gli articoli contenuti nello shop. Vorrei capire quale potrebbe essere la query migliore da usare (o come potrei impostarla) in modo da non appesantire troppo il server. Ringrazio in aticipo chi mi aiuterà

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Richieste riguardo le query vanno nella sezione Database.
    Sposto.

  3. #3
    grazie mille e scusami tanto l'off topic!

  4. #4
    se, come dici, li trova ma non li stampa, il problema sta nella stampa, non nella ricerca...

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.