8768 sujets

Développement web côté serveur, CMS

Bonjour je pense avoir un probleme de requete : celle ci fonctionne dans phpmyadmin mais pas dans mon code, elle n'affiche rien, or, si je me un print_r row elle affiche mes donnees. D ou cela provient svp?
Bonjour,

Attends je sors ma boule de cristal et je reviens vers toi d'ici peu...

Oups, je ne suis pas voyant, as-tu un bout de code à nous partager ou alors, attendons Madame Irma ou Merlin et sa baguette magique...
Modifié par ohweb (28 May 2014 - 10:59)
hihi ; )

Voici mon code il est un peu long... Merci magicien d'oz


<html>
<body>
<?php
include ('header.php');
require 'fonctions.php';


// initialisation des variables 

// on va afficher 5 résultats par page.

$nombre = 5;  

// si limite n'existe pas on l'initialise à zéro

if (!$limite) $limite = 0; 

// on cherche le nom de la page.    

$path_parts = pathinfo($_SERVER['PHP_SELF']);

$page = $path_parts["basename"];

// connection à la DB

$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );

mysql_select_db($db) or die ('Erreur :'.mysql_error());

// requête SQL qui compte le nombre total 

// d'enregistrements dans la table.

$select = 'SELECT count(id_new) FROM news';

$donnees = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );

$row = mysql_fetch_row($donnees);

$total = $row[0];
    
// vérifier la validité de notre variable 
// $limite;

$verifLimite= verifLimite($limite,$total,$nombre);

// si la limite passée n'est pas valide on la remet à zéro

if(!$verifLimite)  {

    $limite = 0;

}

// requête SQL qui ne prend que le nombre 
// d'enregistrement necessaire à l'affichage.

$select = "SELECT * FROM news LIMIT " . $limite . " , " . $nombre;

$donnees = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );
    
// si on a récupéré un resultat on l'affiche.

if($total) {

    // lecture et affichage des résultats sur 2 colonnes  
	?>  
 
                        <?php
    while($row = mysql_fetch_array($donnees)) {;
	print_r($row);
	
	?>
     <h1 class="titreactuclik"> <?php echo $donnees["titre_new"] ; ?></h1>
                    <hr class="traittitre">
       					<p class="resumeactuclik"> <?php echo $donnees["contenu_new"]; ?></p>
                        <br>
 <?php  
}
}

else echo 'Pas d\'enregistrements dans cette table...';

mysql_free_result($donnees);

// si le nombre d'enregistrement à afficher 
// est plus grand que $nombre 

if($total > $nombre) {
	
    // affichage des liens vers les pages
	
    affichePages($nombre,$page,$total);
	
    // affichage des boutons
	
    displayNextPreviousButtons($limite,$total,$nombre,$page);
}
?>
</body>
</html>
:)

Je vois un malheureux point-virgule après ton accolade ouvrante :
while($row = mysql_fetch_array($donnees))
	{;


Est-ce cela qui bloquait ? Je regarde le reste de ton code au cas où.
Modifié par ohweb (28 May 2014 - 11:16)
Ok, et as-tu modifié tes variables d'affichage ?
<?php echo $donnees["titre_new"] ; ?>
en
<?php echo $row["titre_new"]; ?>
Youpi !!

Merci c'etait ca le pb !

Merci beaucoup: )

Donc là ca s'affiche nikel je suis ravie

Par contre ma function affichepage ne marche pas : (

<?php
function affichePages($nb,$page,$total) {
        $nbpages=ceil($total/$nb);
        $numeroPages = 1;
        $compteurPages = 1;
        $limite  = 0;
        echo '<table border = "0" ><tr>'."\n";
        while($numeroPages <= $nbpages) {
        echo '<td ><a href = "'.$page.'?limite='.$limite.'">'.$numeroPages.'</a></td>'."\n";
        $limite = $limite + $nb;
        $numeroPages = $numeroPages + 1;
        $compteurPages = $compteurPages + 1;
            if($compteurPages == 10) {
            $compteurPages = 1;
            echo '<br>'."\n";
            }
        }
        echo '</tr></table>'."\n";
}}
?>
Il y a une deuxième accolade fermante à la fin de ta fonction :

} }
echo '</tr></table>'."\n"; }[#red]}[/#] ?>

Et sinon est-ce que ta fonction affiche quelque chose ou alors c'est le lien affiché qui ne fonctionne pas ?
Modifié par ohweb (28 May 2014 - 11:34)
Si j'enleve la balise fermante ca me met une erreur ...

J'ai ca comme erreur :
Fatal error: Call to undefined function affichePages() in D:\new\tst.php on line 100
Non tu ne dois pas enlever les deux ! Juste en enlever une qui est de trop, en tout cas dans le code que tu m'as donné Smiley smile

Donc tu enlève juste la toute dernière !
Modifié par ohweb (28 May 2014 - 11:44)
Tu me parles bien de la derniere ligne du bas sur la function? parce que oui ca me met une erreur si j'en enleve une seule
Par rapport à ce code :
<?php
function affichePages($nb,$page,$total) {
        $nbpages=ceil($total/$nb);
        $numeroPages = 1;
        $compteurPages = 1;
        $limite  = 0;
        echo '<table border = "0" ><tr>'."\n";
        while($numeroPages <= $nbpages) {
        echo '<td ><a href = "'.$page.'?limite='.$limite.'">'.$numeroPages.'</a></td>'."\n";
        $limite = $limite + $nb;
        $numeroPages = $numeroPages + 1;
        $compteurPages = $compteurPages + 1;
            if($compteurPages == 10) {
            $compteurPages = 1;
            echo '<br>'."\n";
            }
        }
        echo '</tr></table>'."\n";
}
?>

Sur la dernière ligne, j'ai enlevé la toute dernière accolade car il y en avait deux comme ça: }}
Modifié par ohweb (28 May 2014 - 11:46)
Tu ne dois pas avoir posté exactement la même portion de code sur le forum que dans ton code, car chez moi cela fonctionne Smiley ohwell

Bref, en soi le problème ne doit pas venir de là puisque le code s'exécute chez toi, je repose ma question "est-ce que ta fonction affiche quelque chose ou alors c'est le lien affiché qui ne fonctionne pas ? "
Si j'ai le meme ! ca ne peut pas venir du serveur?

Mes news a'ffichent et en dessous
il y a juste ca

Fatal error: Call to undefined function affichePages() in D:\new\tst.php on line 100