Lenteur pour afficher ma page. [Résolu]

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

Commenter la réponse de ecolom
cod57 1661 Messages postés dimanche 7 septembre 2008Date d'inscription 11 septembre 2013 Dernière intervention - 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
cod57 1661 Messages postés dimanche 7 septembre 2008Date d'inscription 11 septembre 2013 Dernière intervention - 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
ecolom 68 Messages postés vendredi 4 juin 2004Date d'inscription 1 décembre 2012 Dernière intervention - 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
kohntark 3708 Messages postés lundi 5 juillet 2004Date d'inscription 27 avril 2012 Dernière intervention - 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
cod57 1661 Messages postés dimanche 7 septembre 2008Date d'inscription 11 septembre 2013 Dernière intervention - 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
cod57 1661 Messages postés dimanche 7 septembre 2008Date d'inscription 11 septembre 2013 Dernière intervention - 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
ecolom 68 Messages postés vendredi 4 juin 2004Date d'inscription 1 décembre 2012 Dernière intervention - 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.