[PHP] Consiglio su Qry/array

greghph27

Nuovo Utente
21 Giu 2017
14
0
1
Ciao a tutti
chi mi sa consigliare "la via da prendere", possibilmente la piu veloce in termini di richiesta/risposta client/server.
La mia situazione è questa:

ho tre tabelle
-tabella articoli
--codice
--idimmagine1 (Integer collegato ad id tabella immagini)
--idimmagine2 (Integer collegato ad id tabella immagini)
--idimmagine3 (Integer collegato ad id tabella immagini)
--iddimensione (Integer collegato ad id tabella dimensioni)

- tabella immagini
-- id
--immagine

- tabella dimensioni
--id
--dimensione

la mia necessita è di ottenere una tabella con visualizzati i seguenti dati
Codice Immagine Immagine Immagine Dimensione

cosa mi consgiliate di fare?
Usare Union nella stringa SQL o, avevo pensato, di crearmi prima due array contenenti il primo id ed immagine della tabella immagini e il secondo id e dimensione della tabella dimensioni e quando ciclo la tabella articoli lego i vari idimmagine all'array corrispondente ed espongo il valore che mi serve.
Su quest'ultima chi potrebbe spiegarmi come fare?
grazie
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
potresti provare con questa query che restituisce quello che chiedi,
Codice:
select
 a.codice
,i1.immagine as immagine1
,i2.immagine as immagine2
,i3.immagine as immagine3
,d.dimensione
from articoli a
    ,immagini i1
    ,immagini i2
    ,immagini i3
    ,dimensioni d
where i1.id = a.idimmagine1
  and i2.id = a.idimmagine2
  and i3.id = a.idimmagine3
  and d.id = a.iddimensione

  and a.codice between 31 and 40

order by a.codice
ho inserito "between" e "order by" come esempio nel caso fossero utili

MA... questa query estrae gli articoli che hanno le 3 immagini e la dimensione presenti nelle rispettive tabelle,
nel caso un id non sia trovato, l'articolo non viene estratto

se dovesse esistere questa possibilità (che non accenni nella tua richiesta), occorre usare le join con lo stesso principio
 

greghph27

Nuovo Utente
21 Giu 2017
14
0
1
Ciao Marino51
effettivamente mi son dimenticato di scrivere che se non è presente l'id in relazione con le tabelle, lo stesso deve essere esposto
ho provato cosi...ma mi estrae piu righe di quante ci siano in tabella (9035)
PHP:
$query="SELECT A.*, B.formato AS formatop, C.formato AS formatopm, D.nomefile AS logoclasse, E.nomefile AS logoinf, ";
$query .="F.nomefile AS logoce, G.nomefile AS logoimq, H.nomefile AS logoenec, I.nomefile AS logoecolight, ";
$query .= "L.nomefile AS logoet, M.nomefile AS logovarie ";
$query .="FROM items AS A ";
$query .="INNER JOIN formato_etichette AS B ON B.cf_id=A.ksformato ";
$query .="INNER JOIN formato_etichette AS C ON C.cf_id=A.ksformatomaster ";
$query .="INNER JOIN loghi AS D ON D.cf_id=A.classe ";
$query .="INNER JOIN loghi AS E ON E.cf_id=A.infiammabile ";
$query .="INNER JOIN loghi AS F ON F.cf_id=A.ce ";
$query .="INNER JOIN loghi AS G ON G.cf_id=A.imq ";
$query .="INNER JOIN loghi AS H ON H.cf_id=A.enec ";
$query .="INNER JOIN loghi AS I ON I.cf_id=A.ecolight ";
$query .="INNER JOIN loghi AS L ON L.cf_id=A.et ";
$query .="INNER JOIN loghi AS M ON D.cf_id=A.varie ";

risultato = 12.308 righe anziche 9035
nei campi della tab items, se non è collegato a nennun id delle altre due tabelle, il valore è 0

ho provato anche con LEFT JOIN e mi da 55.385 valori
dove sbaglio?
 

greghph27

Nuovo Utente
21 Giu 2017
14
0
1
ciao ho risolto nidificando le inner join
PHP:
$query="SELECT A.*, B.formato AS formatop, C.formato AS formatopm, D.nomefile AS logoclasse, E.nomefile AS logoinf,
F.nomefile AS logoce, G.nomefile AS logoimq, H.nomefile AS logoenec, I.nomefile AS logoecolight, L.nomefile AS logoet, M.nomefile AS logovarie
FROM loghi AS M INNER JOIN (loghi AS L INNER JOIN (loghi AS I INNER JOIN (loghi AS H
INNER JOIN (loghi AS G INNER JOIN (loghi AS F INNER JOIN (loghi AS E INNER JOIN (loghi AS D
INNER JOIN (formato_etichette AS C INNER JOIN (formato_etichette AS B INNER JOIN items AS A ON B.cf_id = A.ksformato)
ON C.cf_id = A.ksformatomaster) ON D.cf_id = A.classe) ON E.cf_id = A.infiammabile) ON F.cf_id = A.ce) ON G.cf_id = A.imq) ON H.cf_id = A.enec)
ON I.cf_id = A.ecolight) ON L.cf_id = A.et) ON M.cf_id = A.varie ";
 
Discussioni simili
Autore Titolo Forum Risposte Data
M [PHP] Consiglio su come istanziare un Bottone PHP 0
S [PHP] Richiesta consiglio PHP 1
K Richiesta consiglio per imparare programmazione php PHP 2
S Consiglio su editor html, php HTML e CSS 4
P [RICHIESTA]Consiglio per iniziare con il PHP e MySQL PHP 3
L Consiglio su download o no di file con php PHP 0
A consiglio uso jquery php per mostrare parte di un form PHP 6
B Consiglio per approfondire studio php PHP 4
R Qualche consiglio per il mio primo sito in PHP? Presenta il tuo Sito 5
M Consiglio su script in php PHP 2
L php consiglio PHP 5
A Consiglio per sviluppo sito con sezione news in PHP Webdesign e Grafica 6
L Consiglio classi php PHP 2
L Consiglio su corso PHP 5 e Mysql PHP 1
Ninja_Sciacallo Consiglio su script in php (statistiche) PHP 1
M Consiglio veloce php myadmin PHP 0
O per Easy PHP mi date un consiglio ? PHP 1
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0
E PHP & jQuery PHP 8
N Passare array da php a javascript PHP 5
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
F Php e fatturazione elettronica PHP 0
P lanciare script asp (o php) da jquery Javascript 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1

Discussioni simili