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 :

Affichage Consignes MySQL > PHP [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    INFOSUP Lyon
    Inscrit en
    Juillet 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : INFOSUP Lyon
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Affichage Consignes MySQL > PHP
    Bonjour a tous,

    Je suis actuellement sur mon premier projet web,
    Je suis bloqué sur quelque chose qui me parait anodin, mais impossible de trouver le problème

    Pour vous expliquer le contexte :

    J'ai au préalable crée un panel admin permettant l'ajout de "consignes"

    Nom : 607438Capturedcran20150817104419.png
Affichages : 91
Taille : 43,8 Ko

    Une pop-up en javascript permet l'enregistrement de la consigne enregistrée,

    Chaque consigne enregistrée via la pop-up apparait bien dans la BDD



    L'intérêt étant que chaque consignes enregistrées viennent se mettre à la suite dans l'index de l'admin...

    Voici une représentation du fonctionnement voulu :



    Je suppose que mon problème vient de mes fonctions d'affichage des données mais je ne voit pas vraiment le soucis

    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
    <?php   
    		$reqActu = "SELECT * FROM actualites ORDER BY date_actu DESC";
    		$tabActu = sqlSelectPlsLignes($reqActu);
     
    			if(count($tabActu)>0){
    			for($i=0;$i<count($tabActu);$i++){
     
    ?>
                    <!--Chartage ligne actu-->                     
                                <div id="zone-gestion-contenu">
                                <div id="titre-actu">
    		<?php echo $tabActu[$i]["titre_actu"]; ?>
                     	    </div>
                                <div id="date-actu">
    		<?php echo $tabActu[$i]["date_actu"]; ?>
                                    </div>
    Je ne suis pas propriétaire de ce morceau de code mais je comprend la logique. Même si de ce fait qu'il ne me retourne rien me parait illogique

    Je me tourne vers vous en parallèle de mes recherches,
    D'avance Merci de votre intérêt,

  2. #2
    Membre éclairé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Septembre 2012
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2012
    Messages : 416
    Points : 747
    Points
    747
    Par défaut
    Bonjour,

    As tu essayé ta requête dans phpmyadmin ? (a priori pas de souci de ce coté, mais on ne sait jamais).

    Quel est le contenu de la fonction sqlSelectPlsLignes($reqActu); ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    1/ fais effectivement un var_dump($tabActu); pour voir ce qu'il contient.

    2/ Il faut éviter d'utiliser count() dans : for($i=0;$i<count($tabActu);$i++){, car il "recompte" (!) à chaque tour de boucle !
    Il est préférable d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $tabActuCount = count($tabActu);
    for($i=0;$i<$tabActuCount;$i++){
    3/ On peut modifier avantageusement le script avec foreach() :
    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
    <?php   
    		$reqActu = "SELECT * FROM actualites ORDER BY date_actu DESC";
    		$tabActu = sqlSelectPlsLignes($reqActu);
     
    		if(count($tabActu)>0)
    		{
    			foreach( $tabActu as $tActu)
    			{
    ?>
    	<!--Chartage ligne actu-->                     
    	<div class="zone-gestion-contenu">
    		<div class="titre-actu"><?php echo $tActu["titre_actu"]; ?></div>
    		<div class="date-actu"><?php echo $tActu["date_actu"]; ?></div>
    	</div>
    <?php 		}
    		}
    ?>
    4/ Enfin, PAS de <div id="..." mais <div class="...", car on est dans une boucle et que les id doivent être UNIQUES

  4. #4
    Candidat au Club
    Homme Profil pro
    INFOSUP Lyon
    Inscrit en
    Juillet 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : INFOSUP Lyon
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par valaendra Voir le message
    Bonjour,

    1/ As tu essayé ta requête dans phpmyadmin ? (a priori pas de souci de ce coté, mais on ne sait jamais).

    2/ Quel est le contenu de la fonction sqlSelectPlsLignes($reqActu); ?
    1/ Oui, tout est fonctionnel en requête direct sur MyAdmin

    2/ La fonction annoncée permet de récupéré plusieurs lignes qui sont stockés dans la librairie,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function sqlSelectPlsLignes($req){
    		$res = mysql_query($req);
    		$row = mysql_fetch_array($res);
    		if($row[0]!=""){
    			$tabRow = array();
    			array_splice ($tabRow, 0);
    			$i=0;
    			do{
    				$tabRow[$i]=$row;
    				$i++;
    			}while($row = mysql_fetch_array($res));
    		}
    		return $tabRow;
    	}

  5. #5
    Invité
    Invité(e)
    Par défaut
    Même la fonction est améliorable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function sqlSelectPlsLignes($req){
    	$result = mysql_query($req);
     
    	$tabRow = array();
    	while( $row = mysql_fetch_array($result) ) {
    		$tabRow[] = $row;
    	}
    	return $tabRow;
    }
    L'extension mysql_ est OBSOLETE depuis au moins 2 ans !
    => il faut utiliser mysqli_ ou PDO.

  6. #6
    Candidat au Club
    Homme Profil pro
    INFOSUP Lyon
    Inscrit en
    Juillet 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : INFOSUP Lyon
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Bonjour,
    1/ fais effectivement un var_dump($tabActu); pour voir ce qu'il contient.
    C'est à dire ? Sur MyAdmin ?


    Merci de tes nombreuses correction, c'est vrai que le support de cours que j'ai dates un peu, je regarde tout sa

  7. #7
    Invité
    Invité(e)
    Par défaut
    C'est du PHP !


    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php   
    		$reqActu = "SELECT * FROM actualites ORDER BY date_actu DESC";
    		$tabActu = sqlSelectPlsLignes($reqActu);
     
    	var_dump($tabActu);

  8. #8
    Candidat au Club
    Homme Profil pro
    INFOSUP Lyon
    Inscrit en
    Juillet 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : INFOSUP Lyon
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Après quelques exploration je me rend compte que la libraire libSql.php d'ou pointe la fonction corrigé précédemment n'était pas inclut dans mon fichier "index.php"

    Le tout corrigé et ajouté (cf:code) semble parfaitement fonctionnel !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include ('../lib/libSql.php');
    Merci de votre aide ! Je ne m'attendais pas à une telle rapidité !

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

Discussions similaires

  1. [MySQL] Affichage des champs mysql en php
    Par phphp dans le forum PHP & Base de données
    Réponses: 22
    Dernier message: 19/04/2010, 13h30
  2. Affichage de donnees depuis mysql en php html
    Par gator dans le forum Langage
    Réponses: 3
    Dernier message: 03/02/2010, 14h12
  3. Réponses: 1
    Dernier message: 02/03/2008, 16h16
  4. [MySQL] affichage des données dans un tableau avec mysql et php
    Par fofina dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/10/2007, 14h00
  5. [MySQL] probleme avec mysql et php (affichage donnees)
    Par rane dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 18/10/2007, 15h26

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