8791 sujets

Développement web côté serveur, CMS

Bonjour,
J'ai un probleme concernant une variable
mon script ne passe pas dans cette variable située à la fin (9eme ligne en partant de la fin)

'.$row_rub['rubrique_user'].'

Voici le script en question

require('connexion.inc.php'); 
					$sql_rub = 'Select rubrique_user, nom_rubrique From rubriques Order By rand()Limit 0,23'; 
					$result_rub = mysql_query($sql_rub) or die(mysql_error()); 	
					  echo '<table align="center">';
		while($row_rub = mysql_fetch_assoc($result_rub)) 
				{
				
	
			
				
					$sql_img = 'Select id_user, chemin_image From users_images Natural Join users Where rubrique_user='.$row_rub['rubrique_user'].' Order By Rand() Limit 1';
					$result_img = mysql_query($sql_img);
					$row_img = mysql_fetch_assoc($result_img);	
			
			
			
	
		//met les donn&eacute;es dans un tableau
  
  				$tablo[]=$row_img;
			
  	}			
   $nbcol=3;

  $nb=count($tablo);
  for($i=0;$i<$nb;$i++){
   
  //les valeurs &agrave; afficher
  $valeur1=$tablo[$i]['chemin_image'];
  $imprime=$tablo[$i]['id_user'];
	$taille= getimagesize($valeur1);
	$affiche=122; 


            $image='uploads/$valeur1'; // adresse de l'image 
           if (!file_exists($valeur1)) 
       // image de substitution 
        { 
        $valeur1='td/nopic.gif'; 
        $largeur2=120; 
        $hauteur2=120; 
         } 
        else 
        { 
            $taille=getimagesize($valeur1); 
            $largeur=$taille[0]; 
            $hauteur=$taille[1]; 

            //si mon image est verticale ou carr&eacute;e 
            if ($hauteur>=$largeur) 
            { 
            $hauteur2=$affiche; 
            $largeur2=round(($hauteur2/$hauteur)*$largeur); 
            } 

            //si mon image est horizontale ou carr&eacute;e 
            else 
            { 
            $largeur2=$affiche; 
            $hauteur2=round(($largeur2/$largeur)*$hauteur); 
            } 
			
		
       } 
  if($i%$nbcol==0)
  echo '<tr align="center">';
 
  echo '
  <td class="fondiv" background="td/div_'.$row_rub['rubrique_user'].'.gif" width="140" height="148" >
   <a href="http://www.myurl.com/news.php?forprint='.$imprime.'"> 
  <div align="center" style="margin-top:-20px" ><img src="',$valeur1,'" height=',$hauteur2,'></div>
  </a>
</td>
<td><img src="img/pix.gif" width="3px" alt="" /></td>';
  if($i%$nbcol==($nbcol-1))
 

  echo '</tr>';
 }  echo '</table>';


Comment puis-je faire pour y remédier.
Merci d'avance
Modifié par pareto (30 Mar 2010 - 18:56)
Salut,

euh... c'est quoi ce code ?
$affiche_image = $row_rub = mysql_fetch_assoc($result_rub)

            $image='uploads/$valeur1'; // adresse de l'image 
Smiley rolleyes
salut, oui c'est rien juste un residu de copier/coller...
Smiley confused
j'edite...


require('connexion.inc.php'); 
					$sql_rub = 'Select rubrique_user, nom_rubrique From rubriques Order By rand()Limit 0,23'; 
					$result_rub = mysql_query($sql_rub) or die(mysql_error()); 	
					  echo '<table align="center">';
		while($row_rub = mysql_fetch_assoc($result_rub)) 
				{
				
	
			
				
					$sql_img = 'Select id_user, chemin_image From users_images Natural Join users Where rubrique_user='.$row_rub['rubrique_user'].' Order By Rand() Limit 1';
					$result_img = mysql_query($sql_img);
					$row_img = mysql_fetch_assoc($result_img);	
			
			
			
	
		//met les donn&eacute;es dans un tableau
  
  				$tablo[]=$row_img;
			
  	}			
   $nbcol=3;

  $nb=count($tablo);
  for($i=0;$i<$nb;$i++){
   
  //les valeurs &agrave; afficher
  $valeur1=$tablo[$i]['chemin_image'];
  $imprime=$tablo[$i]['id_user'];
	$taille= getimagesize($valeur1);
	$affiche=122; 


            $image='uploads/$valeur1'; // adresse de l'image 
           if (!file_exists($valeur1)) 
       // image de substitution 
        { 
        $valeur1='td/nopic.gif'; 
        $largeur2=120; 
        $hauteur2=120; 
         } 
        else 
        { 
            $taille=getimagesize($valeur1); 
            $largeur=$taille[0]; 
            $hauteur=$taille[1]; 

            //si mon image est verticale ou carr&eacute;e 
            if ($hauteur>=$largeur) 
            { 
            $hauteur2=$affiche; 
            $largeur2=round(($hauteur2/$hauteur)*$largeur); 
            } 

            //si mon image est horizontale ou carr&eacute;e 
            else 
            { 
            $largeur2=$affiche; 
            $hauteur2=round(($largeur2/$largeur)*$hauteur); 
            } 
			
		
       } 
  if($i%$nbcol==0)
  echo '<tr align="center">';
 
  echo '
  <td class="fondiv" background="td/div_'.$row_rub['rubrique_user'].'.gif" width="140" height="148" >
   <a href="http://www.myurl.com/news.php?forprint='.$imprime.'"> 
  <div align="center" style="margin-top:-20px" ><img src="',$valeur1,'" height=',$hauteur2,'></div>
  </a>
</td>
<td><img src="img/pix.gif" width="3px" alt="" /></td>';
  if($i%$nbcol==($nbcol-1))
 

  echo '</tr>';
 }  echo '</table>';


ça y est j'ai édité
Modifié par pareto (29 Mar 2010 - 21:28)
salut

while($row_rub = mysql_fetch_assoc($result_rub)) 


le debut de la boucle


} 
$nbcol=3; 

la fin de cette boucle

d/div_'.$row_rub['rubrique_user']


et son utilisation.. à toi d'en déduire ce que tu dois faire

et puis tu peux tout placer dans le while. il faut juste repenser ton code. et puis mysql_real_escape_string c'est très important aussi, pense-y Smiley cligne

et s'il te plait, vire çà : or die(mysql_error());

plutôt :


if ($result_rub) {
   // je traite
} else {
    // erreur
}


çà evite de dévoiler des infos que seul tu dois connaitre.
Modifié par keran (29 Mar 2010 - 22:02)
Bonsoir, merci des conseils, je vais m'y remettre

Bon apres reflexion j'ai ça


require('connexion.inc.php'); 

$sql_rub = 'Select rubrique_user, nom_rubrique From rubriques Order By rand()Limit 0,23'; 

$result_rub = mysql_query($sql_rub); 
echo '<table align="center">';

		//debut de la boucle	
		while($row_rub = mysql_fetch_assoc($result_rub)) 
				{
				$sql_img = 'Select id_user, chemin_image From users_images Natural Join users Where rubrique_user='.$row_rub['rubrique_user'].' Order By Rand() ';
				$result_img = mysql_query($sql_img);
				$row_img = mysql_fetch_assoc($result_img);		
		
					//met les données dans un tableau
  					$tablo[]=$row_img;
		
					// nombre de colonnes desirées
   						$nbcol=3; 
						
						$nb=count($tablo);
						
						for($i=0;$i<$nb;$i++)
						
						
						//debut de la condition
							{
								//les valeurs à afficher
								$valeur1=$tablo[$i]['chemin_image'];
								$imprime=$tablo[$i]['id_user'];
								$taille= getimagesize($valeur1);
								$affiche=122; 
	
								// adresse de l'image 
								$image='uploads/$valeur1'; 
								if (!file_exists($valeur1)) 

										// image de substitution 
       										{ 
												$valeur1='td/nopic.gif'; 
												$largeur2=120; 
										        $hauteur2=120; 
									        } 
											
        						//sinon image existante
								else 
											{ 
									            $taille=getimagesize($valeur1); 
									            $largeur=$taille[0]; 
									            $hauteur=$taille[1]; 

            									//si mon image est verticale ou carrée 
												
												if ($hauteur>=$largeur) 
            										{ 
											  		  	$hauteur2=$affiche; 
										       			$largeur2=round(($hauteur2/$hauteur)*$largeur); 
            										} 
			
            									//si mon image est horizontale ou carrée 
						        				else 
            										{ 
							    		        		$largeur2=$affiche; 
									            		$hauteur2=round(($largeur2/$largeur)*$hauteur); 
           						 					}	 
      											} 
							//fin de la condition de l'image existante
							}	
  
  //si le nombre de colonne est différent de 0
  if($i%$nbcol==0)
 
 echo '<tr align="center">';
  echo '<td class="fondiv" background="td/div_'.$row_rub['rubrique_user'].'.gif" width="140" height="148" ><a href="http://www.myurl.com/news.php?forprint='.$imprime.'"><div align="center" style="margin-top:-20px"><img src="',$valeur1,'" height=',$hauteur2,'></div></a></td><td><img src="img/pix.gif" width="3px" alt="" />
  </td>';
 

if($i%$nbcol==($nbcol-1))

 	echo '</tr>';
//fin de la boucle while
		 } 	 	
 
 		echo '</table>'; 	



Mais là j'ai bien le fond donc la variable incriminée est bien interpretée mais j'ai un décalage sur la 1ere ligne. J'ai :

1 2
3 4 5
6 7 8
en fait je n'ai pas 3 resultats sur la 1er ligne...
mais 2 puis 3 sur la seconde et 3 sur la troisieme etc...
logiquement j'aurai du avoir 3 + 3 + 2(sur la derniere ligne)

Je ne comprends pas !!!!! Smiley decu Smiley decu
voici ce que j'obtiens...

upload/25609-pareto.jpg


Si je fais un echo'.$i.' je commence par i=1 et pas par i=0....
c'est normal ?
Modifié par pareto (30 Mar 2010 - 13:41)
Bon, j'avance...

j'arrive à aligner sur 3 colonnes et afficher les images avec les fonds correspondants,
par contre lorsque dans la rubrique il n'y a pas d'image , le fond n'apparait pas. C'est logique mais alors comment puis-je faire pour que celui ci apparaisse ?

j'espere etre clair...

voici le script


require('connexion.inc.php'); 


//$sql_rub = 'Select rubrique_user, nom_rubrique From rubriques Order By rand()Limit 0,21'; 
$sql_rub = 'Select rubrique_user, nom_rubrique From rubriques Order By rubrique_user limit 0,6'; 
$result_rub = mysql_query($sql_rub); 
if(mysql_num_rows($result_rub) > 0) {   
echo '<table align="center">';

		//debut de la boucle	
		while($row_rub = mysql_fetch_assoc($result_rub)) 
				{
				$sql_img = 'Select id_user, chemin_image From users_images Natural Join users Where rubrique_user='.$row_rub['rubrique_user'].' Order By rand()';
				$sql_cadre = 'Select rubrique_user, nom_rubrique From rubriques  Natural Join users Where rubrique_user='.$row_rub['rubrique_user'].' Order By rand()';
				$result_img = mysql_query($sql_img);
				$result_cadre = mysql_query($sql_cadre);
				$row_img = mysql_fetch_assoc($result_img);		
				$row_cadre = mysql_fetch_assoc($result_cadre);	
				
				
					//met les données dans un tableau
					
  					$tablo[]=$row_img;
					$tablocadre[]=$row_cadre;
		}
					// nombre de colonnes desirées
   						$nbcol=3; 
						
						$nb=count($tablo);
						
						for($i=0;$i<$nb;$i++)
						
						
						//debut de la condition
							{
								//les valeurs à afficher
								$valeur1=$tablo[$i]['chemin_image'];
								$imprime=$tablo[$i]['id_user'];
								$row_cadre=$tablocadre[$i]['rubrique_user'];
								$taille= getimagesize($valeur1);
								$affiche=122; 
	
								// adresse de l'image 
								$image='uploads/$valeur1'; 
								if (!file_exists($valeur1)) 

										// image de substitution 
       										{ 
												$valeur1='td/nopic.gif'; 
												$largeur2=120; 
										        $hauteur2=120; 
									        } 
											
        						//sinon image existante
								else 
											{ 
									            $taille=getimagesize($valeur1); 
									            $largeur=$taille[0]; 
									            $hauteur=$taille[1]; 

            									//si mon image est verticale ou carrée 
												
												if ($hauteur>=$largeur) 
            										{ 
											  		  	$hauteur2=$affiche; 
										       			$largeur2=round(($hauteur2/$hauteur)*$largeur); 
            										} 
			
            									//si mon image est horizontale ou carrée 
						        				else 
            										{ 
							    		        		$largeur2=$affiche; 
									            		$hauteur2=round(($largeur2/$largeur)*$hauteur); 
           						 					}	 
      											} 
							//fin de la condition de l'image existante
							//}	
  
  //si le nombre de colonne est différent de 0
  if($i%$nbcol==0)
 
 echo '<tr align="center">';
  echo '<td class="fondiv" background="td/div148_'.$row_cadre.'.gif" width="140" height="148" ><a href="http://www.myurl.com/news.php?forprint='.$imprime.'"><div align="center" style="margin-top:-20px"><img src="',$valeur1,'" height=',$hauteur2,'></div></a></td><td><img src="img/pix.gif" width="3px" alt="" />
</td>';
 

if($i%$nbcol==($nbcol-1))

 	echo '</tr>';
//fin de la boucle while
		 } 	 	
 
 		echo '</table>'; 	}