Récuperation d'informations dans ma base de données

Eléphant du PHP | 101 Messages

07 déc. 2006, 10:14

Bonjour Ajoloca,

On y est presque, je crois que tu brules ça marche presque parfaitement pour les categories c'est parfait, seul hic c'est que maintenant il ne s'affiche plus qu'un lien qui ce met comme pour les categories alors que dans ma base de données j'ai plusieurs liens par categorie et le but c'est que tous les liens se mettent en dessous de chaque categorie.

vraiment merci Ajoloca pour le temps que tu me consacres et l'aide que tu m'apportes.

Pour tes conseils :
Ne jamais utiliser les "short_open_tag" (<?) toujours utiliser <?php
je le note et pour
Tester le retour de MySQL or die() avec des messages parlants (ne pas oublier la requête incriminée)
j'avais supprimé ma requete pour que le code soitl e plus clair possible.

à tres bientot,
muriel

Mammouth du PHP | 592 Messages

07 déc. 2006, 10:31

oui alors on avai pas compris ça du tout !!!!

en fai ttu as besoin d'une boucle imbriquée !! enfin si je comprend bien :lol:
<?php     
include("../_connexion.php");     
$req = 'SELECT categorie FROM lien GROUP BY categorie ORDER BY categorie, liens_1';     
$res = mysql_query($req) or die('ERR_SQL : ' . $req . '<br />' . mysql_error());   
$lastCat='';
while ($nbl= mysql_fetch_array($res))
{ 
   if($nbl['categorie'] != $lastCat)
   { 
      $lastCat = $nbl['categorie']; 
      echo '<h3>Cat&eacute;gorie : ' . $lastCat . '</h3><br>'; 
		$req2 = 'SELECT lien FROM lien where categorie=\''.$lastCat.'\';';     
		$res2 = mysql_query($req) or die('ERR_SQL : ' . $req2 . '<br />' . mysql_error());   
		while ($nbl2= mysql_fetch_array($res2))
		{
		 echo ''.$nbl2[0].'<br>'
		}
   } 
   echo 'Lien : ' . $nbl['liens_1'] . '<br />'; 
} 
?> 

Eléphant du PHP | 101 Messages

07 déc. 2006, 11:02

Bonjour fred9999,

Merci vraiment pout ton aide fred9999 tu as reussi à faire que ce code marche parfaitement bien, alors que mes explications de depart n'etait pas tres claires, désolée pour cette perte de temps !?
Je voudrais aussi remercié chaleureusement Ajoloca pour sa contribution tres importante à la reussite de celui ci et merci à tous les autres...

Ce forum est vraiment genial, et l'ambiance y est tres agreable,longue vie à phpfrance.

Et encore merci de votre aide.

Je mets le code ci-dessous avec qq petites rectifications pour ceux que cela peut interresser:
<?php      
include("../_connexion.php");      
$req = 'SELECT categorie FROM lien GROUP BY categorie ORDER BY categorie, liens_1';      
$res = mysql_query($req) or die('ERR_SQL : ' . $req . '<br />' . mysql_error());    
$lastCat=''; 
while ($nbl= mysql_fetch_array($res)) 
{  
   if($nbl['categorie'] != $lastCat) 
   {  
      $lastCat = $nbl['categorie'];  
      echo '<h3>Cat&eacute;gorie : ' . $lastCat . '</h3><br>';  
        $req2 = 'SELECT liens_1 FROM lien where categorie=\''.$lastCat.'\';';      
        $res2 = mysql_query($req2) or die('ERR_SQL : ' . $req2 . '<br />' . mysql_error());    
        while ($nbl2= mysql_fetch_array($res2)) 
        { 
         echo ''.$nbl2[0].'<br>' ;
        } 
   }  
}  
?> 
à tres bientot,
muriel

ViPHP
ViPHP | 1961 Messages

07 déc. 2006, 11:04

Bonjour,

Je ne comprends pas bien.
Tes données sont sur une seule table ou sur plusieurs ?
Poste la structure de la table (ou tables) qui contient (contiennent) les données à traiter avec un petit commentaire sur les colonnes concernées.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Mammouth du PHP | 592 Messages

07 déc. 2006, 11:07

en fait le code es pas du tout optimiser tu peut normalement le faire en une requete :


<?php       
include("../_connexion.php");       
$req = 'SELECT categorie,lien FROM lien GROUP BY categorie ORDER BY categorie, liens_1';       
$res = mysql_query($req) or die('ERR_SQL : ' . $req . '<br />' . mysql_error());     
$lastCat='';  
while ($nbl= mysql_fetch_array($res))  
{   
   if($nbl['categorie'] != $lastCat)  
   {   
      $lastCat = $nbl['categorie'];   
      echo '<h3>Cat&eacute;gorie : ' . $lastCat . '</h3><br>';  
	  echo ''.$nbl[0].'<br>'; 
   } 
   else
    {
	echo ''.$nbl[0].'<br>';
	}
}   
?>

Mammouth du PHP | 592 Messages

07 déc. 2006, 11:09

en fait non comme ça :
<?php        
include("../_connexion.php");        
$req = 'SELECT categorie,lien FROM lien GROUP BY categorie ORDER BY categorie, liens_1';        
$res = mysql_query($req) or die('ERR_SQL : ' . $req . '<br />' . mysql_error());      
$lastCat='';   
while ($nbl= mysql_fetch_array($res))   
{    
   if($nbl[0] != $lastCat)   
   {    
      $lastCat = $nbl[0];    
      echo '<h3>Cat&eacute;gorie : ' . $lastCat . '</h3><br>';   
      echo ''.$nbl[1].'<br>';  
   }  
   else 
    { 
    echo ''.$nbl[1].'<br>'; 
    } 
}    
?> 
pb de variables :lol:

Eléphant du PHP | 101 Messages

07 déc. 2006, 11:19

bonjour Ajoloca,

Mes données sont sur 1 seule table dont voici la structure, tres simple

-- Structure de la table `lien`
--

CREATE TABLE `lien` (
`id` int(11) NOT NULL auto_increment,
`categorie` text NOT NULL,
`liens_1` text NOT NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=25;

pour repondre à fred9999 là le code ne convient plus car il me mets 1 fois la categorie et en dessous qu'1 seul lien au lieu de 8 dans ma base... donc pour le moment le code qui marche parfaitement bien c'est celui que je vous ai posté precedement !?

@++
muriel

ViPHP
ViPHP | 1961 Messages

07 déc. 2006, 11:27

Re,

Je suis étonné que celui-ci ne fonctionne pas
<?php    
include("../_connexion.php");    
$req = 'SELECT categorie, liens_1 FROM lien GROUP BY categorie ORDER BY categorie, liens_1';    
$res = mysql_query($req) or die('ERR_SQL : ' . $req . '<br />' . mysql_error());
$lastCat = '';   
while ($nbl= mysql_fetch_assoc($res)){
   if($nbl['categorie'] != $lastCat){
      $lastCat = $nbl['categorie'];
      echo '<h3>Cat&eacute;gorie : ' . $lastCat . '</h3>';
   }
   echo 'Lien : ' . $nbl['liens_1'] . '<br />';
}
?> 
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Mammouth du PHP | 592 Messages

07 déc. 2006, 11:46

le problème doit venir de l'order by je pense,

enleve lien_1

Eléphant du PHP | 101 Messages

07 déc. 2006, 12:10

Je vous confirme messieurs que ça ne marche pas meme en enlevant lien_1 dans l'order by, je vous mets l'affichage que cela me fait dans la page:

Catégorie : Divers
Lien : http://www.phpfrance.com/forums/

Catégorie : Liens et sites utiles
Lien : http://www.phpfrance.com

alors que dans le code que je vous ai mis en dernier en vous disant que ça marchait parfaitement, cela s'afficher comme cela:
Catégorie : Divers
Lien : http://www.phpfrance.com/forums/
Lien : http://www.google.fr/
Lien : http://fr.yahoo.com/
etc...

Catégorie : Liens et sites utiles
Lien : http://www.phpfrance.com
Lien : http://www.orange.fr/
etc...

en esperant qu'on va y arriver,lol ?! en tout cas merci de votre acharnement à tous les deux.

@++
muriel

Mammouth du PHP | 592 Messages

07 déc. 2006, 12:16

Juste une petite modification ..... que j'avais mis :lol: