Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    MYSQL - Integrare i valori di 2 campi della stessa tabella

    Salve!
    Qualcuno mi saprebbe aiutare?
    Posto il problema:
    dalla seguente query estraggo i dati qui sotto,
    ma vorrei associare l’ID al VALORE.
    In pratica nella riga col valore 2 il nome dovrà essere Caio e l’id 2 il numero 3
    E così via: valore 3 id 3 Sempronio numero 2.

    Ringrazio e porgo cordiali saluti

    ID NOME VALORE NUMERO

    1 Tizio 2 3

    2 Caio 3 2

    3 Sempronio 1 5

    4 Anonimo 5 7

    5 Alter 4 5


    Codice PHP:
    <?
    require('admin/error_inc.php');
    require(
    'config_top10_inc.php');
    ?>
    <html>

    <div align="center"><table width="168" border=0 cellspacing=0 cellpadding=3 bordercolor="#FFFFFF" bgcolor="#DDDDDD" id="table1">



    <? $refmysql_query("SELECT  id, name, valore, count(valore) as numero FROM user  GROUP By valore HAVING count(valore) > 0 and valore > 0  ORDER BY count(valore) DESC LIMIT 100");


    $i=1;
    while (
    $usermysql_fetch_array($ref)) {

    ?><?

    $variabile
    =0;

    echo 
    "<td width=\"40\"><font size=\"1\" face=\"Verdana\">" $user['id'] . "</font></td>";

    echo 
    "<td width=\"80\"><font size=\"1\" face=\"Verdana\">" $user['name'] . "</font></td>";
            
    echo 
    "<td width=\"40\"><font size=\"1\" face=\"Verdana\">" $user['valore'] . "</font></td>";

    echo 
    "<td width=\"40\"><p align=\"left\"><font size=\"1\" face=\"Verdana\">" $user['numero'] .  "</font></td></tr></div>";

    }

    echo 
    "</table></div>";

    echo 
    "</body></html>


    "
    ;

    ?>

  2. #2
    nulla capii - fa' un esempio

  3. #3
    Allora vediamo se riesco a farmi capire allegando una immagine della tabella

    http://uptiki.altervista.org/viewer....ff6tv8m6im.gif

    I dati di ref e num di ciascuna riga mi stanno bene
    ma devono essere associati in modo che id e name debbano corrispondere
    ad esempio nel primo rigo non deve visualizzarsi Tizio con id 1 ma l'utente XXXX con id 18
    e nel secondo rigo l'utente con id 1 corrispondente in questo caso a Tizio e così via, il ref deve corrispondere sempre all'ID.

    Per chiarire meglio il ref 18 è il classico ref=18 che si utilizza per conoscere da quale utente proviene una nuova iscrizione e nel primo rigo sta ad indicare che il ref 18 ha fatto iscrivere 7 utenti, ma il nome che spunta e l'id non corrispondono.
    il rigo 2 mi dice che l'utente con ref 1 ha portato 3 iscrizioni, ma anche in questo caso il nome e l'id non corrispondono

    Spero di essere stato chiaro
    Grazie
    Dario

  4. #4
    contortino, ma spero di aver capito. devi mettere la tabella in join con sé stessa, più o meno così

    SELECT T1.*, T2.*
    FROM Tabella T1 JOIN Tabella T2 On T1.Ref=T2.id

    poi selezioni cosa far vedere

    facce sape'

  5. #5
    Se te ne freghi dell'id e usi i REF ? ... l'id (messo in auto-incerement) è una cosa del database, parte da 1 e arriva a infinito...non capisco il tuo problema 0.o


    Al limite per farli corrispondere puoi stampare le cose in base ad una condizione, SE l'ID è uguale al REF stampi il nome.

  6. #6
    Ho provato la soluzione di optime ma non va forse perchè il problema è associare l'id con il ref e quindi con il nome

    Anche la soluzione di darkhero non mi risolve il problema in quanto i nomi associati rimangono errati.

    allego LA TABELLA DEL DATABASE
    http://uptiki.altervista.org/_alterv...5d4nwx5ewh.gif

    In pratica vorrei che risultasse:
    Michele 3 referenti (Gianluca, Claudio, alfredo)
    Maurizio 2 referenti (Alessio, Age)
    Gianluca 1 referente (Vincenzo)
    Giuseppe 1 referente (salvatore)
    Age 1 referente (nino)
    Giancarlo 1 referente (Giorgio)


    Senza l'associazione del nome riesco ad avere correttamente la seguente soluzione parziale:
    ID 18 Referenti n. 3
    ID 2 Referenti n. 2
    ID 1 Referenti n. 1
    ID 4 Referenti n. 1
    ID 11 Referenti n. 1
    ID 14 Referenti n. 1






    Codice PHP:
    <?
    require('admin/error_inc.php');
    require(
    'config_top10_inc.php');
    ?>
    <html>

    <div align="center"><table width="168" border=0 cellspacing=0 cellpadding=3 bordercolor="#FFFFFF" bgcolor="#DDDDDD" id="table1">



    <? $refmysql_query("SELECT  own, name,  count(own) as numero FROM user GROUP By own HAVING count(own) > 0 and own > 0 ORDER BY id DESC LIMIT 100");


    $i=1;
    while (
    $usermysql_fetch_array($ref)) {

    ?><?

    $variabile
    =0;


    if (
    $user['id'] = $user['own']) {
            
    print 
    "<td width=\"40\"><font size=\"1\" face=\"Verdana\">" $user['id'] . "</font></td><td width=\"40\"><font size=\"1\" face=\"Verdana\">" $user['name'] . "</font></td>";

    print 
    "<td width=\"40\"><font size=\"1\" face=\"Verdana\">" $user['own'] . "</font></td><td width=\"128\"><p align=\"left\"><font size=\"1\" face=\"Verdana\">" $user['numero'] .  "</font></td></tr></div>";        

    }

    }

    echo 
    "</table></div>";

    echo 
    "</body></html>


    "
    ;

    ?>

  7. #7
    prova ad usare group_concat() con i nomi.

    http://dev.mysql.com/doc/refman/5.0/...n_group-concat

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Anche con il group_concat() con i nomi

    NIENTE DA FARE

    Mi spuntano altri nomi ma non in relazione

    Chissa per quali ragioni
    Ringrazio CMQ tutti per l'interessamento.

    Nel caso ci fosse qualche altro suggerimento, ringrazio anticipatamente.
    Dario

  9. #9
    Utente bannato
    Registrato dal
    Dec 2012
    Messaggi
    679
    Non me ne intendo molto, dovrai chiedere a chi è più esperto.
    Tirando a indovinare direi
    codice:
    select t3.name,group_concat(t1.name),count(*)
    from tab t1 left outer join tab t2 on t2.id=t2.own,tab t3
    where t3.id=t1.own and t1.own>0 group by t1.own

  10. #10
    Risolto!!!
    Grazie franzauker2.0

    Mi hai dato un grosso suggerimento,

    e meno male che con tutta modestia
    Non me ne intendo molto, dovrai chiedere a chi è più esperto.
    Tirando a indovinare direi
    mi hai postato quasi tutta la stringa che occorreva
    (ho dovuto aggiungere solo alcuni valori e aggiustarne altri ed è andata alla grande)


    posto qui la stringa adattata alle mie esigenze


    Codice PHP:
    <? $refmysql_query("select t3.id,  t3.name,group_concat(t1.name),count(*) as numero from user t1 left outer join user t2 on t2.id=t2.own,user t3 where t3.id=t1.own and t1.own>0 group by t1.own ORDER BY count(*) DESC");

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 © 2025 vBulletin Solutions, Inc. All rights reserved.