mysql返回总是最后插入

时间:2018-03-23 14:34:44

标签: php mysql

你好,mysql返回结果有问题。我总是获得最后一个记录行。我解释一下:我想获取文件夹的名称并搜索img对应。

这是我的代码:

 <?php
                require( '../core/libs/connexion.php' );

                $sql_mal = 'SELECT * FROM galleries AS G LEFT JOIN activites AS A ON G.id_gallerie=A.fk_id_gallerie WHERE A.fk_id_destination="2"';
                $req_mal = mysqli_query( $connexion, $sql_mal )or die( mysqli_error( $connexion ) );

                global $id_de_activite,$rep_header_activite;

                $sql_activite = 'SELECT nom_type_activite FROM type_activites AS T LEFT JOIN activites AS A ON T.id_type_activite=A.fk_id_type_activite WHERE A.fk_id_destination="2"';

                $req_activite = mysqli_query( $connexion, $sql_activite )or die( mysqli_error( $connexion ) );

                while ( $data_type_activite = mysqli_fetch_array( $req_activite ) ) {

                    $rep_header_activite = trim($data_type_activite['nom_type_activite']);

                }

                while ( $contents_mal = mysqli_fetch_array( $req_mal ) ) {
                    echo '<div class="row">
                                        <div class="col s12 m3">
                                        <div class="card">
                                            <div class="card-image small">


                                                <img src="../00_sources/images/gallerie/activites/cards/'.$rep_header_activite.'/' . $contents_mal[ 'img_thumb' ] . '" alt="' . $contents_mal[ 'img_thumb' ] . '"/>
                                            </div>

                                            <div class="card-action">
                                                <span>' . $contents_mal[ 'titre_prin_activite' ] . '</span>
                                            </div>
                                        </div>
                                    ';
                    $id_de_activite = $contents_mal['id_activite'];
                    ?>

它让我感到疯狂,因为最后一条记录已完全显示,但前一条记录获得了相同名称的文件夹

   <img src="../00_sources/images/gallerie/activites/cards/plongee/canoe1521804672.jpeg" alt="canoe1521804672.jpeg">

文件夹类型的名称是在牌/

之后

帮助我请求我不知道如何解决这个问题!

1 个答案:

答案 0 :(得分:0)

您正在解析整个type_activites请求,并且只保留最后一行:

 while ( $data_type_activite = mysqli_fetch_array( $req_activite ) ) {

                $rep_header_activite = trim($data_type_activite['nom_type_activite']);

 }

然后,当您创建img标记时,您只使用rep_header_activite中存储的标记,这就是它始终相同的原因。

您应该只进行一次SQL查询并在第一次加入该类型。然后在解析sql查询时可以访问它。像这样:

SELECT g.*, a.*, t.type_activites 
FROM galleries g 
LEFT JOIN activites a ON g.id_gallerie =a.fk_id_gallerie 
LEFT JOIN  type_activites t ON t.id_type_activite = a.fk_id_type_activite
WHERE a.fk_id_destination="2"

然后,您可以删除第一个while循环,只需使用正确的访问者进行查询解析即可访问它:$contents_mal['nom_type_activite']