2010-10-25 4 views
0

J'interroge une table MySQL pour obtenir des données que j'affiche sur une page php. Le problème est que les largeurs de col sont petites pour quelques colonnes. Y a-t-il un moyen que je puisse changer spécifiquement (pas le reste)?Définition des largeurs de col d'un ensemble de résultats mysql dans Php

Actuellement, je fais mon impression via une boucle, donc il me semble étrange de savoir comment identifier qui correspond à la colonne. Est-ce que je peux peut-être analyser le contenu et voir comment prendre une décision?

Voici le code que je utilise:

$result = mysql_query("SELECT * FROM {$table}"); 
    if (!$result) { die("Query to show fields from table failed"); } 

    $fields_num = mysql_num_fields($result); 

    echo "<table><tr>"; // Table headers 
    for($i=0; $i<$fields_num; $i++) {  
     $field = mysql_fetch_field($result);  
     echo "<td><b>{$field->name}</td></b>"; 
    } 
    echo "</tr></th>\n"; // Table rows 
    while($row = mysql_fetch_row($result)) {  
     echo "<tr>"; 

     foreach($row as $cell) 
      echo "<td>$cell</td>"; 

     echo "</tr>\n"; 
    } 
    mysql_free_result($result); 
?> 

    </td> </tr> </table> 
+0

Peut-être que cela fonctionnerait mieux si le code ne génère pas de HTML mal formé? – MatTheCat

+0

Mat, pourriez-vous élaborer? – c0d3rs

+0

Vous avez évidemment eu votre t trdd mélangé. Regardez à l'en-tête ce ne sera pas valide. Aussi après avoir terminé la boucle, vous avez juste besoin de fermer la table pas un td et tr –

Répondre

2

vos tables HTML ne sont pas correctes, les tables devraient être indiqués comme suit, je l'ai copié à partir de la page web W3Schools:

http://www.w3schools.com/html/html_tables.asp

<table> 
    <tr> 
     <th>Header 1</th> 
     <th>Header 2</th> 
    </tr> 
    <tr> 
     <td>row 1, cell 1</td> 
     <td>row 1, cell 2</td> 
    </tr> 
    <tr> 
     <td>row 2, cell 1</td> 
     <td>row 2, cell 2</td> 
    </tr> 
</table> 

Si votre code HTML est tous ensemble, vous pouvez ajouter des CSS pour régler la largeur des cellules

table, td, th { 
border:       2px solid gray; 
border-collapse:    collapse; 
text-align:      left; 
width:       auto; 
padding:      3px; 
} 

J'ai ajouté quelques autres caractéristiques de la table ici, mais je pense que tout ce que vous avez besoin est la largeur = auto. Faites-moi savoir comment cela fonctionne

Vous pouvez définir différentes largeurs de table en définissant chaque table pour avoir un ID individuel, puis définissez cet ID dans le CSS aux largeurs spécifiques dont vous avez besoin.

<table id="formtable"> 

puis dans le css, vous pouvez utiliser

#formtable th td{ 
width:       auto; 
} 

Voyez comment cela fonctionne et laissez-moi savoir

+0

Salut Drewdin, j'ai changé ma table pour refléter le bon HTML, j'étais juste aveugle ... mais les largeurs coloumn restent les mêmes ... – c0d3rs

+0

Salut Drew - Merci pour la réponse rapide! La largeur: auto prend soin de quelques uns de mes coloums. Mais j'ai d'autres tables sur ma page (en les utilisant pour les menus) ... et ils sont complètement foirés visuellement à cause de l'auto. J'ai essayé de le forcer en disant largeur = 100%, mais cela ne semble pas fonctionner, le CSS a la priorité ... des suggestions ?? – c0d3rs

+0

Peu importe, je l'ai eu à travailler! au lieu de changer le CSS, je viens de changer l'attribut de style de table ... merci encore! – c0d3rs

0

Je suggère cela peut être réalisé avec css définirait des styles montrent les colonnes sont les largeurs appropriées

+0

Shaun ... Je ne suis pas trop familier avec l'utilisation de CSS, mais je sais il. CSS ne définirait-il pas la même largeur de colonne pour toutes les colonnes? Je veux seulement le changer pour quelques colonnes spécifiques. Je pense qu'il serait vraiment difficile de les isoler ... car ils sont vraiment utiliser des cellules de données individuelles en raison de ... – c0d3rs

Questions connexes