Stampare orizzontalmente i valori da un database

Garaux

Utente Attivo
24 Feb 2013
50
0
0
Ciao,
avrei da porvi un piccolo quesito a cui ancora non sono riuscito a dare una risposta adeguata.
In breve…
Ho creato un database con MySQL in cui figurano diverse tabelle relazionate tra di loro.
La tabella principale è denominata articoli in cui figurano tutti gli articoli associati agli autori, alle categorie e a diverse lingue.
I dati sono stampati a video utilizzando script in PHP come sotto riportato:

Nome articoloLingueCategoriaAutore
Primo articolo ItalianoAX
Primo articoloIngleseAX
Primo articoloTedescoAX
Secondo articoloItalianoBY



Io però vorrei che i valori venissero stampati in modo orizzontale

Nome articoloLingueCategoriaAutore
Primo articolo Italiano, Inglese, TedescoAX
Secondo articolo ItalianoBY



Sapreste dirmi come fare?
Grazie!
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Potresti utilizzare GROUP By ma non son come sia organizzato il tuo database.
 

Garaux

Utente Attivo
24 Feb 2013
50
0
0
Ciao Claudio e grazie della risposta.
Sarò più dettagliato. Allora: il database ha diverse tabelle, ma ti elenco qui quelle a cui faccio riferimento.
La tabella di riferimento è denominata article
IDarticle_nameauthor_id
[tr]

La tabella autori

IDauthor_name
[tr]
è relazionata con la tabella articoli.
La tabella lingue è cosi strutturata
IDlang_name
[tr]
Per associare ad ogni articolo una o più lingue ho creato una tabella di lookup denominata lookuplang

articleIDlangID
[tr]
Ecco il codice con cui estrapolo i dati
PHP:
include 'includes/db.inc.php';

//CREAZIONE QUERY
try {
	
  $query_sql = 'SELECT article_name, author_name, lang_name FROM article 
                INNER JOIN author
                ON article.author_id = author.id
		inner join lookuplang
                on article.id = lookuplang.articleID                             
                inner join lang
                on langID = lang.id
		ORDER BY article.id ASC';
               
 
      $result = $GLOBALS['pdo']->query($query_sql);
}


//VISUALIZZAZIONE RECORD
foreach($result as $row) {
	$valori[] = array('article_name'=>$row['article_name'],'author_name'=>$row['author_name'], 'lang_name'=>$row['lang_name']);
}
include 'test.html.php';

Stampa a video dei valori
PHP:
<?php foreach($valori as $lista):?>
<?php
$lingua = $lista['lang_name'] . ': Status';
?>
<tr>
<td> <?php echo $lista['article_name']?></td>
<td> <?php echo $lista['lang_name']?></td>

 
  
 </tr>
<?php endforeach?></table>

La mia domanda è come mostrare in modo orizzontale i valori della tabella lingue per ogni articolo.

Grazie
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Prova con qualcosa del genere:
Codice:
SELECT nome_articolo, CONCAT(lang_name, ', ') AS lingue, categoria, autore
FROM ((article INNER JOIN autori ON author_id=author_name)
INNER JOIN (lookuplang ON article_name=articleID)
INNER JOIN (lingue ON lingue.ID=langID))
GROUP BY nome_articolo
L'ho buttato così dal cellulare e non sono sicuro che funzioni ma prova.
 

Garaux

Utente Attivo
24 Feb 2013
50
0
0
Ciao, ho provato and inserire lo script che mi hai proposto, ma purtroppo non funziona :crying:
 

Garaux

Utente Attivo
24 Feb 2013
50
0
0
La risposta del server è questa:
Selezione al DB non riuscitaSQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP BY article_name' at line 9
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Prova a togliere le parentesi esterne (c'è ancora qualche chance che funzioni):
Codice:
SELECT nome_articolo, CONCAT(lang_name, ', ') AS lingue, categoria, autore
FROM (article INNER JOIN autori ON author_id=author_name)
INNER JOIN (lookuplang ON article_name=articleID)
INNER JOIN (lingue ON lingue.ID=langID)
GROUP BY nome_articolo
 

Garaux

Utente Attivo
24 Feb 2013
50
0
0
Ciao, ho provato cosi e funziona :)

PHP:
$query_sql = 'SELECT article_name,author.author_name, group_concat(lang_name) 
                  FROM article 
                 INNER JOIN author
                ON article.author_id = author.id
		inner join lookuplang
                on article.id = lookuplang.articleID                             
                inner join lang
                on langID = lang.id
                GROUP BY article_name'


Grazie per il supporto!
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Figurati, ho notato che ho letto male anche il nome di qualche campo ahah
 
Discussioni simili
Autore Titolo Forum Risposte Data
I stampare una stringa echo PHP 2
F Stampare valori di un database PHP 14
A Stampare dati da form PHP 8
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
G leggere file txt e stampare con php il contenuto a video PHP 7
F stampare a video i risultati della query PHP 1
elpirata Ricavare e stampare indirizzo ip da array associativo PHP 0
B Stampare una porzione della pagina PHP 0
V Come stampare su Excel tabella con rowspan e colspan Javascript 2
elpirata Stampare carattere simbolo euro PHP 10
W Stampare file PDF in varie modalità. Windows e Software 5
L pdo (stampare un valore con ritorno a funzione) PHP 0
P [PHP] Aggiungere giorni e stampare risultato da data inserita in input PHP 3
P [PHP] Stampare record di diverse tabelle ma con nomi uguali PHP 6
K [PHP] Stampare tabella da database differenti. PHP 4
M Stampare con php e mysql PHP 8
L [PHP] stampare un'array di un database PHP 0
J modifica spooler di stampa per stampare in ordine di nome i files pdf Windows e Software 2
T PHP+MYSQL: stampare record con numero progressivo PHP 3
cristoforo58 Stampare dei valori XML in PHP PHP 0
elpirata [PHP] Stampare i valori di una variabile scritta su più righe PHP 1
K [PHP] Cancellare e Stampare tabella PHP 3
M [PHP] come stampare un Qr-code in FPDF PHP 8
M [Javascript] "Stampare" nel codice Var JS Javascript 5
N [PHP] stampare pagina html PHP 0
fulviozecchin [Java] Stampare intervallo tra due interi senza cicli Java 2
F [PHP] Stampare dati inviati tramite ajax PHP 0
elpirata [RISOLTO]Stampare giorno della settimana in tabella php PHP 6
elpirata [PHP] [RISOLTO] Stampare classe css in base al risultato della query PHP 6
Fuego2806 Stampare dati Form su immagine di sfondo con html HTML e CSS 1
Fuego2806 [PHP] Stampare dati Form su immagine di sfondo con html PHP 70
webmachine [PHP] Problema: Stampare tutte le occorrenza di una SELECT PHP 2
momeraths come stampare immagini contenute in un database PHP 7
I stampare in video i dati inseriti nel db PHP 1
M Sito "e-commerce", stampare dati di registrazione e dati dell'acquisto da pagine diverse PHP 7
L Stampare immagine php PHP 2
elpirata Stampare a video in echo table il risultato di una query PHP 4
Shyson Stampare lista in ordine decrescente Database 1
A Stampare senza sidebar Javascript 0
F stampare array php PHP 2
N Non stampare valori duplicati PHP 1
T Stampare maschera fronte/retro MS Access 0
C Stampare font personalizzati HTML e CSS 2
S estrarre e stampare a video un record in un div PHP 7
N FPDF stampare pdf automaticamente su stampante impostata PHP 0
M Stampare valore di un array PHP 1
P Stampare a video PHP 1
P Stampare '<?' in php PHP 7
D Stampare una query in una tabella MySQL 2
P Stampare valore font-size da css con javascript Javascript 2

Discussioni simili