IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Mettre donnée de la BDD sous forme de colonne


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Femme Profil pro
    commercante
    Inscrit en
    Septembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : commercante
    Secteur : Alimentation

    Informations forums :
    Inscription : Septembre 2014
    Messages : 19
    Points : 7
    Points
    7
    Par défaut Mettre donnée de la BDD sous forme de colonne
    Bonjour,

    J'ai une page PHP pour afficher des données de ma base de données.
    Ces données (images + textes) s'affichent sous forme de liste et j'aimerais qu'elles se mettent sous 3 colonnes mais je ne sais comment faire. (je ne suis pas une pro...)

    Voici en image:

    Pièce jointe 170222

    Et ce que j'aimerais: (image retouchée avec PSD)
    Pièce jointe 170223

    Et voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <?php 
    include "include/connexion.inc.php" ; 
    ?>
     
    <p class="titre_coordonnees" align="center"><legend>Nos Faire-part de naissance<br /><br /></p></legend><br /><br />
    <ul>
    <?php 
     
    $sql = "SELECT * FROM tblfpnaissance";
    	$rs = mysql_query($sql) or die ("Erreur de requête:$sql");
     
    	$i=1 ;
    	while($row=mysql_fetch_array($rs)) {
    		extract($row) ;
    	$url = "images/naissance/" . $photo1 . ".jpg" ;
    	?>
     
    <table>    
    		<tr>
           		<td><a href="index.php?page=31&id_news=<?php print $row['id']; ?>"><img src="<?php print $url ;?>" class="photo_affichage" /></a></td></tr>
                <tr>
                <td valign="top" width="350px"><span class="nomfp"><?php print $nomfp;?><br /></span>
    			Prix: àpd <?php print $prix;?>€</span><br />
     
    	</td>
    </tr>
     
     
    </table>
     
     
     
    	 <?php
    	 $i++ ; 
    	}
      	?>
    Merci :-)

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <p...><legend>...<br /><br /></p></legend><br /><br />
    <ul>
    ...<table>
    Euhh... tu n'as pas l'impression d'utiliser les balises au petit bonheur la chance ??

    N.B. Il existe une autre solution, sans <table> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div id="3cols">
      <div class="col3">...(tes données)...</div>
    ...
      </div>
    </div>
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #3cols { display:table;  }
    .col3 { display:table-cell; width:33.3%; float:left; }
    Dernière modification par Invité ; 26/02/2015 à 22h44.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    commercante
    Inscrit en
    Septembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : commercante
    Secteur : Alimentation

    Informations forums :
    Inscription : Septembre 2014
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Merci pour la réponse ;-)

    J'ai adapté le code à ma base de données. Je voulais également afficher une image, j'ai donc utilisé "extract" mais elle ne s'affiche pas, à la place j'ai le lien en texte qui s'écrit.

    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    <?php 
     
     
     
    // $NbrLigne : le nombre de lignes
    // $NbrCol : calcul automatique
    // --------------------------------
    // (exemple)
    $NbrLigne = 4;
     
    $query = "SELECT * FROM tblfpnaissance;";
    $result = mysql_query($query);
     
     
     
    // --------------------------------
    // nombre de cellules a remplir
    $NbreData = mysql_num_rows($result);
    // -------------------------------- 
    // creation d'un tableau array() par donnees
    $k=0;
    while ($val = mysql_fetch_array($result)) {
    	extract($val) ;
    	$tableau1[$k] = "images/naissance/" . $photo1 . ".jpg" ;
    	$tableau2[$k] = $val['nomfp'];
    	$tableau3[$k] = $val['prix'];
    	$k++;
    }
    // --------------------------------
    // affichage
    if ($NbreData != 0) {
    	$i = 0;
    	$NbrCol = 0;
    ?>
    	<table border="1">
    	<tbody>
    <?php
    	for ($i=0; $i<$NbrLigne; $i++) {
    ?>		<tr>
    <?php
    		$j = 0;
    		while (($i+($j*$NbrLigne))%$NbrLigne==$i && ($i+($j*$NbrLigne))<$NbreData) 
    		{
    ?>			<td>
    <?php			// -------------------------
    			// DONNEES A AFFICHER dans la cellule
    			$k = ($i+($j*$NbrLigne));
    			echo $tableau1[$k];
    			echo '<br/>';
    			echo '<i>'.$tableau2[$k].'</i>';
    			echo '<br/>';
    			echo '<i>'.$tableau3[$k].'</i>';
    			// -------------------------
    ?>			</td>
    <?php			$j++;
    			// nombre de colonnes
    			$NbrCol = max($NbrCol,$j);
    		}
    		// ajout cellule vide (derniere colonne)
    		if ($j!=$NbrCol) { 
    ?>			<td>&nbsp;</td>
    <?php
    		}
    ?>		</tr>
    <?php
    	}
    ?>
     
    </body>
     
    <?php
    } else {
    ?>	pas de données à afficher
    <?php
    }
    ?>
     
     
     
    <?php mysql_close(); // deconnexion de la BD ?>
    </html>

  4. #4
    Invité
    Invité(e)
    Par défaut
    Utiliser extract() est, de manière générale, une mauvaise pratique.
    D'autant que c'est inutile ici.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while ($val = mysql_fetch_array($result)) {
    	$tableau1[$k] = "images/naissance/" . $val['photo1'] . ".jpg" ;
    	$tableau2[$k] = $val['nomfp'];
    	$tableau3[$k] = $val['prix'];
    	$k++;
    }
    C'est une image que tu veux afficher. Il faut donc écrire le code HTML correspondant !
    Remplace
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    			echo '<img src="' . $tableau1[$k] . '" alt="" />';
    N.B. Au lieu de $tableau1, $tableau2, $tableau3, rien ne t'empêche d'utiliser des noms de variables plus explicites :
    $photo1_array, $nomfp_array, $prix_array, par exemple.
    Dernière modification par Invité ; 02/03/2015 à 23h38.

  5. #5
    Futur Membre du Club
    Femme Profil pro
    commercante
    Inscrit en
    Septembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : commercante
    Secteur : Alimentation

    Informations forums :
    Inscription : Septembre 2014
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Ça marche, merci bien et merci pour l'astuce du changement de noms des tableaux, plus pratique ;-)

    Je vais mettre en page tout ça mnt

  6. #6
    Futur Membre du Club
    Femme Profil pro
    commercante
    Inscrit en
    Septembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : commercante
    Secteur : Alimentation

    Informations forums :
    Inscription : Septembre 2014
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Par contre, je n'arrive pas à trouver pourquoi le texte est mis automatiquement en italique... J'ai changé le reste dans le css, mais le texte reste tout de même en italique

  7. #7
    Futur Membre du Club
    Femme Profil pro
    commercante
    Inscrit en
    Septembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : commercante
    Secteur : Alimentation

    Informations forums :
    Inscription : Septembre 2014
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    J'ai encore un souci

    Voilà, quand je clique sur mon image, j'aimerais accéder aux informations de cette image sur une autre page, mais ça ne s'affiche pas.

    Voilà le lien sur l'image:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php			// -------------------------
    			// DONNEES A AFFICHER dans la cellule
    			$k = ($i+($j*$NbrLigne));
    			?><a href="index.php?page=31&id_fp=<?php print $val['id_naissance']; ?>"><br>
    			<?php echo '<img src="' . $photo1_array[$k] . '" alt="" class="photo_affichage" />';
    			echo '<br/>';
    			echo '<i class="nomfp">'.$nomfp_array[$k].'</i>';
    			echo '<br/>';
    			echo '<i class="prix">Prix: à partir de '.$prix_array[$k].'€</i>';
    			// -------------------------
    ?>			</a></td>
    Et voici le code de la page d'affichage:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    <?php
    echo html_entity_decode($chaine, ENT_NOQUOTES, "UTF-8");
     
    if (!isset($_GET['id_fp'])) {
    	echo 'Sujet non défini.';
    }
    else { 
     
    $sql = 'SELECT * FROM tblfpnaissance
    		WHERE id_naissance=' . $_GET["id_fp"];
     
    	$rs = mysql_query($sql, $link);
    	echo "<table>\n";
     
    	// on va scanner tous les tuples un par un
    	while ($val = mysql_fetch_array($rs)) {
     
    	$url = "images/naissance/" . $val['photo1'] . ".jpg" ;
     
    	echo ''.$val['nomfp'].'<br />';
    	echo "<tr>";
    	echo "<th>";
    	echo '<img src="'.$url.'" class="photo_affichage"/><br/>';
    	echo "</th>";
    	echo "<td>";
    	echo 'La description'.$val['description'].'<br /><br />';
    	echo "</td>";
    	echo "</tr>";
     
     
    echo "</table>\n";
    }
    ?>
     
     
     
    <?php
    mysql_free_result ($result);
    mysql_close ();
    }
    ?>
    Merci encore pour votre aide

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Sid05 Voir le message
    ...je n'arrive pas à trouver pourquoi le texte est mis automatiquement en italique...
    Si tu mets des balises <i>, il ne faut pas t'étonner !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<img src="'.$url.'" class="photo_affichage"/><br/>';
    D'où vient $url ici ?
    echo $_GET['id_fp'] donne quoi ?
    As-tu activé les messages d'erreur (utile en phase de TEST)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php error_reporting(E_ALL); ?>

  9. #9
    Futur Membre du Club
    Femme Profil pro
    commercante
    Inscrit en
    Septembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : commercante
    Secteur : Alimentation

    Informations forums :
    Inscription : Septembre 2014
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Ah oui, dsl pour le <i>, je me suis trompée avec <li> moment d’inattention

    Pour le reste, j'ai testé le message d'erreur mais ça donne rien ou alors je ne l'ai pas bien placé

  10. #10
    Futur Membre du Club
    Femme Profil pro
    commercante
    Inscrit en
    Septembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : commercante
    Secteur : Alimentation

    Informations forums :
    Inscription : Septembre 2014
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Ca va, j'ai trouvé. Tout marche.
    Merci bien et bonne soirée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Smarty] Afficher les données d'une BDD sous forme de tableau avec options
    Par student_php dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 05/10/2010, 17h29
  2. [MySQL] probleme afficher donnée BDD sous forme de tableau
    Par body72 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/03/2008, 22h27
  3. Réponses: 5
    Dernier message: 01/06/2006, 17h18
  4. Réponses: 2
    Dernier message: 31/03/2006, 12h29
  5. Réponses: 4
    Dernier message: 29/11/2005, 09h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo