Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Cicli for annidati

  1. #1

    Cicli for annidati

    Ciao ragazzi, dovrei annidare due cicli for, ecco il codice che ho fatto

    for($i = 0; $i < $righe; $i++) {

    for ($i = 1; $r = @mysql_fetch_array($res); $i++) {

    Uno mi serve per dividere i dati in più colonne e l'altro per un conteggio, mettendo le due variabili $i uguali funziona ma se cambo il secondo ciclo così non funziona nulla

    for($i = 0; $i < $righe; $i++) {

    for ($x = 1; $r = @mysql_fetch_array($res); $x++) {

    Come posso fare?

    Ciao

  2. #2
    Ciao,

    secondo me è sbagliato proprio la logica del secondo for, di solito nel for si fa riferimento ad un'unica variabile, come nel primo caso.
    Per scorrere i risultati di una query conviene utilizzare un while, quindi:
    Codice PHP:
    while($r mysql_fetch_array($res)) {
    istruzioni...
    ....

    Molto probabilmente il tuo secondo for non ha mai fine.
    Forse conviene che posti anche il codice presente all'interno dei 2 for.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  3. #3
    Si uso sempre il while, solo che mi serve per fare un conteggio cmq ecco il codice

    Codice PHP:

    <?php
    $colonne 
    2;
    $position_banner 4
    $sql "SELECT * FROM giochi_files WHERE cat_id != 'sexy'  ORDER BY id_gioco DESC LIMIT 20";

    $res = @mysql_query($sql);


    if((
    $righe = @mysql_num_rows($res))>0)
      {

      echo 
    "<table border='0' align='center' width='600' cellpadding='0' cellspacing='0'>";


      for(
    $i 0$i $righe$i++) {
          
    for (
    $i 1$r = @mysql_fetch_array($res); $i++) {
         
      if(
    $i $colonne == 0) {
      echo 
    "<tr>\n";
      }
         
    $id=$r['id_gioco'];
    $nome=$r['nome'];
    $nome_ str_replace(" ""_"$nome);
    $descrizione=$r["descrizione"];
    $immagine=$r['screenshot_path'];
    $file_path=$r['file_path'];
    $cat_id=$r['cat_id'];
    $data=$r['data'];
    $cat_id_ str_replace("_"" "$cat_id);



      echo 
    "<td width='290' valign='top' align='left' height='90'>"


    ?>

    <div id="box_gioco">

    <div id="box_gioco_img">[url="<? echo "]/giochi-gratis-flash/<? echo "$cat_id"; ?>/<? echo "$id"; ?>_<? echo "$nome_"; ?>.html">[img]<? echo [/img]/images/giochi-flash/<? echo "$immagine"?>" border="0" title="giochi online gratis <? echo "$nome"?><? echo "$cat_id"?>" width="90px" height="67px;" />[/url]</div>

    <div id="box_gioco_desc">
    <div id="box_gioco_tit">[url="<? echo "]/giochi-gratis-flash/<? echo "$cat_id"; ?>/<? echo "$id"; ?>_<? echo "$nome_"; ?>.html" class="box_gioco_tit" title="giochi online gratis <? echo "$nome"; ?>, <? echo str_replace("_", " ", $cat_id); ?>"><? echo htmlentities($nome); ?>[/url]</div>
    <div id="box_gioco_tit" style="font-size:10px; color:#999999">
    [b]Categoria:[/b] <a href="<? echo "$url"?>/giochionline/<? echo "$cat_id"?>" title="giochi flash <? echo "$cat_id"?>, giochi gratis <? echo "$cat_id"?>" class="box_gioco_cat"><?
    if($cat_id == 'abilita')
    {
    $cat_id="Abilit&agrave;";
    $cat_id_ str_replace("_"" "$cat_id);
    }
    echo 
    ucwords($cat_id_); ?>
    </a> - <?php echo "$data"?>
    </div>
    <p style="font-size:11px;"><? echo TagliaStringa("$descrizione"100); ?></p>
    </div>
    </div>


    <?
    echo "</td>\n";
      if((
    $i $colonne) == ($colonne 1) || ($i 1) == $righe) {
      echo 
    "</tr>\n";
      }
      
     }
      echo 
    "</table>\n";
    }
      
    }


    ?>

  4. #4
    Ma il tuo problema è che non ti stampa bene le righe?
    Se è così prova in questo modo:

    Codice PHP:
    for($x 0$r = @mysql_fetch_array($res); $x ++) {
                
                if (
    $x $colonne == 0) {
                    echo 
    "<tr>\n";
                }
            } 
    Cioè nel secondo for utilizza la variabile x, ma la fai partire da 0, altrimenti ti stamperà il tr nella posizione sbagliata.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  5. #5
    Avevo già provato ma così non mi divide in due colonne Non so proprio dove sbattere la testa

  6. #6
    Ma cosa vuoi ottenere?

    Che ogni riga presente nella tabella del db diventi una riga nella tabella html? ed ovviamente la stessa cosa per le colonne.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  7. #7
    No mi servirebbe che quando il la variabile $x è uguale ad un'altra variabile che ho prefissato mi viene mostrata un'immagine..

    Per dire dopo tot dati estratti mi appare un'immagine

  8. #8
    Però dal codice postato vedo che l'immagine viene stampata sempre, se è questa l'immagine alla quale ti riferisci.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  9. #9
    No no quella è un'altra immagine, li manda il codice cioè un if che mi dice se le due variabili sono uguali mi stampa il codice

  10. #10
    Be allora controlla bene quel codice, perchè quello che hai postato ( a patto che utilizzi una variabile diversa nel secondo for e che la inizializzi a 0) sembra funzionare.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

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.