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 dernières news

Aucune news

Ses derniers sujets sur les forums

forum
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
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
rafale69300
le 17/06/2009 à 09:13
3 Listes déroulantes liées
Bonjour tout le monde !
Voici mon problème, après avoir trouvé plusieurs sources sur le net, j'ai réussi à lié 2 listes déroulantes mais par rapport à ce script je n'arrive pas à lié la 3ème. Je vous laisse mon script des deux listes déroulantes. Merci par avance de votre aide.

<?php 

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

if(isset($_POST['ok']) && isset($_POST['salle']) && $_POST['salle'] != "")
{
$bat_selectionnee = $_POST['bat'];
$salle_selectionne = $_POST['salle'];
}
?>

<h3>
<?php

$sql1 = "SELECT `id_bat`, `nom_bat`".
" FROM `batiments`".
" ORDER BY `id_bat`";
$rech_bat = mysql_query($sql1);
$code_bat = array();
$nom_bat = array();
/* On active un compteur pour les batiments */
$nb_bat = 0;
if($rech_bat != false)
{
while($ligne = mysql_fetch_assoc($rech_bat))
{
array_push($code_bat, $ligne['id_bat']);
array_push($nom_bat, $ligne['nom_bat']);

/* On incrémente de compteur */
$nb_bat++;
}
}
?>
</h3>

<form name="formulaire" action="./index.php?page=ajout_porte&amp;categorie=porte" method="post" id="chgsalle">
<?php
mysql_free_result($rech_bat);
/* 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_salle`, `lib_salle`".
" FROM `salles`".
" WHERE `id_bat` = ". $idr ."".
" ORDER BY `id_salle`;";

$rech_salle = 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_salle = array();
$nom_salle = array();
/* On va mettre les numéros et noms des salles dans les deux tableaux */
while($ligne_salle = mysql_fetch_assoc($rech_salle))
{
array_push($code_salle, $ligne_salle['id_salle']);
array_push($nom_salle, $ligne_salle['lib_salle']);
$nd++;
}

}

?>

<table width="50%" border="0">
<tr>
<td width="45%"><p>B&acirc;timent de la Porte<span class="Etoile"> *</span> :</p>
<p>
<select name="bat" id="bat" onchange="document.forms['chgsalle'].submit();">
<option value="-1">Choisissez un batiment</option>
<?php
for($i = 0; $i < $nb_bat; $i++)
{
?>
<option value="<?php echo($code_bat[$i]); ?>"<?php echo((isset($idr) && $idr == $code_bat[$i])?" selected=\"selected\"":null); ?>><?php echo($nom_bat[$i]); ?></option>
<?php
}
?>
</select>
</p></td>
<td width="55%"><p>Salle de la Porte<span class="Etoile"> *</span> :</p>
<p><select name="salle" id="salle">
<option value="-1">Choisissez une salle</option>
<?php
for($d = 0; $d<$nd; $d++)
{
?>
<option value="<?php echo($code_salle[$d]); ?>"<?php echo((isset($salle_selectionne) && $salle_selectionne == $code_salle[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_salle[$d]." "); ?></option>
<?php
}
?>
</select>
</p></td></tr></table></form>
Jérémy

Ses derniers messages sur les forums

forum
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

Ses derniers commentaires de news

Aucun commentaire de news

Ses derniers commentaires de sites

Aucun commentaire de sites

Ses derniers commentaires de wall

Aucun commentaire wall
LoadingChargement en cours