Dopo la mucca pazza ecco la tabella pazza

  • Creatore Discussione Creatore Discussione Monital
  • Data di inizio Data di inizio

Monital

Utente Attivo
15 Apr 2009
778
2
18
Allora sto epr buttare all'aria pc e compagnia bella:

Partiamo dall'inizio

ho usato il sistema per intabellare dei dati preso paro paro da questo link

https://www.mrw.it/php/articoli/paginazione-dati-estratti-db-mysql_455.html

ora il problema nasce da quando ho modificato il tutto usando questi suggerimenti molto utili

http://forum.mrwebmaster.it/mysql/31908-risparmiare-spazio-database.html#post121878

adesso qua il ciambotto.

ora prima che inizia a venir seul serio giu qualche santo. mi aiutate a intabellare usando la join?

per farla breve che nonc e la faccio manco più a spiagare prendendo l'esempio del primo link io ho

PHP:
"<td>" . $row['nome'] . "</td>";
    echo "<td>" . $row['cognome'] . "</td>"; 
"<td>" . $row['paese'] . "</td>";
    echo "<td>" . $row['nazione'] . "</td>";

questi 4 dati sotto forma di id_numero

da recuperare in due tabelle diverse una tabella user ed una tabella geo.

ho provato di tutte le sante maniere ma non e vereso di farla intabellare correttamente

inutile dire che l'esempio funziona perfettamente ma ovviamente mi intabella gli id

nome|cognome|paese|nazione
1|10|50|58

etc.

ma come inserisco una select join all'interno per recuperare ilnome o il cognome o la nazione salta tutta la tabella

per favore aiuto
 
ciao
è un po' poco per aiutarti. come sono le due tabelle che vuoi joinnnare? e che cosa, in funzione dell'una, tirare fuori dalla'altra?
 
ciao
è un po' poco per aiutarti. come sono le due tabelle che vuoi joinnnare? e che cosa, in funzione dell'una, tirare fuori dalla'altra?

allora

questa è la query di esempio in realta ha anche qualche altra condizione(AND) ma è per abbreviare

PHP:
$rs = mysql_query("SELECT * FROM tabella_barbapapà WHERE valore=".$id_valore." ORDER by data DESC LIMIT $first, $x_pag ");
    while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)) {
   echo "<tr>";
echo "<td><span class=\"class\"><center>".$row['username']." - ".$row['cognome']."</span><br><span class=\"class\"><center>".$row['paese']." - ".$row['nazione']."</span></td>";

etc

adesso sia $row['username'] che .$row['cognome'] che $row['paese'] $row['nazione']

ora sti 4 sono sotto forma di numero che altro non sono che gli id

username e cognome sono rpesenti nella tabella tab_nomiinteri mentre paese e nazione sono presenti in tab_geo
 
ciao
dovresti dire come è fatta la tabella tabella_barbapapa e come si collega alle altre, es
id
data
id_utente //si riferisce all'id dell'utente in tabella tab_nomiinteri?
id_localizzazione //si riferisce all'id della localizzazione in tabella tab_geo?
comunque se è (circa) così per estrarre un elenco fatto simile a
22 ott 2012) nome: Pinco cognome: Pallo nazione: Burundi paese: Krakatoa
ecc...
la query di select dovrebbe essere simile a questa (a parte la paginazione)
PHP:
<?php
//......
$query="SELECT * FROM tabella_barbapapa AS b, tab_nomiinteri AS n, tab_geo AS g
WHERE b.id_utente = n.id AND b.id_localizzazione=g.id ORDER BY b.data";
$rs=mysql_query($query);
while($riga=mysql_fetch_array($rs)){
	echo $riga['b.data'].") nome: ".$riga['n.nome']." cognome: ".$riga['n.cognome']." nazione: ".$riga['g.nazione']." paese: ".$riga['g.paese']."<br />";
}
//....
?>
gurda che è un esempio (tra l'altro ho messo i nomi dei campi a caso)
non mi maledire se non funzia
 
ciao
dovresti dire come è fatta la tabella tabella_barbapapa e come si collega alle altre, es

comunque se è (circa) così per estrarre un elenco fatto simile a
id
data
id_utente //si riferisce all'id dell'utente in tabella tab_nomiinteri?
id_localizzazione //si riferisce all'id della localizzazione in tabella tab_geo?

si è esattamente cosi

cmq dopo provo la tua query anche se nutro qualche dubbio e non preoccuparti le maledizioni le ho finite tyutte ieri
 
niente difatti non funge

però perlomeno ha tirato fuori tutte le righe ma senza niente dentro

poi comunque ho riscontrato un altro problema

nella tabella barbapapa c'è anche un campo diciamo "soprannome" che porta gli stessi id della tabella nome

cmq dovrei risucirci perlomeno spero
 
niente difatti non funge

però perlomeno ha tirato fuori tutte le righe ma senza niente dentro

poi comunque ho riscontrato un altro problema

nella tabella barbapapa c'è anche un campo diciamo "soprannome" che porta gli stessi id della tabella nome

cmq dovrei risucirci perlomeno spero

ok rimangio quello appena detto è andata togliendo il suffisso da dentro $riga ad esempio

$riga['n.username'] ho messo sempliecmente $riga['username'] el'ha preso

tranne per il caso del campo che mi porta gli stessi id

tipo ho

il campo nome e soprannome dove nome ha id 50 e soprannome id 75 ma entrambi portano alla stessa tabella id_nomi dove c'è il campo username correlato all'id

quindi in quel caso con $riga['username'] logicamente mi riporta per soprannome o stesso nome di nome

che casino
 
ciao
forse ragioniamo meglio se posti il dump delle tabelle

in che senso il dump delle tabelle?

cmq sia mentre rispondi ti spiego velocemente

tabella barbapapà

id_nome|id_nome2|nazione|nazione2|citta
10|20|52|105 ///sulla stessa riga ho due nomi

tab_nomiinteri
id_nome|nome
10|Paolo
etc.
20|ginaluca

ora listando con la tua query se devo mettere in riga

paolo - gianluca svezia - romania
PHP:
$riga['nome']."-".$riga['nome']. " " //etc

ovviamente mi da

Paolo - Paolo e svezia svezia

il resto dei campi fungono correttamente
 
ciao
ci sei andato vicino
tabella barbapapa
Codice:
id
data
id_utente //si riferisce all'id dell'utente in tabella tab_nomiinteri
id_localizzazione //si riferisce all'id della localizzazione in tabella tab_geo
c'è altro?

tab_nomiinteri
Codice:
id
nome
c'eltro?

tabella tab_geo
Codice:
id
nazione
c'è altro?

poi cosa intendi con:
a) nella tabella barbapapa c'è anche un campo diciamo "soprannome" che porta gli stessi id della tabella nome
b) il campo nome e soprannome dove nome ha id 50 e soprannome id 75 ma entrambi portano alla stessa tabella id_nomi dove c'è il campo username correlato all'id
se non si capiscono i collegamenti tra le tabelle è difficile fare le join
poi anche qui
$riga['nome']."-".$riga['nome']. " " //etc
è evidente che salta fuori pinco - pinco usi sempre la stessa variabile, se il primo campo è si chiama "nome" nella tabella A e nome nella tabella B bisogna distinguerli
 
ciao

poi cosa intendi con:
a) nella tabella barbapapa c'è anche un campo diciamo "soprannome" che porta gli stessi id della tabella nome
b) il campo nome e soprannome dove nome ha id 50 e soprannome id 75 ma entrambi portano alla stessa tabella id_nomi dove c'è il campo username correlato all'id
se non si capiscono i collegamenti tra le tabelle è difficile fare le join
poi anche qui
$riga['nome']."-".$riga['nome']. " " //etc
è evidente che salta fuori pinco - pinco usi sempre la stessa variabile, se il primo campo è si chiama "nome" nella tabella A e nome nella tabella B bisogna distinguerli

i nomi_interi

ci sono altri 4 campi tipo online data etc. ma contengono dati che vengono rpesi nella pagina di login e non c'entrano con barbapapà

mentre nazione contiene solo id e nome

nella tabella barbapapa ci sono altri campi tipo la data etc. ma venogno epscati correttamente.

a)ho sbagliato esempio era più preciso il punto b

b) in questo caso però io borrei tenere un unica tabella con id e nome dell'utente

in sostanza barbapapà contiene dei confronti fra utenti quindi su una riga ho sia l'id di utenteA che l'id di utenteB, ovviamente avendo un solo $riga['nome'] lui prende il primo e mi da sempre quello di utenteA e purtroppo(immagino sia quelloa cui tu pensavi) non ho altri campi su cui fare un confronto erp distinguere utenteA da utenteB

credo dovrei fare due select una chemi tira fuori i dati dell'utenteA ed una che mi tira fuori i dati dell'utenteB il problema sarà intabellarli

però questa query è fantastica ed ho fatto un grosso passoa vanti

faccio una prova e ti so dire
 
ok sono uffcialmente un genio

:rolleyes::rolleyes:

vabbè scherzi a parte credo che buona aprte dei progammatori seri si rivolterannoa vedere ciò ma anche se arronzata ho sputato così sangue su questa tabella che epr il momento posso anche accettarla

questa è la tua select

PHP:
//......
$query="SELECT * FROM tabella_barbapapa AS b, tab_nomiinteri AS n, tab_geo AS g
WHERE b.id_utente = n.id AND b.id_localizzazione=g.id ORDER BY b.data";
$rs=mysql_query($query);
while($riga=mysql_fetch_array($rs)){
    echo $riga['b.data'].") nome: ".$riga['n.nome']." cognome: ".$riga['n.cognome']." nazione: ".$riga['g.nazione']." paese: ".$riga['g.paese']."<br />";
}
//..

che ho modificato cosi

PHP:
//......
$query="SELECT * FROM tabella_barbapapa AS b, tab_nomiinteri AS n, tab_geo AS g
WHERE b.id_utenteA = n.id AND b.id_localizzazioneA=g.id ORDER BY b.data";
$rs=mysql_query($query);
while($riga=mysql_fetch_array($rs)){

   $query="SELECT * FROM tabella_barbapapa AS b, tab_nomiinteri AS n, tab_geo AS g
   WHERE b.id_utenteB = n.id AND b.id_localizzazioneB=g.id ORDER BY b.data";
   $rs=mysql_query($query);
   while($ROW=mysql_fetch_array($rs)){

    echo $riga['data'].") utenteA: ".$riga['username']." utenteB: ".$ROW['username']." nazioneA: ".$riga['nome']." nazioneB: ".$ROW['nome']."<br />";
}
}
//..

che furbata eh?


Programmatori seri perdonatemi è stata la disperazione a farmi fare ciò

:crying:

p.s

però funge
 

Discussioni simili