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

    Output query ordinato per riga

    Ciao a tutti,
    ho un problema che a voi sembrerà banale ma non rieso a formattare l'output di una query in modo che i campi restituiti si ordinino in riga invece che in colonna.
    Mi spiego meglio, ho una query di questo tipo:

    ......
    $sql1= mysql_query("select * from s08c where idospite = $osp") or die (mysql_error());
    while ($row1 = mysql_fetch_array($sql1))

    {
    echo $row["nome"];
    } ?>

    L'output, ovviamente mi restituisce una colonna dove sono indicati tutti i nomi che soddisfano la query.

    Io vorrei fare in modo di ottenere i nomi uno di fianco all'altro.
    Secondo voi è possibile.
    Grazie in anticipo a tutti.
    Ignem audacia domo

  2. #2
    mi sa che più che problema PHP questo sia un "problema" html
    ovvero, secondo la teoria, il risultato di una select è un numero N di record, quindi in pratica N righe, ma è un risultato "astratto"
    quando poi vai a stampare i record sulla pagina html, chi ti vieta di mettere, per esempio, una " , " come separatore fra uno e l'altro anzichè un "a capo" ?

    quindi se nell'output della pagina come hai scritto tu c'è solo
    {
    echo $row["nome"];
    }
    allora i risultati verranno tutti in fila belli appiccicati in un'unica riga, ma se invece metti
    {
    echo $row["nome"]." , ";
    }
    per esempio, dovrebbero venir stampati separati da un paio di spazi e da una virgola.

    beh, questo ovviamente vale se questo "echo" non va a stampare dentro un blocco html delimitato da < pre >, se no addio !

  3. #3
    Ti ringrazio per la risposta, ma il problema non è separare i singoli record, ma formattarli in riga anziche in colonna come ordinato dal ciclo while.
    In pratica normalmente si ottiene :
    record1
    record2
    record3

    io vorrei ottenere :
    record1 record2 record3.
    Ho provato usando il ciclo for ma invece di affiancare i risultati li replica tante volte quante viene indicato nella condizione finale.
    Per chiarezza posto il codice:
    codice:
    ......
    <?php 
    $sql= mysql_query("select * from ospiti order by nome") or die (mysql_error());
    	while ($row = mysql_fetch_array($sql))
    		
    {
    ?>
    <div class="container"> 
     
    	<h2 class="trigger"><?php echo $row['nome'];?></h2> 
    	<div class="toggle_container"> 
    		<div class="block">
    		<?php
    		$osp=$row['idospite'];
    		 $sql1= mysql_query("select * from s08c where idospite = $osp") or die (mysql_error());
    	$num_record = mysql_num_rows($sql1);
    	$row1 = mysql_fetch_array($sql1)
    		
    ?>
    			<h3>Vai alla scheda dell'utente <?php echo $row['nome']?></h3> 
    			
    
    
    			
    
    		<table width="100%" border="0" cellspacing="0" cellpadding="0"> 
    
    <tr> 
    <?php for($i=1;$i<=$num_record;$i++){ 
     }?>
    </tr> 
     </table>  
    </p>
    <?php }?>
    	</div> 
    	</div> 
    		
    </div> 
       <?php 
    	}
    ?>
    </div>
    <?php 
    	}
    else 
    {?>
    Ignem audacia domo

  4. #4
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    tu vorresti che questo codice qua
    <h3>Vai alla scheda dell'utente <?php echo $row['nome']?></h3>
    fosse tutto su una riga?
    se sì, stai usando il TAG sbagliato.. h3 non te li metterà mai sulla stessa riga..
    forse così...
    Codice PHP:
    Vai alla scheda dell'utente [url="utente.php?id=<?php echo $row['idutente']?>"]<?php echo $row['nome']?>[/url] -
    però è in un div.. mmhh..

    e poi:
    cosa fa questo ciclo?
    <?php for($i=1;$i<=$num_record;$i++){
    }?>

  5. #5
    No hai perfettamente ragione maca un pezzo, quello che vorrei e che
    Codice PHP:
    <?php 
    $sql
    mysql_query("select * from ospiti order by nome") or die (mysql_error());
        while (
    $row mysql_fetch_array($sql))
            
    {
    ?>
    <div class="container"> 
     
        <h2 class="trigger">[url="#"]<?php echo $row['nome'];?>[/url]</h2> 
        <div class="toggle_container"> 
            <div class="block">
            <?php
            $osp
    =$row['idospite'];
             
    $sql1mysql_query("select * from s08c where idospite = $osp") or die (mysql_error());
        
    $num_record mysql_num_rows($sql1);
        
    $row1 mysql_fetch_array($sql1)
            
    ?>
                <h3>Vai alla scheda dell'utente [url="utente.php?id=<?php echo $row['idutente']?>"]<?php echo $row['nome']?>[/url]</h3> 
                


                

            <table width="100%" border="0" cellspacing="0" cellpadding="0"> 

    <tr> 
    <?php for($i=1;$i<=$num_record;$i++){ echo $row1['dataincalce'];
     }
    ?>
    </tr> 
     </table>  
    </p>
    <?php }?>
        </div> 
        </div> 
            
    </div> 
       <?php 
        
    }
    ?>
    </div>
    <?php 
        
    }
    else 
    {
    ?>
    e che
    Codice PHP:
    $sql1mysql_query("select * from s08c where idospite = $osp") or die (mysql_error());
        
    $num_record mysql_num_rows($sql1);
        
    $row1 mysql_fetch_array($sql1
    mi restituisse i valori corrispondenti non in colonna

    val1
    val2
    val3

    ma impaginati per riga

    val1 val2 val3

    Grazie e scusa per le imprecisioni
    Cris
    Ignem audacia domo

  6. #6
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    guarda che non è chiaro nemmeno ora..
    questo è sbagliato..
    Codice PHP:
    <tr> 
    <?php for($i=1;$i<=$num_record;$i++){ echo $row1['dataincalce'];
     }
    ?>
    perchè manca il td..
    dovrebbe essere
    Codice PHP:
    <tr> 
    <?php for($i=1;$i<=$num_record;$i++){ echo "<td>" $row1['dataincalce'] . "</td>";
     }
    ?>

  7. #7
    dunque, vedo di spiegarmi meglio,
    ho una query come quella qui sotto:
    Codice PHP:
    <?php
    $sql1
    mysql_query("select * from s08c where idospite = $osp") or die (mysql_error()); 
        
    $num_record mysql_num_rows($sql1); 
        
    $row1 mysql_fetch_array($sql1

    .....
    ?>
    ora se scrivo il comando :
    Codice PHP:
    <?php
    echo $row1['data'];
    ?>
    L'output visualizzato è per esempio:

    2010-01-01
    2010-01-13
    ecc.

    io vorrei ottenere un uotput formattato così:

    2010-01-01 2010-01-13 ecc.

    Per ottenere ciò o provato con:

    Codice PHP:
    <?php
     
    for($i=1;$i<=$num_record;$i++){ echo "<td> . $row1['data'] . "</td>; 
     }
    ?>
    ma invece di ottenere i record dell'array che soddisfano la query mi viene restituito solo il 1° valore dell' array.
    Per chiarezza, se il risultato della query deve essere per esempio:

    2010-01-01 2010-01-13 ecc.

    io ottengo

    2010-01-01 2010-01-01 ecc.
    Spero di essere riuscito a spiegarmi.
    Grazie mille per la pazienza e le risposte.
    Ignem audacia domo

  8. #8
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    in ogni caso avevo capito male la questione..
    prova una roba tipo:
    Codice PHP:
    // il tag h3 lo tolgo dal secondo ciclo annidato
     <h3>Vai alla scheda dell'utente [url="utente.php?id=<?php echo $row['idutente']?>"]<?php echo $row['nome']?>[/url]</h3>
    <?php
            $osp
    =$row['idospite'];
             
    $sql1mysql_query("select * from s08c where idospite = $osp") or die (mysql_error());
        
    $num_record mysql_num_rows($sql1);
    while (
    $row1 mysql_fetch_array($sql1))
            
    {
    echo 
    $row1['dataincalce'] . ", ";
    }
    //qua appresso chiudi gli altri cicli..
    il ciclo for lo puoi togliere!!
    fammi sapere

  9. #9
    Grazie mille ci sono riuscito.

    Non mi venivano in riga perchè avevo interposto un tag

    </p> tra il parser di apertura e chiusura del ciclo while della query.

    Così imparo a tenere il codice pulito e a commentare....

    Ancora grazie per la cortesia e la pazienza.



    Cris
    Ignem audacia domo

  10. #10
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591

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.