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

    Consiglio per l'impostazione di un record (Mysql)

    Ciao,
    scrivo per chiedere un consiglio in merito all'impostazione di una tabella Mysql. Allora devo realizzare una piccola directory, per il mio sito, la quale è suddivisa in varie categorie.
    Mediante uno script il link del sito, la descrizione e il titolo vengono memorizzati in un database mysql.
    Allora fino a questo momento io avevo utilizzato per ogni categoria una singola tabella, cioè essendo la directory costituita da 6 categorie io avevo utilizzato un record diverso per ogni categoria.

    Ora, poichè le mie conoscenze del PHP sono leggermente evolute (non abbastanza visto che sono qui a chiedere il vostro aiuto.. ) avevo pensato di strutturare la mia directory in questo modo:

    Creare solo 2 tabelle, una contenente la categoria e una contenente tutti i siti memorizzati e segnalati dagli utenti. Cioè avevo pensato di creare una tabella: categoria e una tabella directory e poi di farle interagire fra di loro.
    La motivazione di tutto ciò è che in questo modo riesco meglio a gestire il tutto, a differenza di prima che avevo 6 tabelle diverse, inoltre in questo modo mi risulta più semplice realizzare dei semplici script che mi visualizzano i siti più cliccati e gli ultimi siti inseriti.

    La mia domanda è questa:
    è consigliabile procedere in questo modo?? Realizzando solo due tabelle non appesantisco troppo il DB con conseguente rallentamento del sito? Tenete presente che lo script che visualizza gli annunci, li visualizza in funzione della categoria scelta (tramite l'interazione con la tabella categoria) andando a scegliere nella tabella directory solo i siti appartenenti alla categoria scelta.

    Ciao Ciao

  2. #2
    due tabelle bastano. Non e' corretto una tabella per categoria.


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

  3. #3
    Grazie per il tuo consiglio!
    Infatti avevo intuito che era inutile fare una tabella per ogni categoria, ma volevo esserne sicuro poichè io non sono molto esperto.

    Vorrei porre altre due domande, per risolvere ogni mio dubbio.

    1)Nella Tabella directory (quella che contiene il link, il titolo,ecc) vi è il campo conferma il quale mi serve per confermare, manualmente, la segnalazione di un sito. Ovvero se il valore del campo conferma è TRUE allora il sito viene visualizzato altrimenti il sito non verrà mai visulizzato. Io per effettuare la verifica di questo campo e quindi per effetuare la successiva stampa a video del sito, utilizzo una condizione IF, cioè faccio così:
    __________________________________________________ ______________
    ......
    $result = mysql_query($query, $db) or die(mysql_error());
    while ($row = mysql_fetch_array($result))
    {
    if ($row[conferma]== TRUE)
    {
    // Stampo Il link del sito, il titolo, la descrizione, ecc
    .......
    .......
    }
    }
    ......
    __________________________________________________ ________________

    E' corretto procedere in questo modo??? Esiste qualche altro modo più rapido o migliore di questo?

    2) La mia seconda domanda riguarda i tasti avanti e dietro che mi consentono di visualizzare i restanti siti. Allora io di solito conto prima tutti i record relativi alla categoria desiderata e poi divido per il numero di link da visualizzare (10) per ottenere così il numero di pagine che servono per contenere tutti i link della categoria selezionata.
    Per fare ciò uso lo script seguente:
    __________________________________________________ ______________
    <?
    $query = "SELECT count(*) AS tot FROM directory WHERE idcat='$cat' ";
    $result = mysql_query($query, $db);
    $row = mysql_fetch_array($result);
    $pages = intval(($row[tot]-1) / $step)+1;
    ?>
    __________________________________________________ _______________

    Il problema è che in questo modo lo script conta anche quei record che contengono i siti che ancora non sono stati confermati (per confermare io riempio con una lettera il campo conferma) e quindi mi genera delle pagine vuote. Cioè se per la categoria selezionata ci sono 30 record di cui solo 20 confermati, allora lo script comunque ne conta 30 e così mi crea tre pagine di cui l'ultima vuota perchè gli ultimi 10 siti non sono stati ancora confermati.
    Spero di essere stato chiaro... :master: :master:

    Come posso fare per evitare questo inconveniente e quindi effettuare la conta dei soli record che sono stati confermati??

  4. #4
    Mysql non ha campi bool true/false, per supplire si usa un campo TINYINT(1) con i valori 0 = false ed 1 = true.

    Quindi basta selezionare nel where la condizione di ricerca...

    WHERE campo = 1 per escludere sia dal conteggio che dall'estrazione i campi non confermati.



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

  5. #5
    Grazie 1000!!!
    Funziona tutto bene!!!

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.