Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: insert in campi vuoti?

  1. #1

    insert in campi vuoti?

    Ciao, mi sono arenato su un problemino

    Ho una tabella composta da 11 colonne, la prima chiamata "user" le
    altre "preferiti1", "preferiti2" "preferiti3" ecc ecc.
    come deve essere la query per dirgli di inserire la variabile passata da un'altra pagina nel
    primo campo "preferiti" libero?

    ESEMPIO
    l'utente pippo ha selezionato 2 preferiti: se non ne aveva mai selezionati dovranno essere messi
    in preferiti1 e preferiti2, se invece già ce n'erano deve inserirli nei primi 2 liberi.

    Chi mi sa aiutare please???
    fgualaz
    http://risorsenet.altervista.org

    Non importa da dove vieni, l'importante è dove stai andando!

  2. #2
    non so cosa sono questi "preferiti" (mi ricordano i Boeri) ma una tabella cosi' non e' corretta.

    Se i preferiti sono oggetti condivisi da tutti gli users allora dovresti fare una tabella preferiti ed associare l'id preferito allo user.

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

  3. #3
    Esatto, infatti quel tipo di tabella diventa difficile da gestire e ha delle evidenti limitazioni oltre a sprecare risorse. Una volta che decideari che invece di 11 preferiti vorrai estenderli a 100 che fai?

    Un Alter Table tu mi dirai. Però questa non è la soluzione.
    Non puoi pretendere qualcosa da Google, dovresti pretenderlo dalla RAI

    webalizer tips | aggiungi un sito | Berlusconi counter

  4. #4
    Non credo di aver capito...
    L'utente una volta loggato può salvarsi una sua lista di amici che sono appunto questi preferiti e sono limitati a 10.

    Io pensavo di inserirli in un'apposita tabella dove ogni volta che ne aggiunge o rimuove uno faccio l'update in base al suo nome utente (o alla sua id).
    fgualaz
    http://risorsenet.altervista.org

    Non importa da dove vieni, l'importante è dove stai andando!

  5. #5
    up!
    fgualaz
    http://risorsenet.altervista.org

    Non importa da dove vieni, l'importante è dove stai andando!

  6. #6
    nessuno ha suggerimenti o altro che mi possa aiutare?
    fgualaz
    http://risorsenet.altervista.org

    Non importa da dove vieni, l'importante è dove stai andando!

  7. #7
    Si,
    allora ti consiglio vivamente di segure i consigli che ti hanno dato gli altri utenti.
    Dalla tabella "utenti" cancella i campi "preferiti1,preferiti2,....preferiti n" in modo che rimangano solo quelli relativi all'utente.
    Crea quindi un'altra tabella "siti_preferiti" con tre campi

    • ID_url (chiave primaria, auto increment)
    • ID_utente
    • url


    In questa tabella inserirai gli url preferiti dei tuoi utenti, badando in inserire in ID_utente l'id dell'utente del quale vuoi aggiungere un sito preferito.

    Per evitare che gli utenti inseriscano più di 10 url, prima di effettuare l'inserimento esegui un controllo del tipo

    SELECT COUNT(ID_utente) WHERE ID_utente=$id_da_controllare

    che ti restituirà il numero effettivo di url inseriti.
    Per ricavare tutti i siti preferiti di un utente ti basterà una query del tipo:

    SELECT url WHERE ID_utente=$id_da_controllare

    Tutto chiaro?


    Ciao,
    Riccardo

  8. #8
    Originariamente inviato da Petelicchio
    Si,
    allora ti consiglio vivamente di segure i consigli che ti hanno dato gli altri utenti.
    Dalla tabella "utenti" cancella i campi "preferiti1,preferiti2,....preferiti n" in modo che rimangano solo quelli relativi all'utente.
    Crea quindi un'altra tabella "siti_preferiti" con tre campi

    • ID_url (chiave primaria, auto increment)
    • ID_utente
    • url


    In questa tabella inserirai gli url preferiti dei tuoi utenti, badando in inserire in ID_utente l'id dell'utente del quale vuoi aggiungere un sito preferito.

    Per evitare che gli utenti inseriscano più di 10 url, prima di effettuare l'inserimento esegui un controllo del tipo

    SELECT COUNT(ID_utente) WHERE ID_utente=$id_da_controllare

    che ti restituirà il numero effettivo di url inseriti.
    Per ricavare tutti i siti preferiti di un utente ti basterà una query del tipo:

    SELECT url WHERE ID_utente=$id_da_controllare

    Tutto chiaro?


    Ciao,
    Riccardo
    Grazie della risposta, anche se sono sempre più convinto che la mia domanda è stata posta male perchè non riesco a far capire quello che in realtà devo fare.
    Per primo c'è già una tabella apposta, il primo campo (chiamato da me user) potrebbe essere anche id, è lo stesso e serve per associare un utente a questi benedetti preferiti (che in realtà non sono url) ma contatti di amici.
    Ogni utente ha una sua chiamiamola "rubrica dei contatti".
    In questa rubrica lui può inserire un massimo di 10 "utenti amici/preferiti"

    Ora il mio problema è come fare per gestire questi 10 preferiti visto che non saranno aggiunti tutti insieme, ma magari ne inserisce 2, poi ne cancella uno e ne agginge 3 ecc. ecc. fino ad un massimo di 10.

    Spero che tutta questa pappardella sia servita a farvi capire il mio problema.

    byeeee
    fgualaz
    http://risorsenet.altervista.org

    Non importa da dove vieni, l'importante è dove stai andando!

  9. #9
    Originariamente inviato da fgualaz
    Grazie della risposta, anche se sono sempre più convinto che la mia domanda è stata posta male perchè non riesco a far capire quello che in realtà devo fare.
    Per primo c'è già una tabella apposta, il primo campo (chiamato da me user) potrebbe essere anche id, è lo stesso e serve per associare un utente a questi benedetti preferiti (che in realtà non sono url) ma contatti di amici.
    Ogni utente ha una sua chiamiamola "rubrica dei contatti".
    In questa rubrica lui può inserire un massimo di 10 "utenti amici/preferiti"

    Ora il mio problema è come fare per gestire questi 10 preferiti visto che non saranno aggiunti tutti insieme, ma magari ne inserisce 2, poi ne cancella uno e ne agginge 3 ecc. ecc. fino ad un massimo di 10.

    Spero che tutta questa pappardella sia servita a farvi capire il mio problema.

    byeeee
    Ok, ho capito il tuo problema ma il metodo risolutivo è lo stesso quello che NON devi fare è inserire vicino al campo "utente" tanti campi "amico1", "amico2" etc "amico100" perchè capirai bene che non è una gran scelta in quanto crea problemi di inserimento cancellazione modifica etc etc... come quello che hai presentato nel primo post che non è di risoluzione tanto facile

    Quello che devi fare è creare un ulteriore tabella "amici" in cui metti in relazione due ID utente.

    Per aggiungere un amico (con id 33) all'utente con id 75 creerai un nuovo record in questa tabella in cui nel campo ID_utente scriverai '75' e nel campo ID_amico scriverai '33'.
    Semplice no?

    Quando vorrai cancellare un amico basterà fare un DELETE FROM AMICI WHERE ID_utente=$id_utente_richiedente AND ID_amico=$id_amico_da_cancellare

    Chiaro?

    Ciao!
    Riccardo

  10. #10
    Originariamente inviato da Petelicchio
    Ok, ho capito il tuo problema ma il metodo risolutivo è lo stesso quello che NON devi fare è inserire vicino al campo "utente" tanti campi "amico1", "amico2" etc "amico100" perchè capirai bene che non è una gran scelta in quanto crea problemi di inserimento cancellazione modifica etc etc... come quello che hai presentato nel primo post che non è di risoluzione tanto facile

    Quello che devi fare è creare un ulteriore tabella "amici" in cui metti in relazione due ID utente.

    Per aggiungere un amico (con id 33) all'utente con id 75 creerai un nuovo record in questa tabella in cui nel campo ID_utente scriverai '75' e nel campo ID_amico scriverai '33'.
    Semplice no?

    Quando vorrai cancellare un amico basterà fare un DELETE FROM AMICI WHERE ID_utente=$id_utente_richiedente AND ID_amico=$id_amico_da_cancellare

    Chiaro?

    Ciao!
    Riccardo
    Ok, chiaro!
    Una precisazione però, se questa comunità cresce e raggiunge mettiamo i 5000 utenti e tutti hanno 10 amici avremmo la tabella "amici" composta da 50000 righe.
    Non diventa poco gestibile poi quando devo fare una select del tipo:
    SELECT FROM AMICI id_amico WHERE ID_utente='75'
    fgualaz
    http://risorsenet.altervista.org

    Non importa da dove vieni, l'importante è dove stai andando!

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.