Scinder le résultat d'une liste en plusieur tableau

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Scinder le résultat d'une liste en plusieur tableau

Re: Scinder le résultat d'une liste en plusieur tableau

par Elie » 02 juil. 2014, 19:55

Pourtant ton code est bien pourri ...
Tu met $execution = @mysql_query($req) or die(mysql_error()); avant la variable $req ... ?

Tu ouvres 3 boucles : while( foreach( et foreach( et tu en ferme que 2 ....

Je serais toi, j'utiliserai mysql_fetch_array() pour afficher les noms des champs ... $lignes['nom_du_champ'] plutot que $lignes[0] et un commentaire.
Je serais toi, je mettrai la connexion a la base de données directement dans le fichier configuration ... Ca évite de le repeter a chaque page.
<?php

	include("/configuration.inc.php");

	$connection = @mysql_connect( $serveur, $utilisateur, $motdepasse ) or die( 'Connection impossible' );
	@mysql_select_db( "immeubles", $connection ) or die( "Sélection de la base impossible" );
	
	$result = array();
	$req = 'SELECT * FROM residence ORDER BY Quartier';
	$execution = @mysql_query($req) or die(mysql_error());

	while($row = mysql_fetch_row($req)) {  
	 $result[$row[1]][] = $row;
	}
 
	foreach($result as $quartier => $array) {
		
	 echo 'Le quartier '.$quartier.'<br />';
	 
	  foreach($array as $lignes) {
		echo '<tr><td>'.$lignes[0].'</td>'."\n"; // Numéro de l'immeuble généré automatiquement
		echo '<td>'.$lignes[1].'</td>'."\n"; // Nom du quartier
		echo '<td><a href="fiche_immeuble.php?nimmeuble='.$lignes[0].'">'.$lignes[2].'</a></td>'."\n"; // Nom de l'immeuble
		echo '<td>'.$lignes[4].'</td>'."\n"; // Code Postal
		echo '<td>'.$lignes[5].'</td>'."\n"; // Ville
		echo '<td>'.$lignes[9].'</td>'."\n"; // Année de construction
		echo '<td>'.$lignes[10].'</td>'."\n"; // Type d'immeuble
		}
	}

?>

Re: Scinder le résultat d'une liste en plusieur tableau

par Casperski35 » 02 juil. 2014, 19:32

Voici mon nouveau code :
 <?php

include("/configuration.inc.php");



		

  // connection à la base de données
  $connection = @mysql_connect( $serveur, $utilisateur, $motdepasse ) or die( 'Connection impossible' );
  // Sélection de la BdD
@mysql_select_db( "immeubles", $connection ) or die( "Sélection de la base impossible" );

$execution = @mysql_query( $req ) or die(mysql_error());
///./*echo  "Votre requête renvoie une erreur ! MySQL dit : ". mysql_error();*/

$req = 'SELECT * FROM residence ORDER BY Quartier'; 


$result = array();


while($row = mysql_fetch_row($req)) {
  $result[$row[1]][] = $row;
 

foreach($result as $quartier => $array) {
 echo 'Le quartier '.$quartier.'<br />';
  foreach($array as $lignes) {
  echo '<tr><td>'.$lignes[0].'</td>'."\n"; // Numéro de l'immeuble généré automatiquement
                                echo '<td>'.$lignes[1].'</td>'."\n"; // Nom du quartier
                                printf ("<td><a href=\"fiche_immeuble.php?nimmeuble=%s\" >",$lignes[0]);
                                echo $lignes[2].'</a></td>'."\n"; // Nom de l'immeuble
                                echo '<td>'.$lignes[4].'</td>'."\n"; // Code Postal
                                echo '<td>'.$lignes[5].'</td>'."\n"; // Ville
                                echo '<td>'.$lignes[9].'</td>'."\n"; // Année de construction
                                echo '<td>'.$lignes[10].'</td>'."\n"; // type d'immeuble
 
}
}	

?>
Je n'ai plus l'erreur Query was empty

Mais j'ai une erreur Parse error: syntax error, unexpected $end in C:\xampp\htdocs\sylvain\essai7.php on line 43

Du coup comme la ligne 43 ferme le codage PHP, je ne comprend pas trop ce qu'il cloche.

Manque t-il une instruction avant?

Re: Scinder le résultat d'une liste en plusieur tableau

par Invité » 17 juin 2014, 19:42

Effectivement cela me parait logis de fermer le crochet.

Le code comme cela provoque le message Query was empty

Je suis convaincu qu'il face fermer les deux accolades et surement placer le code echo '</tr>'

Mais mes multiples essais provoques l'erreur Parse error: syntax error, unexpected $end in pour la dernière ligne qui ferme le code PHP.
<?php
		
include("/configuration.inc.php");

  // connection à la base de données
  $connection = @mysql_connect( $serveur, $utilisateur, $motdepasse ) or die( 'Connection impossible' );
  // Sélection de la BdD
@mysql_select_db( "immeubles", $connection ) or die( "Sélection de la base impossible" );

$execution = @mysql_query( $req ) or die(mysql_error());
///./*echo  "Votre requête renvoie une erreur ! MySQL dit : ". mysql_error();*/


$result = array();
$req = mysql_query('SELECT * FROM residence ORDER BY Quartier');
while($row = mysql_fetch_row($req)) {
 $result[$row[1]][] = $row;
}

foreach($result as $quartier => $array) {
 echo 'Le quartier '.$quartier.'<br />';
  foreach($array as $lignes) {
  echo '<tr><td>'.$lignes[0].'</td>'."\n"; // Numéro de l'immeuble généré automatiquement
                                echo '<td>'.$lignes[1].'</td>'."\n"; // Nom du quartier
                                printf ("<td><a href=\"fiche_immeuble.php?nimmeuble=%s\" >",$lignes[0]);
                                echo $lignes[2].'</a></td>'."\n"; // Nom de l'immeuble
                                echo '<td>'.$lignes[4].'</td>'."\n"; // Code Postal
                                echo '<td>'.$lignes[5].'</td>'."\n"; // Ville
                                echo '<td>'.$lignes[9].'</td>'."\n"; // Année de construction
                                echo '<td>'.$lignes[10].'</td>'."\n"; // type d'immeuble
}
}								
?>

Re: Scinder le résultat d'une liste en plusieur tableau

par Elie » 17 juin 2014, 08:30

Faut chercher avant de demander sinon on apprend pas ...

$result[$row[1]][] = $row;

Re: Scinder le résultat d'une liste en plusieur tableau

par Invité » 16 juin 2014, 23:37

Merci pour ta proposition de code.

Voici comment j'ai modifier le code :
<?php
		
include("/configuration.inc.php");

  // connection à la base de données
  $connection = @mysql_connect( $serveur, $utilisateur, $motdepasse ) or die( 'Connection impossible' );
  // Sélection de la BdD
@mysql_select_db( "immeubles", $connection ) or die( "Sélection de la base impossible" );

$execution = @mysql_query( $req ) or die(mysql_error());
///./*echo  "Votre requête renvoie une erreur ! MySQL dit : ". mysql_error();*/


$result = array();
$req = mysql_query('SELECT * FROM residence ORDER BY Quartier');
while($row = mysql_fetch_row($req)) {
 $result[$row[1][] = $row;
}

foreach($result as $quartier => $array) {
 echo 'Le quartier '.$quartier.'<br />';
  foreach($array as $lignes) {
  echo '<tr><td>'.$lignes[0].'</td>'."\n"; // Numéro de l'immeuble généré automatiquement
                                echo '<td>'.$lignes[1].'</td>'."\n"; // Nom du quartier
                                printf ("<td><a href=\"fiche_immeuble.php?nimmeuble=%s\" >",$lignes[0]);
                                echo $lignes[2].'</a></td>'."\n"; // Nom de l'immeuble
                                echo '<td>'.$lignes[4].'</td>'."\n"; // Code Postal
                                echo '<td>'.$lignes[5].'</td>'."\n"; // Ville
                                echo '<td>'.$lignes[9].'</td>'."\n"; // Année de construction
                                echo '<td>'.$lignes[10].'</td>'."\n"; // type d'immeuble
								
?>
Et j'ai l'erreur suivante :
Parse error: syntax error, unexpected ';', expecting ']' in C:\xampp\htdocs\sylvain\essai6.php on line 17

La ligne 17 en question est celle-ci :
 $result[$row[1][] = $row;

Re: Scinder le résultat d'une liste en plusieur tableau

par Elie » 16 juin 2014, 21:10

Pour la ligne sur 2 en couleur c'est du CSS3
li:nth-child(odd) {
    color: green;
}
li:nth-child(even) {
    color: red;
}
Après quand je veux faire des tris de tableaux je fais ca :
$result = array();
$req = mysql_query('SELECT * FROM residence ORDER BY Quartier');
while($row = mysql_fetch_row($req)) {
 $result[$row[1][] = $row;
}

foreach($result as $quartier => $array) {
 echo 'Le quartier '.$quartier.'<br />';
  foreach($array as $lignes) {
  echo '<tr><td>'.$lignes[0].'</td>'."\n"; // Numéro de l'immeuble généré automatiquement
                                echo '<td>'.$lignes[1].'</td>'."\n"; // Nom du quartier
                                printf ("<td><a href=\"fiche_immeuble.php?nimmeuble=%s\" >",$lignes[0]);
                                echo $lignes[2].'</a></td>'."\n"; // Nom de l'immeuble
                                echo '<td>'.$lignes[4].'</td>'."\n"; // Code Postal
                                echo '<td>'.$lignes[5].'</td>'."\n"; // Ville
                                echo '<td>'.$lignes[9].'</td>'."\n"; // Année de construction
                                echo '<td>'.$lignes[10].'</td>'."\n"; // type d'immeuble
 } 
}

Scinder le résultat d'une liste en plusieur tableau

par Casperski35 » 16 juin 2014, 21:02

Bonjour,

Je voudrais faire une liste d'immeubles scinder par quartiers.

Le code suivant le fait bien, mais toujours dans un même tableau. Mais dès que je commence à intégrer la commande
<table border="1" width=800>
le détail des noms de colonnes pour le premier quartier disparait.

Ayant triturer ce code dans tous les sens ainsi que mes recherches sur le net, ne me font pas avancer sur ma problématique.

De ce fait seriez vous comment scinder ma liste d'immeuble par quartier comme suit :

Quartier: A
|---------------------------------------------------------|
|Id|Quartier|Nom de l'immeuble|C.P.|Ville|Année|Type|
|-------------------------------------------------------------|
|01|A|Immeuble 1 quartier A|35200|Rennes|1972|Avec terrasse|
|-------------------------------------------------------------|
|03|A |Immeuble 2 quartier A|35200|Rennes|1972|Avec terrasse|
|-------------------------------------------------------------|


Quartier: B
|---------------------------------------------------------|
|Id|Quartier|Nom de l'immeuble|C.P.|Ville|Année|Type|
|-------------------------------------------------------------|
|02|B|Immeuble 1 quartier B|35200|Rennes|1972|Avec terrasse|
|-------------------------------------------------------------|
|04|B |Immeuble 2 quartier B|35200|Rennes|1972|Avec terrasse|
|-------------------------------------------------------------|

Voici le code :
<table><br/>
      <h1> Liste des immeubles par quartier:
			<th>Id</th>
			<th>Quartier</th>
			<th>Nom  de l'immeuble</th>
			<th>C.P.</th>
			<th>Ville</th>
			<th>Année</th>
			<th>Type</th>
	 </h1>

 <table border="1" width=800>
	 
<?php

include("/configuration.inc.php");


$sql = 'SELECT * FROM residence ORDER BY Quartier'; 
		

  // connection à la base de données
  $connection = @mysql_connect( $serveur, $utilisateur, $motdepasse ) or die( 'Connection impossible' );
  // Sélection de la BdD
@mysql_select_db( "immeubles", $connection ) or die( "Sélection de la base impossible" );

$execution = @mysql_query( $sql ) or die(mysql_error());
///./*echo  "Votre requête renvoie une erreur ! MySQL dit : ". mysql_error();*/




 // Creation et envoi de la requete

			$result = mysql_query($sql);
			$passage = 0;
			
			while($lignes = mysql_fetch_row($result)) //Tant qu'il y a un enregistrement dans la table on l'associe à une ligne du tableau
			
			
			
			// var_dump($lignes) ;
			
			
			
			
			{	
				if ($passage==0)  {
					$passage = 1;
					$valeur_comp = $lignes[1];
				echo '<p><b>Quartier '.$lignes[1].'</b></p>';
					}
					
				if ($valeur_comp !=  $lignes[1])  echo '
				<tr><td></td><th>Quartier '.$lignes[1].'</th><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr>
				<th>Id</th><th>Quartier</th><th>Nom  de l\'immeuble</th><th>C.P.</th><th>Ville</th><th>Année</th><th>Type</th>';

			
				//Affichage du tableau avec les valeurs de la ligne courante
				echo '<tr><td>'.$lignes[0].'</td>'."\n"; // Numéro de l'immeuble généré automatiquement
				echo '<td>'.$lignes[1].'</td>'."\n"; // Nom du quartier
				printf ("<td><a href=\"fiche_immeuble.php?nimmeuble=%s\" >",$lignes[0]);
				echo $lignes[2].'</a></td>'."\n"; // Nom de l'immeuble
				echo '<td>'.$lignes[4].'</td>'."\n"; // Code Postal
				echo '<td>'.$lignes[5].'</td>'."\n"; // Ville
				echo '<td>'.$lignes[9].'</td>'."\n"; // Année de construction
				echo '<td>'.$lignes[10].'</td>'."\n"; // type d'immeuble
				
				$valeur_comp = $lignes[1];
				
					
			}

?>	
Dans un deuxième temps je rajouterais de classes pour faire une ligne sur deux avec différentes couleurs.