Lenteur pour afficher ma page.

Résolu
ecolom Messages postés 68 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 1 décembre 2012 - 3 nov. 2010 à 14:55
ecolom Messages postés 68 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 1 décembre 2012 - 4 nov. 2010 à 14:30
Bonjour à tous ( toutes ,

j'ai un petit soucis de lenteur quand j'adapte une zone select qui récupère les datas via une db.
Si je place une zone texte, l'affichage de la page est immédiat. Par contre si je place une zone déroulante avec connexion à la db, je dois attendre 5 à 8 secondes avant que la page s'affiche.
Auriez-vous une idée sur le fait que ce soit si lent ?
D'autant que j'utilise souvent ce select et que je ne rencontre aucun problème dans les autres prog.
Ais-je écrit le code à l'envers ??
Code ci-dessous voir entre les *************
Merci pour votre aide.

<html>
<head>
<meta http-equiv= "Content-Type" content="text/html; charset=windows-1252">
<title>Gestion des visiteurs</title>
</head>

<?php

if(!mysql_connect("localhost","root",""))
{
echo "".$TEXT['visiteur-error']."
";
die('error');
}
mysql_select_db("gestion_loge");
?>



<form action="<?php echo basename($_SERVER['PHP_SELF']); ?>" method="get">
Gestion des Visiteurs,

----

,
Nom,
:,
,
Plaque,
:,
,
,

----

,
Société,
:,
<select size="1" name="societe_visiteur">

<option value="Seneffe">Seneffe</option>
<option value="Moustier">Moustier</option>
<option value="Fleurus">Fleurus</option>
</select>,
Personne Int. Visitée,
:,
*************************************************************************
<select size="1" name="int_visite">
<?php
$liendb = mysql_connect(root,localhost,"");
mysql_select_db (gestion_loge);
$SQL = "SELECT * FROM users";
$res = mysql_query($SQL);
while($val=mysql_fetch_array($res)) {
echo "<option>".$val["nomprenom"]."</option>\n";
}
?>
</select>
*************************************************************************,
,

----

,
Société2,
:,
,
Personne Int. Visitée2,
:,
,
,

----

,
Heure ,
:,
:

(Encodage Hors-ligne),
Personne Ext. Visitée,
:,
, ,

----

,
Type,
:,

Visiteur

- Fournisseur
- Autre
,
,

----

">
">,

----

,
Remarque : <textarea rows="2" name="remarque_visiteur" cols="65"></textarea>,
,

----

,

,
,

----

,
<table border=1 cellpadding=0 cellspacing=0 width="641" id="table5">----, Nom_visiteur </td>
Société_visiteur,
Plaque_Visiteur,
Personne Visitée,

<?
if ($_REQUEST['nom_visiteur'] ! = \"\")
{
// if ($_REQUEST['jahr'] == \"\") {
// $jahr = \"NULL\";
//} else {
$jahr = intval($_REQUEST['jahr']);
//}
$nom_visiteur = mysql_real_escape_string($_REQUEST['nom_visiteur']);
$type = mysql_real_escape_string($_REQUEST['R1']);
$societe_visiteur = mysql_real_escape_string($_REQUEST['societe_visiteur']);
$societe_visiteur2 = mysql_real_escape_string($_REQUEST['societe_visiteur2']);
$plaque_visiteur = mysql_real_escape_string($_REQUEST['plaque_visiteur']);
$int_visite = mysql_real_escape_string($_REQUEST['int_visite']);
$ext_visite = mysql_real_escape_string($_REQUEST['ext_visite']);
$remarque_visiteur = mysql_real_escape_string($_REQUEST['remarque_visiteur']);
$datedujour = mysql_real_escape_string($_REQUEST['datedujour']);
$heuredujour = mysql_real_escape_string($_REQUEST['heuredujour']);
mysql_query(\"INSERT INTO visiteur (date_entree,
heure_entree,
nom_visiteur,
type,
societe_visiteur,
societe_visiteur2,
plaque_visiteur,
int_visite,
ext_visite,
remarque_visiteur)
VALUES('$datedujour',
'$heuredujour',
'$nom_visiteur',
'$type',
'$societe_visiteur',
'$societe_visiteur2',
'$plaque_visiteur',
'$int_visite',
'$ext_visite',
'$remarque_visiteur')\");
}

if ($_REQUEST['action'] == \"del\") {
$id = intval($_REQUEST['num_visiteur']);
mysql_query(\"UPDATE `gestion_loge`.`visiteur` SET `statut` = 'OUT',`heure_sortie` = '$heuredujour' WHERE `visiteur`.`num_visiteur`={$_REQUEST['num_visiteur']};\");

}
$result=mysql_query(\"SELECT num_visiteur,nom_visiteur,societe_visiteur,societe_visiteur2,plaque_visiteur,int_visite FROM visiteur WHERE statut='IN';\");
$i=0;
while( $row=mysql_fetch_array($result) )
{
if($i>0)
{
echo \"----
\";
echo \", \";
echo \"\";
}
echo \"----
\";
echo \"".$row['nom_visiteur'].", \";
echo \"".$row['societe_visiteur'].", \";
echo \"".$row['plaque_visiteur'].", \";
echo \"".$row['int_visite'].", \";
echo \"Sortie, \";
// echo \"Edit, \";
echo \", \";
echo \"\";
$i++;
}
?>

</td>
<td width="11"> </td>
</tr>
</table>



</html>

8 réponses

ecolom Messages postés 68 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 1 décembre 2012
4 nov. 2010 à 14:30
Trouvé !!!!
echo "<td align=center>".$row['nom_visiteur']." ".$row['nom_societe']."</td>";

Maintenant ça fonctionne.

Merci à tous
3
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
3 nov. 2010 à 15:25
Ton hebergeur est-ce du gratuit style free ?


while($val=mysql_fetch_array($res)) {
echo "<option>".$val["nomprenom"]."</option>\n";
}

c'est le select en question ?
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
3 nov. 2010 à 15:29
$result=mysql_query("SELECT num_visiteur,nom_visiteur,societe_visiteur,societe_visiteur2,plaque_visiteur,int_visite FROM visiteur WHERE statut='IN';");

pourquoi pas faire SELECT * FROM visiteur WHERE statut='IN'
c'est pareil
0
ecolom Messages postés 68 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 1 décembre 2012
3 nov. 2010 à 17:07
Hello cod57,

tu as tout à fait raison pour le select. J'ai modifié.
Pour info, je travaille sur un xampp installé en pc local. Donc pas d'hébergeur via le net.Cela devrait être d'autant plus facile et rapide.
Je ne m'explique pas pourquoi il me faut autant de temps pour afficher ma page. Alors que dans d'autres pages j'utilise aussi une zone nom et cela est très rapide.

Une idée ?
Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
3 nov. 2010 à 18:03
Salut,


$liendb = mysql_connect(root,localhost,"");
mysql_select_db (gestion_loge); 

A quoi cela sert il alors que tu effectue déjà la connexion en début de script ?


$SQL = "SELECT * FROM users";
$res = mysql_query($SQL);

Inutile puisque tu n'utilises que le champ "nomprenom"
=> SELECT nomprenom FROM users

Combien y a t-il d'enregistrements dans ta table ?
et combien de champs ?

Cordialement,

Kohntark -
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
3 nov. 2010 à 19:36
re:

if ($_REQUEST['nom_visiteur'] != "") ligne 134

!= c'est plutôt !==
moi je propose

if(isset($_REQUEST['nom_visiteur']) && !empty($_REQUEST['nom_visiteur']) )

puis comme l'a remarqué Kohntark

deux fois le mysql_connect() et mysql_select_db()

ligne 54,53 inutiles

encore une remarque "<option>".$val["nomprenom"]."</option>\n";

c'est pas

"<option value="".$val["nomprenom"."">".$val["nomprenom"]."</option>\n";

sinon ton select il renvoit rien

a++
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
3 nov. 2010 à 19:40
erreur c'est

echo '<option value="'.$val['nomprenom'].'">'.$val['nomprenom'].'</option>\n';

je me suis planté avec tout ces "
0
ecolom Messages postés 68 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 1 décembre 2012
4 nov. 2010 à 12:37
Merci à tous les deux pour vos réponses et conseils.
Par contre, j'ai remplacé les lignes Par un include et la lenteur à disparu...'cherchez l'erreur'
---$liendb = mysql_connect(root,localhost,"");
---mysql_select_db (gestion_loge);

Cependant, j'ai retiré ces deux lignes car effectivement il y a redondance dans la connexion DB.
Pour l'option value, mon code fonctionne. J'ai malgré tout suivi votre code et expérience.
> echo "<option>".$val["nomprenom"]."</option>\n";
remplacé par ==> echo '<option value="'.$val['nomprenom'].'">'.$val['nomprenom'].'</option>\n';

Mais pouvez-vous m'expliquer la différence entre les deux.


Pour le test de la zone = "" j'allais modifier ce code par celui que vous avez inscrit. En fait j'ai récupérer ce bout de code dans la collection cd de l'interface phpmyadmin de xampp.

Dernière demande:
Pouvez-vous me dire comment concaténer deux zones par rapport au code ci-dessous. j'aimerais afficher la zone nom_visiteur et nom_societe.
J'ai déjà testé quelques solutions mais ça ne fonctionne pas.
}
echo "<td align=center>".$row['nom_visiteur']."</td>";

Un grand merci pour votre aide et ce forum qui m'a déjà bien dépatouillé quand les problèmes surviennent.
0
Rejoignez-nous