visualizzazione dati da più tabelle tramite php e mysql

danpippo

Utente Attivo
17 Mar 2006
31
0
0
ciao a tutti
ho un problema con questo script. Mi permette di selezionare tramite delle checkbox determinati dati da un db, ma non mi permette di eseguire la query su piu tabelle. Come posso fare?
qui il codice

PHP:
<?php
$nomeDB = "";
$connessione=@mysql_connect("","","")
or die ("Connessione al Server non possibile.");
@mysql_select_db($nomeDB,$connessione)
or die ("Connessione al DB non possibile.");
echo "<B>Elenco merce</B><br><br>";
echo "<i>Tipo Quantità Prezzo Genere</i><br><br>";
$q="Select * from tabella";
$condizione = "";
if ($_POST['c1'] == "colla")
{
if ( $condizione == "" )
{
}
else
{
$condizione = $condizione." OR ";
}
$condizione = $condizione." genere = 'colla' ";
}
if ($_POST['c2'] == "mastice")
{
if ( $condizione == "" )
{
}
else
{
$condizione = $condizione." OR ";
}
$condizione = $condizione." genere = 'mastice' ";
}
if ($_POST['c3'] == "lama")
{
if ( $condizione == "" )
{
}
else
{
$condizione = $condizione." OR ";
}
$condizione = $condizione." genere = 'lama' ";
}
if ($_POST['c4'] == "vernice")
{
if ( $condizione == "" )
{
}
else
{
$condizione = $condizione." OR ";
}
$condizione = $condizione." genere = 'vernice' ";
}

if ( $condizione <> "" )
{
$q = $q." where" .$condizione;
}
$id_ris=@mysql_query($q)
or die ("Non è possibile eseguire la query!");
$num_libri=mysql_num_rows($id_ris);
// Si sposta sul primo record
mysql_data_seek($id_ris,0);
for( $i=0; $i<$num_libri; $i++ )
{
$record=mysql_fetch_array($id_ris);
//echo $i;
//echo ",";
//echo $record[0];
//echo ",";
//echo "&nbsp &nbsp";
echo "<b>$record[1]";
echo ",";
echo "&nbsp &nbsp";
echo $record[2];
echo ",";
echo "&nbsp &nbsp";
echo $record[3];
echo ",";
echo "&nbsp &nbsp";
echo $record[4];
echo "<br>";
}
?>
praticamente i checkbox, (presenti in un'altra pagina) una volta selezionati, mi fanno vedere i dati estratti dal db, ma non riesco a farlo su piu tabelle. Ho provato con join ma niente. Qualcuno puo aiutarmi? grazie
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
in che senzo su più tabelle?
dovresti specificare cosa vuoi estrarre da una e da un'altra e cosa le collega.
divresti postare il dump delle tabelle che ti interessano e dire quello che vuoi estrarre.

p.s.
nessuno può aiutarmi?
in questi giorni di festa i webmaster sono occupati col...bicarbonato (conseguenza delle abbuffate pantagrueliche)
 

danpippo

Utente Attivo
17 Mar 2006
31
0
0
lo so, stanno tutti con i piedi sotto al tavolo...:eek:

comunque il dump della tabella (spero di aver fatto bene) è questo

Codice:
CREATE TABLE IF NOT EXISTS `merce1` (
  `isbn` varchar(10) NOT NULL,
  `tipo` varchar(100) NOT NULL,
  `quantità` varchar(100) NOT NULL,
  `prezzo` varchar(100) NOT NULL,
  `genere` varchar(100) NOT NULL,
  PRIMARY KEY (`isbn`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dump dei dati per la tabella `merce1`
--

INSERT INTO `merce1` (`isbn`, `tipo`, `quantità`, `prezzo`, `genere`) VALUES
('123456', 'colla vinavil', '250 gr', '1.90', 'colla'),
('123445', 'mastice Hu', '1 lt', '1.20', 'mastice'),
('563456', 'trapano bosh', '1 lt', '14.29', 'trapano'),
('56456', 'tinta express', '285 gr', '0.49', 'tinta'),
('8878765', 'serratura yale', '1 lt', '2.49', 'serratura'),

e le altre tabelle (merce2, merce3...) sono praticamente identiche. I nomi dei campi sono gli stessi (`isbn`, `tipo`, `quantità`, `prezzo`, `genere`), cambiano solo i prodotti. Io con questo script seleziono i generi (quindi ad esempio trapano, colla, serratura) e poi mi permette di visualizzare della tabella solo i record che hanno quel genere. Perciò se seleziono colla, mi mostra "colla vinavil', '250 gr', '1.90', 'colla". Quello che mi serve è fare questo su più tabelle in modo tale che se selezionassi colla, mi mostrerebbe i record che appartengo al genere colla di tutte le tabelle. Esempio
merce1 - colla vinavil', '250 gr', '1.90', 'colla'
merce2 - colla attack', '100 gr', '1.80', 'colla'
ecc..
spero di essere stato chiaro, e ammetto che è parecchio che sto provando a risolvere questo problema senza riuscirci. Grazie per le risposte e AUGURI!
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
da un'occhiata superficiale mi sembra che tu stia commettendo un errore, non di mysql o php, ma di concetto sull'organizzazione del db/tabelle.
se hai pazienza che... ritiri i piedi da sotto il tavolo... ti dò delle dritte.

buon anno
 

danpippo

Utente Attivo
17 Mar 2006
31
0
0
passate buone feste? spero di si...
si può avere qualche altra informazione in merito al post?
grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
riprendiamo il discorso dopo aver tolto le zampe da sotto il tavolo.
secondo me non dovresti fare tante tabelle uguali, ma una su cui scrivi i generi ed una gli articoli (salo che tu non abbia es. genere, sottogenere, articolo, nel qual caso tre)
esempio schematico:
Codice:
CREATE TABLE `generi` (
`id` INT( 12 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`genere` VARCHAR( 100 ) NOT NULL ,
 ENGINE = MYISAM ;
in cui mettere i generi degli articoli (colla, mastice, trapano......)
poi farei una tabella per gli articolo

Codice:
 CREATE TABLE `articolo` (
`id` INT( 12 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`id_cat` INT( 12 ) NOT NULL ,
`isbn` INT( 12 ) NOT NULL ,
`tipo` VARCHAR( 100 ) NOT NULL ,
`quantità` FLOAT NOT NULL ,
`prezzo` FLOAT NOT NULL ,
UNIQUE (
`isbn` 
)) ENGINE = MYISAM ;
in questa puoi vedere
id è l'identificativo del record
id_cat e l'id della categorie che proverrà dalla tabella precedente (e che crerà il legame genere/articolo)
isbn (da quello che capisco) è il codice di magazzino dell'articolo e, dovendo corrispondere un articolo un codice, l'ho messo unique.
gli altri sono evidenti.
comunque ricordati una cosa, prima di buttarti a scrivere le tabelle, pensa bene (anzi molto bene) a come vuoi organizzare il db (da quello che intuisco ti servirà per lavoro).
perdi tempo (con matita/gomma/carta) ad organizzarlo poi ti accorgerai che il tempo non è perso ma guadagnato.
comunque siamo sempre qui per cercare di risolvere i dubbi.
 

danpippo

Utente Attivo
17 Mar 2006
31
0
0
grazie x la risposta
ho creato le due tabelle ma per fare la query di ricerca cosa devo scrivere? e come faccio a collegare l'id delle due tabelle (id e id_cat x intenderci)?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
per prima cosa devi pensare a come cercare, cioè con quali elementi effettuare la ricerca.
ipotizziamo che tu abbia gia inesrito una serie di categorie e (per ogni categoria un qualche prodotto o anche no)
e che tu abbia deciso di cercare i prodotti in funzione della categoria e, volendo, per qualcosa contenuto nel tipo.
dovrai farti quindi un form di ricerca che ti schematizzo

PHP:
<?php
//qui i dati per la connessione al db
//visto che c'è una tabella "generi" conviene che il la select sia dinamica
//estraendo i valori di input dalla tabella
?>
<form name="form1" method="post" action="">
    seleziona categoria<select name="genere" id="genere">
      <option value="">-scegli-</option>
<?php  
	  $query=mysql_query("SELECT * FROM generi ORDER BY generi");//ordino la visualizzazione alfabeticamente
	  while($riga=mysql_fetch_array($query)){
	  echo "<option value=\"".$riga['id']."\">".$riga['genere']."</option>";
	  }
?>
	</select>
  <p>indica tipo 
    <input name="tipo" type="text" id="tipo">
  </p>
  <p>
    <input name="cerca" type="submit" id="cerca" value="cerca">
  </p>
</form>
poi farai la pagina in cui visualizzerai gli articoli in funzione di quanto avrai immesso nel form
sceglierai se fare una pagina unica col form o due separate

PHP:
<?php
//qui i dati di connessione al db
if(isset($_POST['cerca'])){
	//verifichiamo cosa proviene dal form
	$genere=$_POST['genere'];
	$tipo=$_POST['tipo'];
	//e costruiamo le condizioni della query di ricerca
	$w=" WHERE 1=1 ";//questa sarà sempre vera
	if($genere !=""){//ha selezionato un genere
		$w .= "AND id_cat='$genere' ";
	}
	if($tipo !=""){
		$w .="AND tipo LIKE '%$tipo%'";
	}
	/*
	se per ipotesi;
	- non hai selezionato nulla ne scritto nulla nel campo di input tipo
	  in $w avrai " WHERE 1=1 " quindi ti saranno mostrati tutti gli articoli di tutti i generi
	- selezionato es. genere colla che ha (es.) id = 5 nella tabella generi
	  in $w avrai " WHERE 1=1 AND id_cat ='5'" quindi ti saranno mostrati tutti gli articoli del genere colla
	- sempre selezionando colla come sopra ma scrivendo (es.) HUHU ti saranno mostrati gli articoli di genere colla e che
	  nel campo tipo contengomo con i caratteri HUHU
	- scrivendo solo nel campo HUHU senza selezionare il genere vedrai gli articoli (anche appartenenti a generi diversi) che in tipo hanno i caratteri HUHU	
	quindi la query diventerà
	*/
	$q="SELECT * FROM articolo ".$w;
	//verifichi con mysql_num_rows se ci sono articoli con le condizioni impostate
	//e quindi, se si, visualizzi tutti gli articoli con le condizioni poste in $w
	//....ecc.....
}
?>
guarda che quanto scritto (anche se funzionante) è solo uno schema indicativo

analogo discorso per inserire un articolo:
prima devi creare il genere, poi inserirai gli articoli appartenenti al genere
comunque eventualmente alla prossima
 

danpippo

Utente Attivo
17 Mar 2006
31
0
0
ciao
grazie x la risposta, ma come ti avevo accennato ho necessità che le scelte vengano fatte solo tramite checkbox, altrimenti non può servirmi per il contesto del sito.
il mio form che uso è
<form action="pagina.php" method="post">
<span style="font-style: italic;">Ricerca per tipo</span><br><br>
<span style="font-weight: bold; font-style: italic;">
Scelta:
</span>
<input name="c1" value="colla" type="checkbox">colla
<input name="c2" value="mastice" type="checkbox">mastice
<input name="c3" value="piastrelle" type="checkbox">piastrelle
........
e poi come faccio a concatenare id generi con id_cat della tabella articolo?
grazie x la pazienza...:)
 
Discussioni simili
Autore Titolo Forum Risposte Data
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
L risolto visualizzazione e ordinamento dati PHP 1
R [PHP] Visualizzazione dati Array PHP 2
pjtertdj Visualizzazione dati in php da mysql con funzione matematica in javascript PHP 1
N Problema visualizzazione dati dopo GET PHP 19
P visualizzazione dati disordinata e non a colonna PHP 6
asevenx visualizzazione dati in file xml tramite php PHP 2
A problema visualizzazione dati da tabella PHP 15
C Visualizzazione dati array PHP 5
O Problema visualizzazione dati [era:Un problema] HTML e CSS 11
A Visualizzazione dati formattati PHP 5
G Creazione interfaccia VISUALIZZAZIONE/CANCELLAZIONE dati database PHP 1
G Visualizzazione dati tipo esplora risorse PHP 2
M Aiuto visualizzazione e gestione dati XML XML 6
I visualizzazione dati xml dinamici con xmlhttprequest Ajax 0
LaKanka problema di visualizzazione dati dal DB PHP 1
D Problema:Visualizzazione dati recuperati da un database Classic ASP 0
B Visualizzazione dati in base al login Database 0
metalgemini Come suddivido la visualizzazione dei dati in piu pagine? Classic ASP 6
A Visualizzazione due tabelle PHP 1
F Problemi visualizzazione mappa Android studio Sviluppo app per Android 0
M Visualizzazione a video risultati query php PHP 0
M Errore visualizzazione meta tag title e description SEO e Posizionamento 1
D Visualizzazione pagina basata sul valore di un campo del database PHP 2
F Visualizzazione motore di ricerca SEO e Posizionamento 2
T cms con visualizzazione mind map CMS (Content Management System) 0
B margini e padding nella visualizzazione mobile HTML e CSS 6
A Errore visualizzazione selezione testo Photoshop 0
R Visualizzazione barra superiore Google Search Console 0
Beppe2 Visualizzazione sottotitoli video HTML e CSS 2
F Problemi di visualizzazione di un sito su più browser WordPress 0
S Problemi di visualizzazione form contatti sito web HTML e CSS 2
Y Problema visualizzazione PDF generato da fpdf PHP 1
gandalf1959 Youtube e possibilità di visualizzazione delle playlist HTML e CSS 0
P Cambiare visualizzazione con JS Javascript 1
L Mancata visualizzazione di icone su button PHP 0
F [PHP] Visualizzazione video PHP 3
R Visualizzazione tabella Mysql MySQL 0
R anomalia nella visualizzazione tabella mysql MySQL 1
Giacomo Boccherini Impedire la visualizzazione portrait per alcune mediaqueries jQuery 1
gandalf1959 Estrazione e visualizzazione del simbolo dell'euro php/mysqli PHP 0
M Problema visualizzazione colori in photoshop Photoshop 0
Spown [WordPress] Problemi visualizzazione su più browser + voci menu in movimento WordPress 1
R Visualizzazione elementi Access MS Access 2
D [Photoshop] Visualizzazione a Monitor tasti ALT e CTRL Photoshop 0
Andrea_Ventura [HTML] Problemi con visualizzazione Navigation Bar HTML e CSS 10
M [HTML] Problema visualizzazione immagini su dispositivi HTML e CSS 4
B Visualizzazione interfaccia grafica photoshop cs 5 Photoshop 1
Z [HTML] aiuto per visualizzazione su tablet Offerte e Richieste di Lavoro e/o Collaborazione 6
G [PHP] Visualizzazione errata immagini PHP 3

Discussioni simili