Lenteur pour afficher ma page. [Résolu]

Messages postés
68
Date d'inscription
vendredi 4 juin 2004
Dernière intervention
1 décembre 2012
- 3 nov. 2010 à 14:55 - Dernière réponse :
Messages postés
68
Date d'inscription
vendredi 4 juin 2004
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>
Afficher la suite 

Votre réponse

8 réponses

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

Maintenant ça fonctionne.

Merci à tous

Merci ecolom 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de ecolom
Messages postés
1660
Date d'inscription
dimanche 7 septembre 2008
Dernière intervention
11 septembre 2013
- 3 nov. 2010 à 15:25
0
Merci
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 ?
Commenter la réponse de cod57
Messages postés
1660
Date d'inscription
dimanche 7 septembre 2008
Dernière intervention
11 septembre 2013
- 3 nov. 2010 à 15:29
0
Merci
$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
Commenter la réponse de cod57
Messages postés
68
Date d'inscription
vendredi 4 juin 2004
Dernière intervention
1 décembre 2012
- 3 nov. 2010 à 17:07
0
Merci
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
Commenter la réponse de ecolom
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Dernière intervention
27 avril 2012
- 3 nov. 2010 à 18:03
0
Merci
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 -
Commenter la réponse de kohntark
Messages postés
1660
Date d'inscription
dimanche 7 septembre 2008
Dernière intervention
11 septembre 2013
- 3 nov. 2010 à 19:36
0
Merci
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++
Commenter la réponse de cod57
Messages postés
1660
Date d'inscription
dimanche 7 septembre 2008
Dernière intervention
11 septembre 2013
- 3 nov. 2010 à 19:40
0
Merci
erreur c'est

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

je me suis planté avec tout ces "
Commenter la réponse de cod57
Messages postés
68
Date d'inscription
vendredi 4 juin 2004
Dernière intervention
1 décembre 2012
- 4 nov. 2010 à 12:37
0
Merci
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.
Commenter la réponse de ecolom

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.