rafale69300

Inscris le 16/06/2009 à 09:30
  • Signature
    Jérémy
  • Site web
  • Nombre de sujets
    4
  • Nombre de messages
    18
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

rafale69300
le 06/07/2009 à 14:43
Problème de pagination
J'ai réussi à corrigé mon erreur à moitié, je m'explique : j'ai gardé ma varicable $_POST en session mais maintenant je n'arrive pas à la détruire au bon endroit dans mon code je pense qu'il faut utiliser unset($_SESSION['choix']);mais je ne vois pas où le placé peut être que je me suis trompé sur la syntaxe aussi. Merci pour votre aide, je vous laisse mon code.

<form name="formulaire" action="./index.php?page=test&categorie=search" method="post" id="site">
</p>
<p align="center"><?php $requete='SELECT id_site,lib_site FROM sites order by lib_site';
$resultat= mysql_query($requete);?>
<select name="choix" onChange="document.forms['site'].submit();">
<option value="0">Choisissez un site</option>
<?php
while ($donnees = mysql_fetch_array($resultat)){
echo '<option value='.$donnees[0].'>';
echo $donnees[1];
echo'</option>';
}
?>
</select> </form>
<?php
// on prépare une requête permettant de calculer le nombre total d'éléments qu'il faudra afficher sur nos différentes pages
if(isset($_POST['choix']))
$_SESSION['choix'] = $_POST['choix'] ;{
$sql = 'SELECT count(*) FROM batiments where id_site = '.$_SESSION['choix'].' ';

// on exécute cette requête
$resultat = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

// on récupère le nombre d'éléments à afficher
$nb_total = mysql_fetch_array($resultat);

// on teste si ce nombre de vaut pas 0
if (($nb_total = $nb_total[0]) == 0) {
echo '&nbsp;&nbsp;&nbsp;&nbsp;Aucune r&eacute;ponse trouv&eacute;e';
}
else { ?>
<p align="center">
<p align="center">
<p align="center">
<?php if(isset($_POST['choix']))
$_SESSION['choix'] = $_POST['choix'] ;{
$requete2="SELECT lib_site FROM sites
WHERE id_site ='".$_SESSION['choix']."'
";
$resultat2=mysql_query($requete2);
while ($donnees2 = mysql_fetch_array($resultat2)){
?>

Voici tous les b&acirc;timents du site suivant : <strong><?php echo $donnees2['lib_site'];?></strong><br><br>Pour plus d'informations sur un b&acirc;timent, cliquez sur son nom.<br><br><?php }

echo '<div align="center"><table width="500px" border="1" align="center">
<tr>
<td><div align="center"><strong>Code B&acirc;timent</strong></div></td>
<td><div align="center"><strong>Nom B&acirc;timent</strong></div></td>
<td><div align="center"><strong>Nb Etage B&acirc;timent</strong></div></td>
<td><div align="center"><strong>Fonction B&acirc;timent</strong></div></td>
</tr>';

// sinon, on regarde si la variable $debut (le x de notre LIMIT) n'a pas déjà été déclarée, et dans ce cas, on l'initialise à 0
if (!isset($_GET['debut'])) $_GET['debut'] = 0;

$nb_affichage_par_page = 1;

// Préparation de la requête avec le LIMIT
$sql = 'SELECT code_bat, nom_bat, nbEtage_bat, fct_bat, id_bat, lib_site FROM batiments B, sites S
WHERE B.id_site='.$_SESSION['choix'].'
AND S.id_site = B.id_site
ORDER BY code_bat ASC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page;


// on exécute la requête
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

// on va scanner tous les tuples un par un
while ($data = mysql_fetch_array($req)) {
// on affiches les résultats dans la <table> ?>
<tr><td><div align="center"><?php echo $data['code_bat'];?></div></td><td><div align="center"><?php
echo '<a href="./index.php?page=info_bat&categorie=batiment&choix='.$data['id_bat'].'">'.$data['nom_bat'].'</a>';?></div></td><td><div align="center"><?php
echo $data['nbEtage_bat'];?></div></td><td><div align="center"><?php
echo $data['fct_bat'];?></div></td></tr><?php
}

// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($req);
echo '</table><br />';

// on affiche enfin notre barre
echo '<span class="gras">'.barre_navigation($nb_total, $nb_affichage_par_page, $_GET['debut'], 1).'</span>';

}
// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($resultat);

echo '</table><br />';
}
?>
</div></p>
<?php }
?>
Jérémy
rafale69300
le 06/07/2009 à 09:23
Problème de pagination
il n'y a aucune erreur javascript, j'ai vérifié à la console d'erreur.
Jérémy
rafale69300
le 03/07/2009 à 15:35
Problème de pagination
J'ai testé sur 3 navigateurs (IE,FF, Chrome) et cela ne marche pas mieux
Jérémy
rafale69300
le 03/07/2009 à 15:11
Problème de pagination
Oui puisque l'id du formulaire est site donc normalement oui. Je viens de tester que si je mets la balise </form> après le <select> cela me donne toujours pas le résultat voulu.
Jérémy
rafale69300
le 03/07/2009 à 14:10
Problème de pagination
J'arrive sur ma ge page d'accueil avec index.php?choix='choix liste déroulante' alors que l'action du formulaire n'est pas du tout ça
Jérémy
rafale69300
le 02/07/2009 à 16:31
Problème de pagination
Merci pour ton aide InTheMix, j'avais déja essayé avec le selected mais d'une autre façon mais cela ne marche pas et avec ta façon à toi non plus.
Jérémy
rafale69300
le 02/07/2009 à 16:30
Problème de pagination
Tout mes Post je les ai changé en GET et il ne se passe plus rien
Jérémy
rafale69300
le 02/07/2009 à 14:11
Problème de pagination
Je ne vois pas trop je te mets ma page de code si tu peux me donner une indication en plus avec le code. En sachant que la pagination vient du tutoriel du site et que la fonction barre_navigation et sur ma page d'index qui elle à des includes.

Voici ma page où je souhaite mettre ma pagination :

<p><!--Formulaire-->
<form name="formulaire" action="./index.php?page=test&categorie=search" method="post" id="site">
</p>
<p align="center"><?php $requete='SELECT id_site,lib_site FROM sites order by lib_site';
$resultat= mysql_query($requete);?>
<select name="choix" onChange="document.forms['site'].submit();">
<option value="0">Choisissez un site</option>
<?php
while ($donnees = mysql_fetch_array($resultat)){
echo '<option value='.$donnees[0].'>';
echo $donnees[1];
echo'</option>';
}
?>
</select></p>
<?php
// on prépare une requête permettant de calculer le nombre total d'éléments qu'il faudra afficher sur nos différentes pages
if(isset($_POST['choix'])){
$sql = 'SELECT count(*) FROM batiments where id_site = '.$_POST['choix'].' ';

// on exécute cette requête
$resultat = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

// on récupère le nombre d'éléments à afficher
$nb_total = mysql_fetch_array($resultat);

// on teste si ce nombre de vaut pas 0
if (($nb_total = $nb_total[0]) == 0) {
echo '&nbsp;&nbsp;&nbsp;&nbsp;Aucune r&eacute;ponse trouv&eacute;e';
}
else { ?>
<p align="center">
<p align="center">
<p align="center">
<?php if(isset($_POST['choix'])){
$requete2="SELECT lib_site FROM sites
WHERE id_site ='".$_POST['choix']."'
";
$resultat2=mysql_query($requete2);
while ($donnees2 = mysql_fetch_array($resultat2)){
?>

Voici tous les b&acirc;timents du site suivant : <strong><?php echo $donnees2['lib_site'];?></strong><br><br>Pour plus d'informations sur un b&acirc;timent, cliquez sur son nom.<br><br> <?php }

echo '<div align="center"><table width="500px" border="1" align="center">
<tr>
<td><div align="center"><strong>Code B&acirc;timent</strong></div></td>
<td><div align="center"><strong>Nom B&acirc;timent</strong></div></td>
<td><div align="center"><strong>Nb Etage B&acirc;timent</strong></div></td>
<td><div align="center"><strong>Fonction B&acirc;timent</strong></div></td>
</tr>';

// sinon, on regarde si la variable $debut (le x de notre LIMIT) n'a pas déjà été déclarée, et dans ce cas, on l'initialise à 0
if (!isset($_GET['debut'])) $_GET['debut'] = 0;

$nb_affichage_par_page = 1;

// Préparation de la requête avec le LIMIT
$sql = 'SELECT code_bat, nom_bat, nbEtage_bat, fct_bat, id_bat, lib_site FROM batiments B, sites S
WHERE B.id_site='.$_POST['choix'].'
AND S.id_site = B.id_site
ORDER BY code_bat ASC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page;

// on exécute la requête
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

// on va scanner tous les tuples un par un
while ($data = mysql_fetch_array($req)) {
// on affiches les résultats dans la <table> ?>
<tr><td><div align="center"><?php echo $data['code_bat'];?></div></td><td><div align="center"><?php
echo '<a href="./index.php?page=info_bat&categorie=batiment&choix='.$data['id_bat'].'">'.$data['nom_bat'].'</a>';?></div></td><td><div align="center"><?php
echo $data['nbEtage_bat'];?></div></td><td><div align="center"><?php
echo $data['fct_bat'];?></div></td></tr><?php
}

// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($req);
echo '</table><br />';

// on affiche enfin notre barre
echo '<span class="gras">'.barre_navigation($nb_total, $nb_affichage_par_page, $_GET['debut'], 1).'</span>';
}
// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($resultat);

echo '</table><br />';
}
?>
</form></div></p>
<?php } ?>


Et voici mes includes dans ma page d'index :

<?php
if(isset($_GET['page'])){
include("./".$_GET['categorie']."/".$_GET['page'].".php");
}else{
if(!isset($_SESSION['identifiant']) && !isset($_SESSION['motdepasse'])){
include("./accueil.php");
}else{
include("./accueil.php"); ?>
<?php
}
}

?>


Merci d'avance.
Jérémy
rafale69300
le 02/07/2009 à 09:36
Problème de pagination
Bonjour tout le monde,

Je vous explique mon problème.
J'ai une page php :
au début une liste déroulante remplie par une reqûete et en fonction de son choix après un on Change l'affichage est différent jusqu'ici aucun problème. Après avoir lu le tutoriel sur la pagination l'avoir correctement étudié un problème apparaît :
Car au départ je l'ai adapté mais sans ma liste déroulante et il marche très bien félication a LA GLOBULE cependant dès que je rajoute ma liste déroulante il y a un problème, c'est à dire que m'a première page s'affiche correctement par contre quand je clique pour aller à la page suivante je me retrouve juste avec ma liste déroulante comme sur ma 1ère page lorque l'utilisateur n'a pas fait encore son choix.
Donc si vous voyez une solution pour ce problème merci d'avance !
Jérémy
rafale69300
le 19/06/2009 à 12:10
Problème de récupération de données
bonjour tout le monde,
Ma page permet de sélectionner dans la 1ère liste un bâtiment et sa salle en fonction de ce choix dans la 2ème liste il y a les portes de cette salle, après l'avoir sélectionnée je voudrais afficher ces informations pour cela je dois récupérer la valeur de ma 2ème liste, je pense le faire correctement mais malheureusement non puisque j'ai un problème de fetch array donc ma requête doit être fausse.
Je vous laisse mon code, c'est vers la ligne 124 qu'il y a le problème du fetch array.

<?php 

/* On récupère si elle existe la valeur du batiment envoyée par le formulaire */
$idr = isset($_POST['salle'])?$_POST['salle']:null;

if(isset($_POST['ok']) && isset($_POST['porte']) && $_POST['porte'] != "")
{
$salle_selectionnee = $_POST['salle'];
$porte_selectionne = $_POST['porte'];
}
?>


<?php

$sql1 = "SELECT B.id_bat,nom_bat,id_salle,lib_salle FROM batiments B,salles S WHERE B.id_bat = S.id_bat order by nom_bat";
$rech_salle = mysql_query($sql1);
$code_salle = array();
$nom_salle = array();
$nom_bat = array();
/* On active un compteur pour les batiments */
$nb_salle = 0;
if($rech_salle != false)
{
while($ligne = mysql_fetch_assoc($rech_salle))
{
array_push($code_salle, $ligne['id_salle']);
array_push($nom_salle, $ligne['lib_salle']);
array_push($nom_bat, $ligne['nom_bat']);

/* On incrémente de compteur */
$nb_salle++;
}
}
?>

<style type="text/css">
<!--
.taille {font-size: x-small}
-->
</style>

<p align="center"><strong>Informations sur une porte de la commune :</strong></p>
<p>&nbsp;</p>
<p class="taille">S&eacute;lectionnez un b&acirc;timent et une salle dans la 1ère liste d&eacute;roulante puis dans la 2ème liste d&eacute;roulante s&eacute;lectionnez une porte et vous aurez acc&egrave;s &agrave; toutes ces informations</p>
<form name="formulaire" action="./index.php?page=info_porte&amp;categorie=porte" method="post" id="chgsalle">
<?php
mysql_free_result($rech_salle);
/* On commence par vérifier si on a envoyé un numéro de batiment et le cas échéant s'il est différent de -1 */

if(isset($idr) && $idr != -1)
{
/* Cération de la requête pour avoir les salles de ce batiment */
$sql2 = "SELECT `id_porte`, `lib_porte`".
" FROM `portes`".
" WHERE `id_salle` = ". $idr ."".
" ORDER BY `id_porte`;";

$rech_porte = mysql_query($sql2);
/* Un petit compteur pour les salles */
$nd = 0;
/* On crée deux tableaux pour les numéros et les noms des salles */
$code_porte = array();
$nom_porte = array();
/* On va mettre les numéros et noms des salles dans les deux tableaux */
while($ligne_porte = mysql_fetch_assoc($rech_porte))
{
array_push($code_porte, $ligne_porte['id_porte']);
array_push($nom_porte, $ligne_porte['lib_porte']);
$nd++;
}
/* Maintenant on peut construire la liste déroulante */

}

?>


<table width="50%" border="0">
<tr>
<td width="45%"><p>B&acirc;timent & Salle<span class="Etoile"></span> :</p>
<p>
<select name="salle" id="salle" onchange="document.forms['chgsalle'].submit();">
<option value="-1">Choisissez un batiment & salle</option>
<?php
for($i = 0; $i < $nb_salle; $i++)
{
?>
<option value="<?php echo($code_salle[$i]); ?>"<?php echo((isset($idr) && $idr == $code_salle[$i])?" selected=\"selected\"":null); ?>><?php echo($nom_bat[$i]."&nbsp;-&nbsp;".$nom_salle[$i]); ?></option>
<?php
}
?>
</select>
</p></td></tr><tr>
<td width="55%"><p>Porte<span class="Etoile"></span> :</p>
<p><select name="porte" id="porte">
<option value="-1">Choisissez une porte</option>
<?php
for($d = 0; $d<$nd; $d++)
{
?>
<option value="<?php echo($code_porte[$d]); ?>"<?php echo((isset($porte_selectionne) && $porte_selectionne == $code_porte[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_porte[$d]." "); ?></option>
<?php
}
?>
</select>
</p></td>
</tr></table>

<?php
if(isset($_POST['porte'])){
$requete="SELECT code_porte,lib_porte,lib_salle,S.id_salle FROM portes P,salles S
WHERE S.id_salle='".$_POST['porte']."'
AND P.id_salle = S.id_salle";
$resultat=mysql_query($requete);}
else{
if(isset($_GET['porte'])){
$requete="SELECT code_porte,lib_porte,lib_salle,S.id_salle FROM portes P,salles S
WHERE S.id_salle='".$_GET['porte']."'
AND P.id_salle = S.id_salle";
$resultat=mysql_query($requete);}
}

while($donnees = mysql_fetch_array($resultat)){
?>
<p align="center">
<p align="center">
<p align="center">
<p><strong>Code de la Porte :</strong> <?php echo $donnees[0];?></p><br />
<p><strong>Lib&eacute;ll&eacute; de la Porte :</strong> <?php echo $donnees[1];?></p><br />
<p><strong>Salle de la Porte :</strong> <?php echo '<a href="./index.php?page=info_salle&categorie=salle&choix='.$donnees[3].'">'.$donnees[2].'</a>';?></p><br />


<?php
}


?>
Jérémy
LoadingChargement en cours