PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : Forum Général PHP » pagination php » 18-04-2011 03:17:57

J'ai vu le tuto que tu m'a passé sauf que ça utilise une base de données, moi je voudrais adapter la même méthode sans base de données.

#2 Forum Général PHP » pagination php » 18-04-2011 03:17:57

clem14
Réponses : 4

Voila je suis en train de réaliser une galerie photo dans le cadre de mon stage, et j'ai souhaité ne pas utiliser de base de données.
Mon script et déjà fait, la galerie marche niquel, mais je souhaiterais ajouter à ceci une pagination.
Or, ayant l'habitude de réaliser une pagination à l'aide des requêtes SQL, je ne sais pas trop comment m'y prendre.
Tout d'abord voici une partie de mon script (album.php):
Cette partie correspond à l'affichage des albums avec, pour chaque album, une image prise aléatoirement dans celui ci en l'occurrence je voudrais insérer une pagination qui me permette de visualiser 5 albums par page. J'ai donc commencé le script :

<?php
if (isset($_GET['id'])) // le  id permet de faire savoir à la page album quelle page on affiche
$id = $_GET['id'];
else
$id = 1; // si l'id ne contient rien, il s'agit alors de la premiere page
$perpage = 5; // nombre d'image par page
$nbpagemax = ceil($nbr_dir/$perpage); //on calcul le nombre de page max
echo $nbpagemax;
$i=0;
foreach( $tab_dir AS $dir) {
     $img_aleatoire = array_rand(${"tab_file_".$i});
     echo "<td valign='middle' align='center'>";
          ?> <a href="javascript:document.album.choix_album.value='<?php echo $i; ?>';document.album.select.value='1';document.album.submit();"> <?php
          echo '<img src="'.$url.'/'.$dir.'/'.${"tab_file_".$i}[$img_aleatoire].'" alt=""/><br />';
          echo str_replace(  "_", " ", $dir );
          ?> </a> <?php
     echo "</td>";
     if (($i+1)%3==0 && $i!=0) echo "</tr>\n<tr align='middle'>";// nouvelle ligne toute les 3 cases
     $i++;
     }
if($i > 0) echo "\n</tr>\n";
  ?>

   </tr>
</table>
    </div>
<?php

J'arrive à calculer le $nbpagemax, ça me renvoit bien ce que je veut mais après je sais pas comment faire.
Merci d'avance de votre aide je suis au point mort wink

#3 Re : Forum Général PHP » Undefined oofset » 08-04-2011 11:36:47

Merci pour le foreach c'est nikel en ce qui concerne le style c'est une page test donc c'est pour sa que j'ai tout fait en bloc je vais bien évidement tout décomposer par la suite.
Bonne journée.

#4 Re : Forum Général PHP » Undefined oofset » 08-04-2011 11:36:47

c'est bon j'ai reussi a me debloqué par contre je suis interresé par la variante avec le foreach sa peut optimiser le code je te montre ce qui marche mais qui n'est surement pas très jolie:

<?php
  for ($i=0; $i<($nbr_dir) ; $i++)
  {
  $img_aleatoire = array_rand(${"tab_file_".$i});
  $titre_dir = str_replace(  "_", " ", $tab_dir[$i]  );
 
  echo "<td valign='middle' align='center'>";
    ?> <a href="javascript:document.album.choix_album.value='<?php echo $i; ?>';document.album.select.value='1';document.album.submit();"> <?php
    echo '<img src="'.$url.'/'.$tab_dir[$i].'/'.${"tab_file_".$i}[$img_aleatoire].'" alt="" height="200" border="0" /><br />';
    echo $titre_dir;
    ?> </a> <?php
  echo "</td>";
 
    if (($i+1)%3==0 && $i!=0) // nouvelle ligne toute les 3 cases
      echo "</tr><tr align='middle'>";
  }
  ?>

Merci d'avance pour ton aide wink

#5 Forum Général PHP » Undefined oofset » 08-04-2011 11:36:47

clem14
Réponses : 5

Voila j'obtiens une erreur suite à mon script de création d'album! Je pense que l'erreur est dans ma boucle mais je ne comprends pas pourquoi elle ne marche pas!
Voici le code:
[code+PHP]<?php
for ($i=0, $j=1 ; $i<=($nbr_dir-1) ; $i++, $j++)
    {
    $img_aleatoire = rand(  0, count(${"tab_file_".$i}));
    $titre_dir = str_replace(  "_", " ", $tab_dir[$i]  );
   
    echo "<td valign='middle' align='center'>";
        ?> <a href="javascript:document.album.choix_album.value='<?php echo $i; ?>';document.album.select.value='1';document.album.submit();"> <?php
        echo '<img src="'.$url.'/'.$tab_dir[$i].'/'.${"tab_file_".$i}[$img_aleatoire].'" alt="" height="200" border="0" /><br />';
        echo $titre_dir;
        ?> </a> <?php
    echo "</td>";
   
        if ($j%3==0 && $j!=0) // nouvelle ligne toute les 3 cases
            echo "</tr><tr align='middle'>";
    }   
?>[/code]
l'erreur est a la ligne 9 Notice: Undefined offset: 2 echo '<img src="'.$url.'/'.$tab_dir[$i].'/'.${"tab_file_".$i}[$img_aleatoire].'" alt="" height="200" border="0" /><br />';

Merci d'avance

#7 Forum Général PHP » Una aide facile pour un pro du php » 17-03-2011 12:47:53

clem14
Réponses : 5

Voila j'ai effectuer un script en php me permettant de charger un fichier xml suivant un formulaire.
En fait j'ai réaliser ce script pour me permettre de réaliser un site multilingue or mon site ayant pas mal de contenu je souhaiterai créer un fichier xml par page ou a l'interrieur je gererer mes traduction.
Or le probleme c'est que je ne c'est pas comment faire pour réaliser une fonction qui permettrai de selectionner le bon fichier xml suivant la page! Ci-joint le code php:


<?php
header( 'content-type: text/html; charset=utf-8' );
function findLocale ($loc = '', $block = 'notext') { // fonction allant chercher la traduction d'un bloc donné dans le fichier xml de localisation. Prend en paramètre la langue à utiliser, et l'élément contenant le texte. L'élément a pour le nom l'ID du block où on va afficher le texte
  if ($loc === '') { // si loc n'existe pas
    $loc = $_SESSION['locale']; // on lui assigne la variable de session
  }
  $doc = simplexml_load_file ('locales.xml'); // on charge le fichier de localisation
  $resultat = $doc ->xpath ($loc.'/'.$block); // on va chercher le noeud correct
  if (!empty ($resultat)) { // si le tableau n'est pas vide, il y a un texte
    foreach ($resultat as $noeud) {
       utf8_encode($noeud );
    return $noeud; // on renvoie ce texte
    }
  }
  else {
    $resultat = $doc ->xpath ($loc.'/notext'); // sinon on va chercher le message d'erreur
    foreach ($resultat as $noeud) {
    $noeud= utf8_encode($noeud);
      return $noeud;
    }
  }
}
?>
 

<?php
session_start ();
function checkLocale () { // fonction pour tenter de déterminer la langue utilisée par le système client (non garantie)
    $locale = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
    if (substr ($locale, 0, 2) === 'fr') {
      return 'FRANCAIS';
    }
    if (substr ($locale, 0, 2) === 'en') {
      return 'ENGLISH';
    }
    return false;
}

if (!isset ($_SESSION['locale'])) {
    if (false !== ($check = checkLocale ())) {
        $_SESSION['locale'] = $check;
    }
    else {
        $_SESSION['locale'] = 'FRANCAIS'; // on met une langue par défaut dans une variable de session
    }
}

?>
<!-- Formulaire pour le choix des langues -->
<form method="post" action="">
<input type="submit" value="ENGLISH" name="langue" />
<input type="submit" value="FRANCAIS" name="langue" />
</form>
<?php
// on vérifie le choix de la langue dans le formulaire, et on assigne la valeur correcte à la variable de session
if (isset ($_POST['langue'])) {
 $_SESSION['locale'] = $_POST['langue'];
}
?>
 
 

Voila j'espere obtenir une reponse positive je ne suis qu'un débutant en php et xml. wink

Pied de page des forums

Propulsé par FluxBB