Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Select PHP

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2014
    Messaggi
    12

    Select PHP

    Salve a tutti,
    Vi pongo questo problema.

    Un db con 2 tabelle, anagrafica ed un altra consegne.

    nella tabella anagrafica c'è il campo, nome e cognome invece nella tabella consegne c'è la tabella data e consegne,
    Quando vado a fare la select per estrarmi i dati da entrambe le tabelle funziona.

    Il mio problema e che, vorrei avere una visione di tutti gli utenti inseriti nel DB e visualizzare solamente l ultima consegna scritta
    La tabella anagrafica ha id auto_increment, e la tabella consegne prende l' id dalla tabella anagrafica.
    le due tabelle sono collegate tramite l' id.


    vi posto il codice:

    <?php
    include 'db.php';




    $cur = mysql_query ("
    SELECT anagrafica.id, anagrafica.cognome, anagrafica.nome, consegne.consegne, consegne.data, consegne.note
    FROM anagrafica, consegne WHERE anagrafica.id = consegne.id


    ");






    echo "
    <table border>
    <tr><th>id<th>Cognome<th>Nome<th>Consegne <th>Data<th>Note<th>Modifica
    ";
    while ($riga = mysql_fetch_assoc($cur)){
    echo "
    <tr><center>
    <td>$riga[id]<td>$riga[cognome]<td>$riga[nome]<td>$riga[consegne]<td>$riga[data]<td>$riga[note]<td><a href='consegne.php?id=$riga[id]' onclick=\"return(confirm('Sicuro di voler modificare la visita di $riga[2] $riga[3]'))\" > <center><img src=\"modifica.gif \"> </a> ";
    }
    echo "</table>";


    mysql_close($conn);
    ?>


  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    79
    Vuoi due query staccate, una che faccia vedere tutti gli utenti e un'altra query che ti faccia vedere l'ultima consegna inserita?
    Se è questo quello che vuoi (se ho invece capito male, scusa in anticipo)
    Nel primo caso dovrebbe bastarti una SELECT * FROM ANAGRAFICA (oppure SELECT Nome o cognome..quello che vuoi)
    e la seconda puoi fare:
    SELECT quellochevuoi FROM CONSEGNE ORDER BY campoidconsegne DESC LIMIT 1
    e dovrebbe stamparti solo la prima riga della tabella che sarà quella con ID più alto ovvero l'ultimo id inserito associato ad una consegna, in quanto autoincrementante.

    Fammi sapere!
    Ultima modifica di JErikaM; 23-09-2014 a 17:44

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2014
    Messaggi
    12
    Ok, ma se io metto limit 1, mi mostra soltando 1 record per tutti in base alle prove che ho fatto,
    con due query poi non saprei come unirle.

    Invece con 1 sola query non è possibile?

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Scusa , ma qual'è il senso di questo?

    WHERE anagrafica.id = consegne.id


  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Prova con query tipo questa
    Select a.*, (select dataconsegna from consegne where idconsegna = a.id order by dataconsegna desc limit 1) as data from anagrafica a

    Non testata

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2014
    Messaggi
    12
    Quote Originariamente inviata da boots Visualizza il messaggio
    Scusa , ma qual'è il senso di questo?

    WHERE anagrafica.id = consegne.id

    Se non mettevo questo WHERE mi triplicava i record mettendoli tutti uguali, in questo modo va a prendere i record da ambedue le tabelle

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2014
    Messaggi
    12
    Quote Originariamente inviata da clasku Visualizza il messaggio
    Prova con query tipo questa
    Select a.*, (select dataconsegna from consegne where idconsegna = a.id order by dataconsegna desc limit 1) as data from anagrafica a

    Non testata
    Penso di aver risolto, modificando al tua query in questo modo

    Select a.*, (select consegne data from consegne where id = a.id order by data desc limit 1) as data from anagrafica a


    faccio delle prove e vi faccio sapere

  8. #8
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Quote Originariamente inviata da killu Visualizza il messaggio
    Se non mettevo questo WHERE mi triplicava i record mettendoli tutti uguali, in questo modo va a prendere i record da ambedue le tabelle
    Si ma di solito, nelle relazioni 1-N nella seconda tabella si inserisce la chiave esterna che fa riferimento all'id della prima tabella.
    anagrafica (id, nome, ...)
    consegne (id, ..., anagrafica_id)

    mettere anagrafica.id = consegne.id non ha senso

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