Je vous ai manqué ?
-
- Messages : 108
- Enregistré le : jeu. oct. 31, 2002 11:51 am
- Localisation : Breizh
- Contact :
Je vous ai manqué ?
Bon c'est pas sûr
Voilà Tel Nominoé sur son fier destrier chassant le Franc (836)
je me suis lancé un nouveau défi.
Voilà le point faible de toutes les agences c'est la relance client et la gestion du portefeuille client.
Quand un client demande des infos à partir du site il est inscrit automatiquement avec un N° de la base nextid (j'ai pompé côme!)
Super prosper
S'il vien de se loger ou d'ailleurs il faut l'insérer dans la base, bon jusque là c'est faisable.
Les 2 premiers problème que je rencontre:
Ma page est protégée par mot de passe, mais quand je veux par exemple aller sur les enregistrements suivants ça coince la page ne revient pas!
J'aimerais pouvoir faire défiler les enregistrements sur mla table bref aller de l'un à l'autre et là j'arrive pas!
Bon ça commence mal quoi!
Un tout petit peu d'aide peut être
Voilà Tel Nominoé sur son fier destrier chassant le Franc (836)
je me suis lancé un nouveau défi.
Voilà le point faible de toutes les agences c'est la relance client et la gestion du portefeuille client.
Quand un client demande des infos à partir du site il est inscrit automatiquement avec un N° de la base nextid (j'ai pompé côme!)
Super prosper
S'il vien de se loger ou d'ailleurs il faut l'insérer dans la base, bon jusque là c'est faisable.
Les 2 premiers problème que je rencontre:
Ma page est protégée par mot de passe, mais quand je veux par exemple aller sur les enregistrements suivants ça coince la page ne revient pas!
J'aimerais pouvoir faire défiler les enregistrements sur mla table bref aller de l'un à l'autre et là j'arrive pas!
Bon ça commence mal quoi!
Un tout petit peu d'aide peut être
-
- Site Admin
- Messages : 855
- Enregistré le : sam. sept. 14, 2002 10:41 pm
- Localisation : Igny (Essonne)
Salut Philippe
Normalement le visiteur se connecte une fois sur un site (pseudo/motpasse) et si il est reconnu le système lui attrbue un numéro de session unique (classiquement "id"). Ensuite on trimbale cet identifiant de page en page (souvent en le passant en paramètre de l'url, en GET).
Chaque page doit alors commencer par vérifier que ce numéro de session existe bel et bien avant de laisser la page s'afficher.
Voilà pour le principe général. Je ne sais pas si cela t'aide ? Si tu précises un peu concrètement sur quoi tu butes j'essaierai de t'aider.
Normalement le visiteur se connecte une fois sur un site (pseudo/motpasse) et si il est reconnu le système lui attrbue un numéro de session unique (classiquement "id"). Ensuite on trimbale cet identifiant de page en page (souvent en le passant en paramètre de l'url, en GET).
Chaque page doit alors commencer par vérifier que ce numéro de session existe bel et bien avant de laisser la page s'afficher.
Voilà pour le principe général. Je ne sais pas si cela t'aide ? Si tu précises un peu concrètement sur quoi tu butes j'essaierai de t'aider.
-
- Messages : 108
- Enregistré le : jeu. oct. 31, 2002 11:51 am
- Localisation : Breizh
- Contact :
-
- Site Admin
- Messages : 855
- Enregistré le : sam. sept. 14, 2002 10:41 pm
- Localisation : Igny (Essonne)
Oui ce point là je l'ai déjà rencontré !
Il n'y a pas de miracle il va falloir calculer le suivant et le précédent.
Si tu pars initialement d'un tableau html (genre grille Paradox) pour aller ensuite sur un enregistrement détail et permettre alors de faire suivant / précedent tu peux calculer ce suivant et ce précédent dès ce tableau html de départ. Dans ce cas je crée un array et je le rempli séquentiellement avec les numéros (obtenus par une requête dédiée). Puis lorsque je fais mon lien permettant d'accéder à un enregistrement particulier je regarde dans mon tableau quel est l'élément précédent et quel est l'élément suivant et je les ajoute en paramètre de l'url.
Sinon , autre méthode, tu peux calculer le suivant et le précédent en 2 requêtes en jouant avec la clause LIMIT à 1. Exemple trouver le premier record dont le numéro est plus grand que... Puis trouver le premier record dont le numéro est plus petit que (il faut alors bien trier !)
Voilà en gros comment moi je m'y prends. Si tu trouves mieux dis le moi
Il n'y a pas de miracle il va falloir calculer le suivant et le précédent.
Si tu pars initialement d'un tableau html (genre grille Paradox) pour aller ensuite sur un enregistrement détail et permettre alors de faire suivant / précedent tu peux calculer ce suivant et ce précédent dès ce tableau html de départ. Dans ce cas je crée un array et je le rempli séquentiellement avec les numéros (obtenus par une requête dédiée). Puis lorsque je fais mon lien permettant d'accéder à un enregistrement particulier je regarde dans mon tableau quel est l'élément précédent et quel est l'élément suivant et je les ajoute en paramètre de l'url.
Sinon , autre méthode, tu peux calculer le suivant et le précédent en 2 requêtes en jouant avec la clause LIMIT à 1. Exemple trouver le premier record dont le numéro est plus grand que... Puis trouver le premier record dont le numéro est plus petit que (il faut alors bien trier !)
Voilà en gros comment moi je m'y prends. Si tu trouves mieux dis le moi
-
- Messages : 108
- Enregistré le : jeu. oct. 31, 2002 11:51 am
- Localisation : Breizh
- Contact :
-
- Site Admin
- Messages : 855
- Enregistré le : sam. sept. 14, 2002 10:41 pm
- Localisation : Igny (Essonne)
Le problème avec Paradox c'est qu'après ce logiciel génial tout parait lourd et pénible
Bon si tu butes sur quelque chose n'hésites pas.
Le plus simple c'est les 2 requêtes lors de l'accès à la fiche détail enregistrement.
L'autre méthode un chouia plus complexe permet d'éviter ces requêtes futures.
Bon si tu butes sur quelque chose n'hésites pas.
Le plus simple c'est les 2 requêtes lors de l'accès à la fiche détail enregistrement.
L'autre méthode un chouia plus complexe permet d'éviter ces requêtes futures.
-
- Messages : 108
- Enregistré le : jeu. oct. 31, 2002 11:51 am
- Localisation : Breizh
- Contact :
Je crois comprendre qu'il est difficile en fait de naviguer dans un tableau comme sur une base de données, le tableau s'affichant à l'écran étant un résultat figé.
Je note quand même la qualité de pxforms qui permet ce genre de gestion via internet.
Je pensais pouvoir faire pareil avec php
Je suis déçu
Bon je continue à chercher quand même vu le nombre de timbré qui te sorte des scripts d'enfer on ne sait jamais.
Philippe
Je note quand même la qualité de pxforms qui permet ce genre de gestion via internet.
Je pensais pouvoir faire pareil avec php
Je suis déçu
Bon je continue à chercher quand même vu le nombre de timbré qui te sorte des scripts d'enfer on ne sait jamais.
Philippe
-
- Messages : 108
- Enregistré le : jeu. oct. 31, 2002 11:51 am
- Localisation : Breizh
- Contact :
-
- Site Admin
- Messages : 855
- Enregistré le : sam. sept. 14, 2002 10:41 pm
- Localisation : Igny (Essonne)
C'est exactement celaPhilippe GUEGAN a écrit :Je crois comprendre qu'il est difficile en fait de naviguer dans un tableau comme sur une base de données, le tableau s'affichant à l'écran étant un résultat figé.
Mais c'est parce que derrière c'est en fait Paradox qui travaille ! Le changement de record est fait par paradox. L'écran html est simplement rafraichi par le contenu de l'écran Paradox. Idée géniale mais qui présente des limites tout de même. ASP.NET de Microsoft permet également cette gestion de manière transparente, mais cela a un prix en terme de lourdeur du système comparé à Php.Je note quand même la qualité de pxforms qui permet ce genre de gestion via internet.
Honnêtement ce n'est vraiment pas méchant ! Bon je vais te retrouver un exemple que j'ai utilisé pour un site (je te fais cela tout à l'heure, là je pars à la "course aux oeufs !")Bon je continue à chercher quand même vu le nombre de timbré qui te sorte des scripts d'enfer on ne sait jamais.
-
- Site Admin
- Messages : 855
- Enregistré le : sam. sept. 14, 2002 10:41 pm
- Localisation : Igny (Essonne)
Bon voici donc un exemple tiré d'un site de gestion de bulletins scolaires :
Je te le commente en rouge
function NavigueBulletin($cle,$anneebull,$nosection,$script,$voirvalide)
{
// Affiche lien vers le bulletin suivant et précédent dans l'ordre alpha de la section
// La requête qui me retourne la liste des clés (ici avec des critères de sélection passés en paramètres de la fonction)
$query="SELECT T1.NoBull FROM bulletin T1 LEFT JOIN eleve T2 ON (T1.NoEleve=T2.NoEleve)
WHERE (T1.AnneeBull='$anneebull') AND (T1.NoSection='$nosection') ";
if ($voirvalide<>"O") $query .= "AND (T1.Valider<>'1') ";
$query .= "ORDER BY T2.NomEleve,T2.PrenomEleve";
$result = mysql_query($query) or die ("Requête sélection bulletin incorrecte ".mysql_error());
// Chargement du résultat dans un tableau
$tab=array();
while ($row = mysql_fetch_array($result))
$tab[]=$row[NoBull];
mysql_free_result($result);
// Chercher dans le tableau l'élément clé ($clé) passé en paramètre à la fonction.
// Une fois trouvé on regarde s'il y a un élément précédent et on l'affect à $p puis s'il y a un élément suivant et on l'affecte à $s
for($i=0;$i<=count($tab)-1;$i++)
{
if ($tab[$i]==$cle)
{
if ($i==0)
$p=0;
else
$p=$tab[$i-1];
if ($i==count($tab)-1)
$s=0;
else
$s=$tab[$i+1];
break;
} //endif
} //endfor
// si on a un élément précédent on construit un lien "Précédent"
if ($p<>0)
{
$lien=$script."&cle=$p";
echo("<a href=\"$lien\">Précédent</a>");
} //endif
// si on a un élément suivant on construit un lien "Suivant"
if ($s<>0)
{
$lien=$script."&cle=$s";
if ($p<>0) echo(" \n");
echo("<a href=\"$lien\">Suivant</a>");
} //endif
}
Bon c'est un exemple que j'ai écrit et qui fonctionne pour moi, cela ne prétend pas être "la" vérité
Je te le commente en rouge
function NavigueBulletin($cle,$anneebull,$nosection,$script,$voirvalide)
{
// Affiche lien vers le bulletin suivant et précédent dans l'ordre alpha de la section
// La requête qui me retourne la liste des clés (ici avec des critères de sélection passés en paramètres de la fonction)
$query="SELECT T1.NoBull FROM bulletin T1 LEFT JOIN eleve T2 ON (T1.NoEleve=T2.NoEleve)
WHERE (T1.AnneeBull='$anneebull') AND (T1.NoSection='$nosection') ";
if ($voirvalide<>"O") $query .= "AND (T1.Valider<>'1') ";
$query .= "ORDER BY T2.NomEleve,T2.PrenomEleve";
$result = mysql_query($query) or die ("Requête sélection bulletin incorrecte ".mysql_error());
// Chargement du résultat dans un tableau
$tab=array();
while ($row = mysql_fetch_array($result))
$tab[]=$row[NoBull];
mysql_free_result($result);
// Chercher dans le tableau l'élément clé ($clé) passé en paramètre à la fonction.
// Une fois trouvé on regarde s'il y a un élément précédent et on l'affect à $p puis s'il y a un élément suivant et on l'affecte à $s
for($i=0;$i<=count($tab)-1;$i++)
{
if ($tab[$i]==$cle)
{
if ($i==0)
$p=0;
else
$p=$tab[$i-1];
if ($i==count($tab)-1)
$s=0;
else
$s=$tab[$i+1];
break;
} //endif
} //endfor
// si on a un élément précédent on construit un lien "Précédent"
if ($p<>0)
{
$lien=$script."&cle=$p";
echo("<a href=\"$lien\">Précédent</a>");
} //endif
// si on a un élément suivant on construit un lien "Suivant"
if ($s<>0)
{
$lien=$script."&cle=$s";
if ($p<>0) echo(" \n");
echo("<a href=\"$lien\">Suivant</a>");
} //endif
}
Bon c'est un exemple que j'ai écrit et qui fonctionne pour moi, cela ne prétend pas être "la" vérité
-
- Messages : 108
- Enregistré le : jeu. oct. 31, 2002 11:51 am
- Localisation : Breizh
- Contact :