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

PHP & Base de données Discussion :

Tableau de données


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    QA
    Inscrit en
    Septembre 2022
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : QA

    Informations forums :
    Inscription : Septembre 2022
    Messages : 39
    Par défaut Tableau de données
    Bonjour à tous,

    J'ai toujours des difficultés avec les tableaux et les données MySql.

    Ce que je veux faire c'est:

    1- Afficher les 3 premières données une à côté de l'autre dans une table (chaque donnée aura une cell)
    2- Après 3, changer de ligne
    3- afficher les 3 suivant sur la 2e ligne
    4- et ainsi de suite.

    Exemple:

    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
    <table>
    <tbody>
    <tr>
    <td>Données 1</td>
    /* si besoin */
    <td>Données 2</td>
    /* si besoin */
    <td>Données 3</td>
    </tr>
    /* si besoin de deuxième ligne */
    <tr>
    <td>Données 4</td>
    <td>Données 5</td>
    <td>Données 6</td>
    </tr>
    /* etc */
    </tbody>
    </table>
    Comment faire?

    Merci

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 518
    Par défaut
    Bonjour,

    Comment vous récupérez les données de la requête SQL en PHP ?

    Montrez le code que vous utilisez...

  3. #3
    Membre averti
    Homme Profil pro
    QA
    Inscrit en
    Septembre 2022
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : QA

    Informations forums :
    Inscription : Septembre 2022
    Messages : 39
    Par défaut
    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
    <?php 
    	require_once "config.php";
    	$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);	
    	if ($mysqli->errno) {
    		print $mysqli->error;
    		exit();
    	}
     
    	// 3 most recent albums only
    	$album_sql = "SELECT * FROM Albums ORDER BY date_created DESC LIMIT 3;";
    	$album_result = $mysqli->query($album_sql);
     
    	// 6 most recent images only
    	$image_sql = "SELECT * FROM Images ORDER BY date_modified DESC LIMIT 8;";
    	$image_result = $mysqli->query($image_sql);
     
     
     
    	if (!$album_result) {
    		print($mysqli->error);
    		exit();
    	} 
     
    	if (!$image_result) {
    		print($mysqli->error);
    		exit();
    	}
     
     
     
    					while ($row = $album_result->fetch_assoc()) {
    						$album_id = $row['album_id'];
    						$background = $row['cover_file'];
    						$title = $row['title'];
    						$description = $row['description'];
    						$date = $row['date_created'];
     
    						$image_count = "SELECT * FROM ImagesinAlbums WHERE album_id =  '".$album_id."';";
    						$image_count_result = $mysqli->query($image_count);
     
    						if ($image_count_result) {
     
    							// Return the number of rows in result set
    							$rowcount = mysqli_num_rows( $image_count_result );
     
    						}
     
    						if($language == "en") { 
    							print("<a href='view-album.php?albumid=$album_id&language=en'>");
     
    						} else {
    							print("<a href='view-album.php?albumid=$album_id&language=fr'>");;
    						}
    						// Inline CSS because dynamically generated; styling does not work otherwise
    						print("<div class='divTable'><div class='divTableBody'><div class='divTableRow'><div class='divTableCell'><img class='albumCover' src='images/album/$background' width='200px'></div></div>");
    						print("<div class='divTableRow'><div class='divTableCell'><div class='galleri_caption'><p style='margin-left'>$title<br>$rowcount image(s)</p></div></div></div></div></div>");
     
    						}
    				?>
    Je pensais utiliser des conteneurs (div) avec une taille précise me permettant d'afficher que 3 colonnnes mais avec le php j'ai l'impression qu'il doit y avoir une façon plus "élégante".

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    Met les lignes de ton résultat SQL dans un tableau PHP $data et utilise array_chunk() pour préparer $data à l'affichage.

    // ...
    $data = array_chunk($data, length: 3);
    
    echo '<table border="1">';
    foreach ($data as $chunk) {
        echo '<tr>';
        foreach ($chunk as $record) {
             echo "<td>{$record['title']}</td>";
        }
        echo '</tr>';
    }
    echo '</table>';

  5. #5
    Membre averti
    Homme Profil pro
    QA
    Inscrit en
    Septembre 2022
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : QA

    Informations forums :
    Inscription : Septembre 2022
    Messages : 39
    Par défaut
    Je n'y arrive pas et je ne trouve pas où est l'erreur

    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
    <?php 
    	require_once "include/config.php";
    	$conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
     
     
      // GET CONNECTION ERRORS 
      if ($conn->connect_error) { 
          die("Connection failed: " . $conn->connect_error); 
      } 
     
      // SQL QUERY 
      $query = "SELECT * FROM Albums;"; 
      $album_result = $mysqli->query($album_sql);
     
      // FETCHING DATA FROM DATABASE 
      while ($row = $album_result->fetch_assoc()) {
    						$title = $row['title'];
      }
      $result = $conn->query($query); 
      $data = array_chunk($data, length: 3);
    echo '<table border="1">';
    foreach ($data as $chunk) {
        echo '<tr>';
        foreach ($chunk as $record) {
             echo "<td>$title</td>";
        }
        echo '</tr>';
    }
    echo '</table>'; 
     
       $conn->close(); 
     
    ?>

  6. #6
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    Où sont définies tes variables $mysqli, $album_sql et $data ?

    Un code comme celui-ci doit afficher des messages d'erreurs, lis les.

  7. #7
    Membre averti
    Homme Profil pro
    QA
    Inscrit en
    Septembre 2022
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : QA

    Informations forums :
    Inscription : Septembre 2022
    Messages : 39
    Par défaut
    Je ne sais pas... Aidez-moi.

    Voici le message d'erreur que j'ai:

    PHP Fatal error: Uncaught TypeError: array_chunk(): Argument #1 ($array) must be of type array, string given in /home/wismc763/public_html/2025/test.php:19
    Dernière version du 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
    <?php 
    	require_once "include/config.php";
    	$conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
     
     
      // GET CONNECTION ERRORS 
      if ($conn->connect_error) { 
          die("Connection failed: " . $conn->connect_error); 
      } 
     
      // SQL QUERY 
      $query = "SELECT * FROM Albums;"; 
      $album_result = $conn->query($query); 
     
      // FETCHING DATA FROM DATABASE 
      while ($row = $album_result->fetch_assoc()) {
    						$title = $row['title'];
      }
      $data = array_chunk($title, length: 3);
    echo '<table border="1">';
    foreach ($data as $chunk) {
        echo '<tr>';
        foreach ($chunk as $record) {
             echo "<td>$title</td>";
        }
        echo '</tr>';
    }
    echo '</table>'; 
     
       $conn->close(); 
     
    ?>

  8. #8
    Membre averti
    Homme Profil pro
    QA
    Inscrit en
    Septembre 2022
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : QA

    Informations forums :
    Inscription : Septembre 2022
    Messages : 39
    Par défaut
    J'y suis arrivé

    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
    <?php 
    	require_once "include/config.php";
    	$conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
     
     
     
    $result = $conn->query("SELECT * FROM Albums");
    while($row = $result->fetch_array())
     
    {
        $rows[] = $row['cover_file'];
    }            
     
    $lists = array_chunk($rows, ceil(count($rows) / 3));
     
     
    // You can replace this $column with $grid or $row depending on your use case.
    echo '<table border="0">';
    foreach ($lists as $column) {
        echo '<tr>';
            foreach ($column as $item) {                      
                echo '<td><img src="images/album/'.$item.'" width=150px></td>';
            }
            echo '</tr>';
    }
    echo '</table>';
    ?>
    Mais comment ajouter, dans chaque cellule, d'autre informations tel que 'date_created' (venant de la même table de BD) ou le nombre d'images (obtenu depuis un autre select)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $image_count = "SELECT * FROM ImagesinAlbums WHERE album_id =  '".$album_id."';";

  9. #9
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    comment ajouter, dans chaque cellule, d'autre informations tel que 'date_created' (venant de la même table de BD)
    Ajoute la ligne complète à $rows :

    while ($row = $result->fetch_array()) {
        $rows[] = $row;
    }

  10. #10
    Membre averti
    Homme Profil pro
    QA
    Inscrit en
    Septembre 2022
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : QA

    Informations forums :
    Inscription : Septembre 2022
    Messages : 39
    Par défaut
    Ça me fait une erreur

    Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given in /home/wismc763/public_html/2025/test.php:12
    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
    <?php 
    	require_once "include/config.php";
    	$conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
     
     
     
    $result = $conn->query("SELECT * FROM Albums");
    while ($row = $result->fetch_array()) {
        $rows[] = $row;
    }          
     
    $lists = array_chunk($row, ceil(count($row) / 3));
     
     
    // You can replace this $column with $grid or $row depending on your use case.
    echo '<table border="0">';
    foreach ($lists as $column) {
        echo '<tr>';
            foreach ($column as $row) {                      
                echo '<td><img src="images/album/'.$row.'" width=150px></td>';
            }
            echo '</tr>';
    }
    echo '</table>';
    ?>
    Et comment je fais pour la donnée qui vient d'une autre table?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    						$image_count = "SELECT * FROM ImagesinAlbums WHERE album_id =  '".$album_id."';";
    						$image_count_result = $mysqli->query($image_count);
     
    						if ($image_count_result) {
     
    							// Return the number of rows in result set
    							$rowcount = mysqli_num_rows( $image_count_result );
     
    						}
    echo '<p>$rowcount</p>';

Discussions similaires

  1. Enregistrement d'un tableau de donnes php?
    Par dnimas dans le forum Langage
    Réponses: 1
    Dernier message: 28/07/2017, 23h55
  2. [XL-2013] Remplissage auto d'un tableau de donnés selon plusieurs critères
    Par stRiks dans le forum Conception
    Réponses: 1
    Dernier message: 18/11/2015, 11h20
  3. [XL-2010] Création d'un tableau avec donné
    Par Latina27 dans le forum Excel
    Réponses: 0
    Dernier message: 08/01/2015, 23h45
  4. [Toutes versions] tableau qui donne les dates communes (ligne) de 3 noms choisis(colonne)
    Par camad dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 27/10/2011, 18h57
  5. [XL-2003] Reporter la valeur d'une textbox à un tableau de donné sur une autre feuille
    Par deamonRav dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 25/03/2010, 17h13

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