Probleme avec une ligne

Eléphant du PHP | 258 Messages

16 nov. 2006, 18:34

Voila j'ai un probleme avec sa :
$sql_n = "SELECT IDas,DATEas, TITastuce, TEXastuce FROM tastuce WHERE IDas=".$IDas. "LIMIT ". $debut .", ". $nb_im_par_page .";"; 
    $im = mysql_query($sql_n); 

while ($image = mysql_fetch_assoc($im))//Ceci etant la ligne 321
Car j'ai une erreur :
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-7\www\sitedebase\astuce.php on line 321

Tout les reste du code va bien meme celui la si j'enleve

WHERE IDas=".$IDas.
Une petite idée.

ViPHP
ViPHP | 3607 Messages

16 nov. 2006, 18:41

déja commence par faire un echo de ta requête, ensuite:
tu as:

Code : Tout sélectionner

IDas=".$IDas. "LIMIT
du coup, il n'y a pas d'espace entre la valeur de $IDas et le LIMIT, ce qui doit être ton erreur mon avis

Eléphant du PHP | 258 Messages

16 nov. 2006, 18:50

Merci

J'ai fait un echo et sa m'affiche sa:

SELECT IDas,DATEas, TITastuce, TEXastuce FROM tastuce WHERE IDas=LIMIT 0, 1;

Mais se que tu entend par espace c'est quoi car il y a un espace entre:
IDas=".$IDas. "LIMIT


Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

16 nov. 2006, 18:53

2 choses :
  • Ta variable $IDas ne contient aucune valeur.
    Il serait prudent de la tester avant de l'utiliser dans une requête...
  • L'espace est à insérer dans ta chaîne juste avant le LIMIT
    pour qu'il ne soit pas collé aux éléments qui le précèdent.

Eléphant du PHP | 258 Messages

16 nov. 2006, 19:05

Merci de m'avoir aider sa marche

Eléphant du PHP | 258 Messages

16 nov. 2006, 20:07

J'ai sauter de joie trop top car sa marche quand ond arrive sur la premiere page mais quand on va sur la deuxieme ou troisieme sa me mais la meme erreur.
<?php
/* Paramètres de pagination */ 
$nb_im_par_page = 1;             /* Nombre de nouvelles qui seront affichées sur chaque page */ 
$url = "Astuce.php?page="; 

/* On détermine quelle est la page qui est actuellement affichée */ 
$page_en_cours    = isset($_GET['page']) ? $_GET['page'] : 0; 
$page_affichee    = ($page_en_cours + 1); 



/* Requête pour compter les nouvelles présentes dans notre base de données */ 
$sql_nb = "SELECT COUNT(*) FROM `tastuce`"; 

/* Exécution de la requête et récupération du résultat */ 
$resultat_1 = mysql_query($sql_nb); 
$nb_im= mysql_result($resultat_1, 0); 

/* Calcul du nombre total de pages : on arrondit à l'entier supérieur (ceil() ) */ 
$nb_pages = ceil($nb_im / $nb_im_par_page); 

/**  
Nous disposons maintenant de suffisament d'éléments pour créer notre barre de navigation. 
Première chose à vérifier : avons-nous plusieurs pages, et au moins une ? 
 */ 
if($nb_pages > 0) 
{ 
    /* On définit une variable qui contiendra les données de navigation */ 
    $barre_nav = ""; 
    /* Nous avons au moins une page : avons nous besoin d'une barre de navigation ? */ 
    if($nb_pages > 1) 
    { 
        /**  
        Nous avons plusieurs pages: nous allons afficher successivement les liens vers 
        les pages précédentes s'il y en a, la page en cours et les liens vers les pages 
        suivantes. Nous aurons une barre sous la forme : 1 | 2 | 3 etc.. en liens clicables 
        sauf pour la page en cours dont nous mettrons le chiffre en gras 
         */ 
        if($page_en_cours > 0) 
        { 
            for($i = 0; $i < $page_en_cours; $i++) 
            { 
                $p = $i + 1; 
                $barre_nav .= "<a href=\"". $url . $i ."\" title=\"page ". $p ."\">". $p ."</a> | "; 
            } 
        } 
        /** 
        On affiche la page en cours : notez le (+ 1) : pour les calculs, nous partons d'une  
        page 0 mais pour l'internaute, il est préférable de commencer à la page 1, donc on incrémente 
         */ 
        $barre_nav .= "<strong>". $page_affichee ."</strong>"; 
        /* Enfin on affiche (s'il y a lieu) les liens vers les pages suivantes */ 
        if(($page_affichee) < $nb_pages) 
        { 
            /* Il reste encore d'autres pages à afficher */ 
            $nb_suivantes = $nb_pages - ($page_affichee); 
            for($j = ($page_affichee); $j < $nb_pages; $j++) 
            { 
                $p = $j + 1; 
                $barre_nav .= " | <a href=\"". $url . $j ."\" title=\"page ". $p ."\">". $p ."</a>"; 
            } 
        } 
         
        /* On peut définir en plus la situation dans une autre variable à afficher ailleurs */ 
        $page_affichee = "Page ". $page_affichee ." sur un total de ". $nb_pages ." pages."; 
    } 
    else 
    { 
        /* Nous n'avons qu'une seule page, on peut se contenter d'afficher juste page 1/1 */ 
        $barre_nav .= "page 1/1"; 
    } 
    /** 
    On peut maintenant afficher notre page. On va commencer par récupérer les informations 
    On doit définir à partir de quelle nouvelle on doit récupérer les données dans la clause LIMIT. 
     */ 
    $debut = $page_en_cours * $nb_im_par_page; 
    $sql_n = "SELECT IDas,DATEas, TITastuce, TEXastuce FROM tastuce WHERE IDas=".$IDas." LIMIT ". $debut .", ". $nb_im_par_page .";"; 
    $im = mysql_query($sql_n); 
?> 

 <p class="navigation"><?php echo($barre_nav); ?>
   <br>
   </p>
            <?php while ($image = mysql_fetch_assoc($im))  {
			$TitreTexteAgenda = $image['TITastuce'];
            $txt3 = $image['TEXastuce'];
		 
		 
		 // bbcode
$txt3 = str_replace("\n'", "<br /> ", $txt3);			
$txt3 = str_replace("\'", "'", $txt3); 
$txt3 =  preg_replace("!\[b\](.+)\[/b\]!isU" , "<strong>$1</strong>", $txt3); 
$txt3 =  preg_replace("!\[i\](.+)\[/i\]!isU" , "<em>$1</em>", $txt3);
$txt3 =  preg_replace("!\[s\](.+)\[/s\]!isU" ,  "<span class=\"souligne\">$1</span>", $txt3);
$txt3 =  preg_replace("!\[left\](.+)\[/left\]!isU" ,  "<div align=\"left\">$1</div>", $txt3);
$txt3 =  preg_replace("!\[ctr\](.+)\[/ctr\]!isU" ,  "<div align=\"center\">$1</div>", $txt3);
$txt3 =  preg_replace("!\[right\](.+)\[/right\]!isU" ,  "<div align=\"right\">$1</div>", $txt3);
$txt3 =  preg_replace("!\[red\](.+)\[/red\]!isU" ,  "<span class=\"style3\">$1</span>", $txt3);
$txt3 =  preg_replace("!\[blue\](.+)\[/blue\]!isU" ,  "<span class=\"style4\">$1</span>", $txt3);
$txt3 =  preg_replace("!\[green\](.+)\[/green\]!isU" ,  "<span class=\"style5\">$1</span>", $txt3);
$txt3 =  preg_replace("!\[purple\](.+)\[/purple\]!isU" ,  "<span class=\"style6\">$1</span>", $txt3);
$txt3 =  preg_replace("!\[yellow\](.+)\[/yellow\]!isU" ,  "<span class=\"style7\">$1</span>", $txt3);
$txt3 =  preg_replace("!\[orang\](.+)\[/orang\]!isU" ,  "<span class=\"style8\">$1</span>", $txt3);
$txt3 =  preg_replace("!\[black\](.+)\[/black\]!isU" ,  "<span class=\"style9\">$1</span>", $txt3);
$txt3 =  preg_replace("!\[white\](.+)\[/white\]!isU" ,  "<span class=\"style10\">$1</span>", $txt3);
$txt3 =  preg_replace("!\[grey\](.+)\[/grey\]!isU" ,  "<span class=\"style11\">$1</span>", $txt3);
$txt3 =  preg_replace("!\[img\](.+)\[/img\]!isU" , "<img src=\"admin/$1\">", $txt3);
$txt3 =  preg_replace("!\[url\](.+)\[/url\]!isU" , "<a href=\"http://$1</a>", $txt3);
$txt3 =  preg_replace("!\[mail\](.+)\[/mail\]!isU" , "<a href=\"mailto:$1</a>", $txt3);
$txt3 =  preg_replace("!\[size10\](.+)\[/size10\]!isU" ,  "<span class=\"style12\">$1</span>", $txt3);
$txt3 =  preg_replace("!\[size12\](.+)\[/size12\]!isU" ,  "<span class=\"style13\">$1</span>", $txt3);
$txt3 =  preg_replace("!\[size14\](.+)\[/size14\]!isU" ,  "<span class=\"style14\">$1</span>", $txt3);
$txt3 =  preg_replace("!\[size16\](.+)\[/size16\]!isU" ,  "<span class=\"style15\">$1</span>", $txt3);
$txt3 =  preg_replace("!\[size20\](.+)\[/size20\]!isU" ,  "<span class=\"style16\">$1</span>", $txt3);
$txt3 =  preg_replace("!\[size24\](.+)\[/size24\]!isU" ,  "<span class=\"style17\">$1</span>", $txt3);
$txt3 =  preg_replace("!\[size34\](.+)\[/size34\]!isU" ,  "<span class=\"style18\">$1</span>", $txt3);
?>
            <span class="style9">
            <br>
            <?php 
	$TitreTexteAgenda = str_replace("\'", "'", $TitreTexteAgenda);
    $TitreTexteAgenda = str_replace('\"', '"', $TitreTexteAgenda); 
	echo $TitreTexteAgenda ; 
	?>
            </span>            <table width="579" height="81" border="1" cellpadding="0" cellspacing="0">
              <tr>
                <td height="79" align="left" valign="top" bgcolor="#FFCC33"><?php echo nl2br( $txt3 ); ?><br></td>
              </tr>
            </table>  
              <span  class="style9"> Ecrit le : <?php echo $image['DATEas'];?>
            </span> <?php }  ?>
           <p class="navigation"><?php echo($barre_nav); ?></p>
		  <?php } ?>		
while ($image = mysql_fetch_assoc($im))
etant la ligne 327

Et l'erreur etant

Code : Tout sélectionner

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-7\www\sitedebase\astuce.php on line 327
L'echo de la premiere page m'affiche bien ceci
SELECT IDas,DATEas, TITastuce, TEXastuce FROM tastuce WHERE IDas=2 LIMIT 0, 1; 
Mais quand je clic sur la deuxieme ou etc ca m'affiche sa:
SELECT IDas,DATEas, TITastuce, TEXastuce FROM tastuce WHERE IDas=LIMIT 0, 1;

Donc l'erreur viend du faite que je ne passe pas l'id de mon astuce mais comment faire une astuce. :lol:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

16 nov. 2006, 20:13

2 possibilités :
  • passer la valeur de IDas en paramètre dans l'URL
    et la récupérer au moyen de la méthode GET
  • utiliser les sessions

Eléphant du PHP | 258 Messages

16 nov. 2006, 20:18

la premiere possibliter c'est se que je fais elle et passé dans l'url puis je la recupere par GET.

Mais j'ai trouver en faite comme une fois choisi la premiere astuce il n'est pas important de l'ordre j'ai fait ceci:
if (isset($_GET['IDastuce']))
	{
    $sql_n = "SELECT IDas,DATEas, TITastuce, TEXastuce FROM tastuce WHERE IDas=".$IDas." LIMIT ". $debut .", ". $nb_im_par_page .";"; 
    $im = mysql_query($sql_n); 
    }
    else
	{
    $sql_n = "SELECT IDas,DATEas, TITastuce, TEXastuce FROM tastuce LIMIT ". $debut .", ". $nb_im_par_page .";"; 
    $im = mysql_query($sql_n); 
	}
Merci j'espere que cette fois c'est resolu