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

    Query MySQL... Andare a capo in tabelle...

    Ciao a tutti,
    ho un problema: ho un database che va a pescare delle foto e le intabella nella pagina. Ho necessità che le intabelli 4 per riga, e fin qui tutto ok. Il problema è come faccio a far si che dopo 4 TD nella tabella ci metta un <tr> e vada a capo?

    Questo è il mio script:

    <?PHP

    echo "<Table Border=\"0\" Width=\"100%\" Height=\"160\" Align=\"Center\" Cellpadding=\"0\" Cellspacing=\"0\">";


    $db = mysql_connect("$host", "$user_db", "$pass_db");

    $res = mysql_db_query ("$nome_db", "select*from foto LIMIT 0, 4");
    $num = mysql_num_rows ($res);

    if ($num ==0)
    echo "";

    for ($i=0; $i<$num; $i++)
    {
    $id_foto = mysql_result ($res, $i, "id_foto");
    $nome_file = mysql_result ($res, $i, "nome_file");

    echo "<Td Width=\"25%\" Valign=\"Top\">";
    echo "<Img Src=\"$nome_file\">";


    echo "</Td>";

    }


    echo "</Table>";

    ?>


    Così ho il limite 0,4 e mi pesca le prime 4... Ma vorrei non mettere nessun limite e invece farlo andare a capo automaticamente dopo 4 immagini e per un qualsiasi numero di immagini...

    Spero di essermi spiegato bene
    Grazie a tutti

    JuzamDjinn

  2. #2

  3. #3
    Ciao!

    Prova con l'operatore di modulo:

    Codice PHP:



    <?PHP

    echo "<Table Border=\"0\" Width=\"100%\" Height=\"160\" Align=\"Center\" Cellpadding=\"0\" Cellspacing=\"0\">";


    $db mysql_connect("$db_server","$db_root","$db_pass");

    $res mysql_db_query("$db_name""select * from foto");
    $num mysql_num_rows($res);

    if (
    $num ==0)
    echo 
    " ";

    echo 
    "\n\n\n<Tr>";

    for (
    $i=1$i<$num$i++)
    {

    $id_foto mysql_result ($res$i"id_foto");
    $nome_file mysql_result ($res$i"nome_file");

    echo 
    "<Td Width=\"25%\" Valign=\"Top\">";
    echo 
    "<Img Src=\"$nome_file\">";


        if(
    $i%4==0) echo "</Tr>\n\n<Tr>";

        else echo 
    "</Td>";

    }


    echo 
    "</Tr></Table>";

    ?>

  4. #4
    Ciao e grazie!
    Si, così in teoria funziona, ma mettendo $i=1 mi parte dalla seconda immagine e la prima non me la fa vedere... Poi effettivamente dopo 4 va a capo, ma non c'è un modo per vedere anche la prima?
    Se metto $i=0 mi fa vedere la prima in alto e poi va subito a capo con le successive 4...

  5. #5
    Hai ragione, scusa. In questo modo dovrebbe andare bene, anche se non penso che sia la soluzione ottima:

    Codice PHP:

    <?PHP

    echo "<Table Border=\"0\" Width=\"100%\" Height=\"160\" Align=\"Center\" Cellpadding=\"0\" Cellspacing=\"0\">";


    $db mysql_connect($db_server,$db_root,$db_pass);

    $res mysql_db_query($db_name"select * from foto");
    $num mysql_num_rows($res);

    echo 
    "\n\n\n<Tr>";

    for (
    $i=0$i<$num$i++)
    {

    $id_foto mysql_result ($res$i"id_foto");
    $nome_file mysql_result ($res$i"nome_file");

    echo 
    "<Td Width=\"25%\" Valign=\"Top\">";
    echo 
    "<Img Src=\"$nome_file\">";

        if((
    $i+1)%4==0) echo "</Tr>\n\n<Tr>";

        else echo 
    "</Td>";

    }


    echo 
    "</Tr></Table>";

    ?>

  6. #6
    Ecco ora funziona bene
    Grazie mille!! Avevo provato anche io a mettere il $i+1 ma non l'avevo impostato a "0" all'inizio... Grazie ancora!
    Forse non sarà la soluzione migliore, ma funziona e a me basta
    Alla prossima!
    Ciao!!!
    JuzamDjinn

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.