Affichage.php

Fermé
blackmonkey Messages postés 3 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 14 mai 2005 - 14 mai 2005 à 16:33
 shi - 11 juil. 2005 à 14:25
Bonjour
Voila j'ai réussi a faire migrer un fichier texte vers ma base de données dedans il y 5 champs. Maintenant je veux faire plusieurs choses :
afficher ma base de donées en php j'ai deja fait ça :

<html>
<head>
<title>Page d'affichage</title>
</head>
<body>
<table border=1>
<tr>
<td align=center colspan=5>
Ce tableau me permet d'afficher les éléves.
</td>
</tr>
<?
///initialisation des variables de connexion a la base de donnée

$host="localhost" ;
$user="root" ;
$password="" ;
$nombd="mysql" ;

//connexion et selection de la base de donnée

$db=mysql_connect($host,$user,$password) ;
mysql_select_db ($nombd,$db) ;
$query="SELECT * FROM photos";
$result=mysql_query($query);
while($val=mysql_fetch_array($result))
{
$Numero=$val["Numero"];
$Nom=$val["Nom"];
$Prenom=$val["Prenom"];
$Groupe=$val["Groupe"];
$Sousgroupe=$val["Sousgroupe"];
print"<tr>";
print"<td>";
print"$Numero";
print"</td>";
print"<td>";
print"$Nom";
print"</td>";
print"<td>";
print"$Prenom";
print"</td>";
print"<td>";
print"$Groupe";
print"</td>";
print"<td>";
print"$Sousgroupe";
print"</td>";
print"</tr>";
}
mysql_close($db);
?>
</table>
</body>
</html>

Mais il y a beaucoup trop de résultats par page je veux que les résultats s'affichent sur plusieurs pages.
Je souhaite aussi rajouté un champ photo ou la photo est de la forme numero.jpg
Qqn pourrait m'aider ?
Merci

4 réponses

Hello blackmonkey,
alors je sais pas si ma solution est la meilleure mais je vois rien d'autre...
Donc, pour faire plusieurs pages contenant les resultats, tu pe utiliser des fonctions php de manipulation de fichiers(fopen, fput...), ainsi tu pe creer des pages html ou php a partir de ton code.
Bon j'espere ke tu vois ce ke je ve dire, sinon j'essairai de te filer plus d'explications.

++
0
salam
pour afficher les resultats sur +s pages je te propose tt d'abord d'utiliser la requette SQL suivante : "select * from photos limit $j,n"
ou n est le nombre de resultat que tu veux afficher par page.
et puis dans la page qui contient le formulaire (ou autre chose) qui lance la requette faire passer la variable $j ($j=0) a la page qui affiche les resultats .
(si c'est un formulaire qui est utilisé <form method=POST action="afficher.php?j=0">)
Et dans la page qui affiche utilise au debut de ton code php le code suivant ( $j=$_GET['j']; ) et puis creer 2 pages suiv.php et pred.php.
et dans le liens suivant utiliser ce code ( <a href="afficher.php?j=$j">lol</a> )
Enfin ds la page suiv.php utiliser le code suivant :
<?php
session_start();
$j=$_['j'];
$j=$j+n;
header("Location: afficher.php?j=$j");
?>
( afficher.php est la page qui affiche le resultat et n le nombre a afficher par page)
et de mm pr la page pred.php sauf qu'on utilise les $j=$j-n
0
desolé le code a employer dans la page suiv est :

<?
$j=$_GET['j'];
$j=$j+n;
header("Location: afficher.php?j=$j");
?>
0
Bonjour,
je souhaite créer un dico en ligne et souhaiterai avoir les résultats de la requête sur plusieurs pages. J'ai le code suivant mais voilà les problèmes :

- la page index.php (avec entete.php) se load = aucun bouton ou resultat = OK !
- on entre une recherche = affiche le résultat avec le bouton suivant = OK !
- clique sur suivant = bouton suivant et précédent sans les résultats = PAS OK !

Si quelqu'un pouvait m'aiguiller sur l'erreur !! Merci !

code du formulaire dans la pseudo-frame : (entete.php)

<?php
 require( "result.inc.php" );
?>
<form name="annuaire" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="text"   name="critere"   value="Votre recherche ici.     <?php if(!$critere) echo stripslashes( $critere ); ?>" size="17" onFocus='document.forms["annuaire"].elements["critere"].value =""'/>
<input type="submit" name="envoyer" value="Traduire"/><input type="hidden" name="recherche" value="1"/></form>


code de la page qui execute la requete en reponse au mot recherche dans le formulaire de entete.php (result.inc.php)

<?Php
 include( "mysql.inc.php" );
 require( "fonctions.inc.php" );
 $path_parts = pathinfo($_SERVER['PHP_SELF']);
$page = $path_parts["basename"];

// compte le nombre de données totales
$select = 'SELECT count(id) FROM japfr';
$execution = mysql_query($select,$connection)  or die ('Erreur : '.mysql_error() );
$row = mysql_fetch_row($execution);
$total = $row[0];

// fixe le nombre de résultat par page et donne son état à la base
$nombre = 5;
 if(isset($_GET['limite'])) $limite=$_GET['limite'];    else   $limite=0;

// vérifie qu'un mot a bien été entré
  if( isset( $_POST["recherche"] ) ) $recherche = $_POST["recherche"];
  else                               $recherche = 0;
  if( isset( $_POST["critere"] ) )   $critere   = $_POST["critere"];

//si mot entré, execute 2 requetes
  if( $recherche==1 && !empty( $critere) )
  {
    $requete    = "SELECT * FROM japfr WHERE fr LIKE '%" . stripslashes( $critere ) . "%' limit ".$limite.",".$nombre;
	$requete2    = "SELECT * FROM japfr WHERE fr LIKE '%" . stripslashes( $critere ) . "%'";
	$result  = mysql_query( $requete, $connection ) OR die( "Impossible d'executer la Requete !" );
    $result2  = mysql_query( $requete2, $connection ) OR die( "Impossible d'executer la Requete !" );
    $nbr_tuples = @mysql_num_rows( $result2 ) ;
	if ($nbr_tuples > 0) {
?>
<p class="s11">Résultat : <span class="b"><?php echo $nbr_tuples; ?></span><br />
Mot recherché :<span class="b""color:#FF0000"> <?php echo colorise_query( $critere,$critere,$critere); ?></span></p>
<?php
      while( $un_mot = mysql_fetch_array( $result )) 
      {
?><ul><li><p class="style2"><strong><?php echo colorise_query( $un_mot["fr"], $critere,"stabylo" ); ?></strong></li></ul></p>
<p class="style8"><?php echo $un_mot["jap"] . " " . $un_mot["pro"]; ?><br /></p>
<p class="style5"><?php echo $un_mot["com"]; ?><br />
</p>
<?php
      }
      mysql_free_result( $result );
	  mysql_free_result( $result2 );
}

// si première requete vide, execute 2eme requete 
    else
    {
      $requete    = "SELECT * FROM japfr WHERE jap LIKE '%" . stripslashes( $critere ) . "%' OR pro LIKE '%". stripslashes( $critere ) . "%' limit ".$limite.",".$nombre;
	  $result = mysql_query( $requete, $connection ) OR die( "Impossible d'executer la Requete !" );
	  $requete2    = "SELECT * FROM japfr WHERE jap LIKE '%" . stripslashes( $critere ) . "%' OR pro LIKE '%". stripslashes( $critere ). "%'" ;
	  $result2 = mysql_query( $requete2, $connection ) OR die( "Impossible d'executer la Requete !" );
      $nbr_tuples = @mysql_num_rows( $result2 );
	  if ($nbr_tuples > 0) {
?>
<p class="s11">Résultat : <span class="b"><?php echo $nbr_tuples; ?></span><br />
Mot recherché :<span class="b""color:#FF0000"> <?php echo colorise_query( $critere,$critere,$critere ); ?></span></p>
<?php
        while( $un_mot = mysql_fetch_array( $result ) )
        {

?><ul><li><p class="style4"><strong><?php echo colorise_query( $un_mot["jap"],$critere,"stabylo" );?></strong></li></p></ul>
<p class="style8"><?php echo $un_mot["fr"]; ?><br /></p>
<p class="style5"><?php echo $un_mot["com"]; ?><br />
</p>
<?php
		}
      mysql_free_result( $result );
}

// si deuxième requete vide, affiche aucun resultat
	 else  
	echo "<div style='position: absolute; left: 16px; top:230px; width: 753px;background-color: #FFFFFF; layer-background-color: #FFFFFF; border: 1px none #000000;'><br />Aucune traduction disponible pour le moment.\n";	
}

// s'il y a plus de donnees que la limite, affiche les boutons de liens
if($total > $nombre) {
displayNextPreviousButtons($limite,$total,$nombre,$page);
}
}
?>
<?Php
  mysql_close();
?>


le code de la fonction NextPreviousButtons($limite,$total,$nombre,$page);

function displayNextPreviousButtons($limite,$total,$nombre,$page) {
$limiteSuivante = $limite + $nombre;
$limitePrecedente = $limite - $nombre;
echo  '<table><tr>'."\n";
if($limite != 0) {
        echo  '<td valign="top">'."\n";
        echo  '<form action="'.$page.'" method="post">'."\n";
        echo  '<input type="submit" value="précédents">'."\n";
        echo  '<input type="hidden" value="'.$limitePrecedente.'" name="limite">'."\n";
        echo  '</form>'."\n";
        echo  '</td>'."\n";
}
if($limiteSuivante < $total) {
        echo  '<td valign="top">'."\n";
        echo  '<form action="'.$page.'" method="post">'."\n";
        echo  '<input type="submit" value="suivants">'."\n";
        echo  '<input type="hidden" value="'.$limiteSuivante.'" name="limite">'."\n";
        echo  '</form>'."\n";
        echo  '</td>'."\n";
            
}
echo  '</tr></table>'."\n";
}
0