Visualizzazione risultati 1 fino 8 di 8

Discussione: [MySQL, PhP] 4 celle e a capo

  1. #1
    risorsenet non è connesso Utente giovane
    Data registrazione
    16-06-2003
    Messaggi
    30

    Predefinito

    Ciao, ho un database mysql contente i percorsi delle immagini di una cartella, titoli, descrizioni, etc...
    vorrei visualizzare queste immagini più qualche info in una tabella tipo 4x4 ma non riesco a capire come fare per fargli fare 4 celle e poi andare a capo, spero di essermi spiegato

    Il codice che ho ora è questo ma così non va mai a capo!!??!!

    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <?php
    include("config.inc.php");
    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore durante la connessione con il database.");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database.");
    $risultati = mysql_query("SELECT * from $table");
    while($riga = mysql_fetch_array($risultati)){

    echo("
    <td width=\"25%\"><div align=\"center\">
    <h6><a href=\"scat_img.php?id=".$riga['id']."\">
    <img src=foto/prev/".$riga['url']." border=\"0\"></a><br>
    ".$riga['genere']."<br>
    ".$riga['specie']."<br>
    ".$riga['scattata']."</h6></div></td>
    ");

    }
    ?>
    </tr>
    </table>


    Grazie a tutti

  2. #2
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Allora prima di tutto ti conviene gestire i TR all'interno del while. E poi, sempre all'interno del while ti incrementi un contatore (da 0 a 3), appena vedi che è > 3 lo riazzeri:
    se il contatore è 0 aggiungi <TR> prima del contenuto da generare;
    se il contatore è 3 aggiungi </TR> dopo il contenuto generato;

    ti tocca tener traccia di quando sei andato a capo con un flag, perché se finisci gli elementi e sei a "metà" riga devi chiudere il tr oppure gestire le eventuale celle vuote.
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  3. #3
    risorsenet non è connesso Utente giovane
    Data registrazione
    16-06-2003
    Messaggi
    30

    Predefinito


    mmm, sono alle prime armi con php, lo script precedente l'ho adattato da uno esistente, mi potresti aiutare con il codice?

    thanks

  4. #4
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Ecco, l'ho scritto di getto senza testarlo ma penso sia ok, l'intervento come vedi è minimo:

    [code:1:3100e1d061]<table width="100%" border="0" cellspacing="0" cellpadding="0">
    <?php
    include("config.inc.php");
    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore durante la connessione con il database.");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database.");
    $risultati = mysql_query("SELECT * from $table");

    $wrapped = false;
    $cell = 0;
    while($riga = mysql_fetch_array($risultati)){
    if ($cell==0)
    echo "<tr>";
    echo("
    <td width=\"25%\"><div align=\"center\">
    <h6><a href=\"scat_img.php?id=".$riga['id'& #93;."\">
    <img src=foto/prev/".$riga['url']." border=\"0\"></a><br>
    ".$riga['genere']."<br>
    ".$riga['specie']."<br>
    ".$riga['scattata']."</h6></div></td>
    ");
    if ($cell==3){
    echo "</tr>";
    $cell=0;
    $wrapped=true;
    }else{
    $cell++;
    $wrapped=false;
    }
    }
    if (!$wrapped){
    echo "</tr>";
    }
    ?>
    </table> [/code:1:3100e1d061]

    Attenzione: non è gestito il caso in cui non vi sia NESSUN risultato, fammi sapere...
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  5. #5
    risorsenet non è connesso Utente giovane
    Data registrazione
    16-06-2003
    Messaggi
    30

    Predefinito

    GRANDEEE, funziona, ora sorge un'altro problema, mettiamo che ho 50 immagini di cui deve fare la preview, ne vorrei solo 16 per pagina, quindi dovrebbe creare un link sotto che porta alla pagina 2, 3 ecc.
    é una coda che devo digli nella query?


    Grazie

  6. #6
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    E' il classico discorso del "browsing" o della "paginazione dei risultati".
    Per ora sinceramente ho sempre evitato di farlo, ma sarà per poco perché è una cosa inevitabile in un sito.. perciò non posso assicurarti o spararti un codice già pronto..
    posso darti qualche dritta, alla fine di una query SQL puoi usare " ... LIMIT 0, 15" in questo modo puoi paginare via sql (e penso sia il più ottimizzato dei metodi ma ti ho detto non ho la certezza.
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  7. #7
    risorsenet non è connesso Utente giovane
    Data registrazione
    16-06-2003
    Messaggi
    30

    Predefinito

    ho trovato sul forum di un'altro sito il codice che serve,
    qualche semplice riga che va a richiamare una funzione.

    http://forum.guidoz.it/viewtopic.php?t=451



    bye

  8. #8
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    ..e infatti :)
    usa il " LIMIT da, a" alla fine della query sql.
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •