Visualizzare in tabella dei record

di Anonimizzato30389 il
9 risposte
Ciao a tutti, ho bisogno di un aiuto ma sono nuovo del forum e spero di non aver sbagliato sezione in cui fare questa domanda. Ho creato un database con mysql e php, ecco il codice della pagina che vorrei modificare:
<html>
<head>
<title>Elenco clienti</title>
</head>
<body>
<div align="center"><a href="home.php"><img src="immagini/logo_esm.jpg" height="159" width="683" border="0"/></a></div>

<div align="center"><h3>Anagrafica Clienti</h3></div>
<?php
$host="localhost";
$user="root";
$pass="root";
mysql_connect($host,$user,$pass) or die ("errore nella connessione");
mysql_select_db("NomeDb") or die ("errore nella selezione del database");
include "menu.html";
?>
<br>
<table width="750" align="center" cellpadding="0" cellspacing="0" border="0">
<tr>
<td align="center" width="375"><br><a style='color:#2c6ddd' href="02_forminse_client_ita.php">Inserisci un nuovo cliente</a></td>
<td align="center" width="375">
cerca nell'archivio clienti
<form name="info" method="post" action="05_cerca_client_ita.php">
<input type="text" name="cerca">
<input type="submit" value="cerca">
</form>
</td>
</tr>
</table>
<table border='5' cellpadding='4' cellspacing='5' width='500' align='center'>

<?php
$host="localhost";
$user="root";
$pass="root";
mysql_connect($host,$user,$pass) or die ("errore nella connessione");
mysql_select_db("inkjet") or die ("errore nella selezione del database");
$dati = mysql_query("SELECT * FROM clienti_ita ORDER BY clienti_ita_nome ASC");
while ( $array = mysql_fetch_array($dati))
{
echo "<tr>";
echo "<td width='400' align='center'><a href=\"06_info_client_ita.php?id=$array[clienti_ita_id]\" norepeat>
<img src='$array[clienti_ita_logo]' width='400' alt=''/></td> ";
echo "</tr>";
}
mysql_close();
?>
</table><br><br><br><br>
</body>
</html>

non sono molto bravo con php e mi scuso se farò molte domande ma con questo codice i record vengono visualizzati uno sotto l'altro, io invece vorrei poterli visualizzare in una tabella, tipo 3 o 4 per ogni fila, senza avere limite di pagine ma divisi in righe da 3, ora li visualizzo in righe singole e scorrere centinaia di record cosi è un delirio.
P.s. Se vi servono altre info chiedete pure.
Grazie a chi mi aiuterà.

9 Risposte

  • Ciao e benvenuto nel forum!

    Se metti il codice tra i tag CODE è meglio perché è più leggibile.

    Tu vorresti 3 o 4 risultati per riga?

    Ciao
  • Ok, lo terrò a mente per la prossima volta, si esatto 3 o 4 record per riga.
  • echo "<tr>";
    echo "<td width='400' align='center'><a href=\"06_info_client_ita.php?id=$array[clienti_ita_id]\" norepeat>
    <img src='$array[clienti_ita_logo]' width='400' alt=''/></td> ";
    <td> altra riga</td>
    <td> altra riga</td>
    <td> altra riga</td>

    echo "</tr>";
  • I "td" sono le colonne e non le righe.

    Esempio per capire...
    
    <tr><td>col1</td><td>col2</td><td>col3</td></tr>
    <tr><td>col1</td><td>col2</td><td>col3</td></tr>
    <tr><td>col1</td><td>col2</td><td>col3</td></tr>
    
    I questo caso si hanno 3 righe con 3 colonne.

    Ho scritto solo una parte di tag html. Ci manca l'apertura e chiusura della tabella e anche la testata.

    È questo che vuoi?
  • Se fosse come mi hai fatto vedere e l'esempio che ti ho fatto.

    Quando esegui il while basta che apri un tag td con il valore array['tuocampo'] per ogni valore che vuoi esporre.

    Spero di essere stato chiaro e utile.
  • No, avevo già provato ad aggiungere altre <td> ma mi duplica i record, cioè il record 1 me lo metto per 2 o 3 volte affiancato sulla stessa <tr> poi a capo fa lo stesso con tutti i record del database. Questa è la cosa che non capisco, non ho le conoscenze per capire perché mi duplica i record anziché ordinarli in colonne e righe. Spero di essermi spiegato bene.
  • Cioè per intenderci, scrivendo cosi il codice ho il risultato sopra descritto:
    echo "<tr>";
    echo "<td width='400' align='center'><a href=\"06_info_client_ita.php?id=$array[clienti_ita_id]\" norepeat><img src='$array[clienti_ita_logo]' width='400' alt=''/></td>
    <td width='400' align='center'><a href=\"06_info_client_ita.php?id=$array[clienti_ita_id]\" norepeat><img src='$array[clienti_ita_logo]' width='400' alt=''/></td>
    <td width='400' align='center'><a href=\"06_info_client_ita.php?id=$array[clienti_ita_id]\" norepeat><img src='$array[clienti_ita_logo]' width='400' alt=''/></td> ";
    echo "</tr>";
  • Se utilizzi 'clienti_ita_logo' come nome colonna è ovvio che lo replichi per quante volte lo scrivi nel codice.

    Ti faccio un esempio pratico.
    La tabella X è formata da queste colonne: nome, cognome, tel.
    
    while ( $array = mysql_fetch_array($dati))
    {
    echo '<tr><td>'.$array['nome'].'</td><td>'.$array['cognome'].'</td><td>'.$array['tel'].'</td></tr>';
    }
    
    Ogni volta che la condizione è vera entra nel ciclo e crea la riga.
    Se tu utilizzi sempre lo stesso nome della colonna ti prende sempre il dato che tu gli vai a dire. Sei tu a dire cosa deve prendere non è automatico, il pc esegue solo istruzioni, non pensa. Sei tu a dire cosa, dove prendere e come comportarsi.

    Spero di averti dato una spiegazione chiara.

    Ciao
  • Ciao, finalmente ho avuto modo di fare qualche prova, ora appena eseguito il while ho aperto un td, il tr rho aperto ma fuori dal codice php, cosi facendo mi visualizza i record tutti i orizzontale, come faccio per dargli una fine, cioè tipo per dirgli di visualizzare 3 record e poi andare a capo?
    grazie
Devi accedere o registrarti per scrivere nel forum
9 risposte