Enregistrement suivant

Résolu
cs_didou8513 Messages postés 58 Date d'inscription vendredi 1 octobre 2004 Statut Membre Dernière intervention 11 mars 2005 - 9 mars 2005 à 09:08
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 - 10 mars 2005 à 09:38
Bonjour, à un moment dans mon application php, j'ai un tableau qui affiche tous les résultats d'une requete, il y a une colonne qui est le nom d'une entreprise et qui est un lien vers les détails de cette entreprise.
Quand j'arrive sur la page détails, j'aimerais avoir un bouton ou un lien qui me permet d'aller sur l'enregistrement suivant.
J'ai pensé à stocker les résultats de ma requete dans une table et ensuite grâce à cette table pouvoir réaliser ce que je veux mais je ne vois pas comment accéder à l'enregistrement suivant d'une table. J'utilise une base oracle. Merci de votre aide

11 réponses

arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
10 mars 2005 à 09:38
Super !
N'hésite pas, si tu as d'autres questions...

Arnaud
3
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
9 mars 2005 à 09:44
Bonjour,
Lorsque tu passes de la 1e page à la page "détails", comment sélectionnes-tu la bonne entreprise ? J'imagine en utilisant un identifiant. Comment le passes-tu ? avec un get ou un post ?
Lors de cette lecture des détails, accèdes-tu aux données de la base, ou lis-tu une variable tableau ?
Je pense que le plus simple, c'est de construire un tableau contenant le résultat de la requête de la 1e page (toutes les entreprises, avec leur identifiant). Ensuite, sur ta page détails, tu fais une requête avec un "WHERE idEnt=..." et pour le suivant, utilise la fonction next().

En espérant t'avoir un peu aidé.
Arnaud
0
cs_didou8513 Messages postés 58 Date d'inscription vendredi 1 octobre 2004 Statut Membre Dernière intervention 11 mars 2005
9 mars 2005 à 09:49
Merci de me répondre, oui pour sélectionner la bonne entreprise j'utilise son identifiant et ce dernier s'inscrit dans l'url de la page détails, et dans cette page j'accède aux données de la base.
Ton idée me paraît bien mais je ne connaît pas la fonction next.
0
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
9 mars 2005 à 10:20
Si tu as bien un tableau contenant tous tes identifiants (de la forme
array(id1=>('NOM'=>'duchmol','Adresse'=>'rue truc',...), id2=>(...),...)
alors pour écrire ton lien vers l'entreprise suivante, essaie un truc du genre :

1./Recherche de l'identifiant en cours dans le tableau et positionnement du curseur du tableau sur cet élément (j'ai trouvé cette fonction sur http://www.php.net/manual/fr/function.current.php ) :

function array_set_current(&$array, $key)
{
reset($array);
while (current($array)!==FALSE){
if (key($array) == $key) {
break;
}
next($array);
}
return current($array);
}

Donc dans ton cas, ça doit donner à peu près ça :
array_set_current($TableauDesEntreprises, $idEnCours);

2./Déplacement du curseur du tableau sur l'élément suivant :
$suivant=next($TableauDesEntreprises); //cf http://www.php.net/manual/fr/function.next.php
if ($suivant===FALSE) $suivant=reset($TableauDesEntreprises);
$idSuivant=key(TableauDesEntreprises);

3./ Puis construction du lien :
echo "suivant";

Si tu as d'autres questions, n'hésite pas.
Arnaud
0

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

Posez votre question
cs_didou8513 Messages postés 58 Date d'inscription vendredi 1 octobre 2004 Statut Membre Dernière intervention 11 mars 2005
9 mars 2005 à 11:04
Désolé je ne maîtrise pas trop les tableaux, comment le remplir avec juste l'identifiant des entreprises. Merci
J'exécute la requete et tant qu'il y a un résultat j'insère le résultat dans le tableau. Ca doit être ca, mais quelle est la syntaxe pour l'insertion du résultat ?
Merci
0
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
9 mars 2005 à 11:31
oui, c'est ça, en même temps que tu exploites le résultat de ta requète. Après, ça dépend de ta table entreprise. Tu peux faire un tableau qui contient quelques infos sur les entreprises :
$TableauDesEntreprises=array();
while($resultat...)
{
$id=résultat id
$TableauDesEntreprises[$id]['Nom']=resultat nom
$TableauDesEntreprises[$id]['Adresse']=resultat adresse;
}

ou alors un tableau contenant juste les id :
$TableauDesEntreprises=array();
while($resultat...)
{
$id=résultat id
array_push($TableauDesEntreprises,$id); //cf http://www.php.net/manual/fr/function.array-push.php
}
Dans ce 2e cas, le tableau sera de la forme :
array(0=>id1, 1=>id2, ...) et le reste sera en fait plus simple, sur la page détails :
1./Recherche de l'identifiant en cours :
$cle=array_search($idEnCours, $TableauDesEntreprises); //cf http://www.php.net/manual/fr/function.array-search.php
2./$idSuivant= $TableauDesEntreprises[$cle+1];
3./idem

Arnaud
0
cs_didou8513 Messages postés 58 Date d'inscription vendredi 1 octobre 2004 Statut Membre Dernière intervention 11 mars 2005
9 mars 2005 à 11:37
En fait c'est bon j'ai réussi a insérer les données dans mon tableau. Mais la je ne vois pas comment accéder à l'enregistrement suivant et précédent.
Pour trouver la valeur de l'entreprise que j'ai sélectionné c'est pas difficile car elle se trouve dans l'url. Après tu m'a dit si j'ai bien compris de trouver sa position dans le tableau comment faire ? Aussi, à l'affichage des résultats de ma requete j'ai fait un echo reset($tableau); ca marche ca affiche la valeur de la dernière ligne du tableau mais quand que sélectionne une entreprise qui me dirige vers la page détails et que je refait un echo reset($tableau); ca me met "Warning: Variable passed to reset() is not an array or object .....". C'est normal ? Merci
0
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
9 mars 2005 à 14:11
Apparemment je n'ai pas été très clair. Je t'ai proposé 2 solutions pour remplir ton tableau (cf post précédent). Laquelle as-tu choisi ? Lorsque ton tableau est rempli et que tu fais print_r($tableau); obtiens-tu
array(id1=>('NOM'=>'duchmol','Adresse'=>'rue truc',...), id2=>(...),...)
ou
array(0=>id1, 1=>id2, ...)
?

Si tu as choisi cette 2e solution (c'est le plus simple), il te suffit ensuite, sur la page détails, de faire
1./Recherche de l'identifiant en cours :
$cle=array_search($idEnCours, $TableauDesEntreprises); //cf http://www.php.net/manual/fr/function.array-search.php
2./$idSuivant= $TableauDesEntreprises[$cle+1];
3./idem
C'est tout, plus besoin de function array_set_current(&$array, $key), ni de reset, ni de next.

Note : Si tu veux afficher un tableau, utilises "print_r($tableau)" et non pas "echo reset($tableau)"

Arnaud
0
cs_didou8513 Messages postés 58 Date d'inscription vendredi 1 octobre 2004 Statut Membre Dernière intervention 11 mars 2005
9 mars 2005 à 14:35
J'y vois un peu plus clair maintenant, mais j'ai été un peu trop vite pour l'insertion des données dans mon tableau, je n'y arrive pas il m'affiche qu'un seul résultat et si je fais de ta manière avec array_push ya un message d'erreur : Fatal error: Only variables can be passed by reference .....
Merci
0
cs_didou8513 Messages postés 58 Date d'inscription vendredi 1 octobre 2004 Statut Membre Dernière intervention 11 mars 2005
9 mars 2005 à 15:13
C'est bon j'ai résussi à insérer les données dans le tableau mais pour le reste je vois bien comment faire mais ca ne marche pas

$cle=array_search($id,$tableau);

$id correspond à l'identifiant de l'entreprise qui est dans l'url

j'ai pas l'impression qu'il comprend la fonction array_search, mais tu t'y connait mieu que moi

quand j'affiche $cle il me met : array
0
cs_didou8513 Messages postés 58 Date d'inscription vendredi 1 octobre 2004 Statut Membre Dernière intervention 11 mars 2005
9 mars 2005 à 17:02
Je te remercie de ton aide j'ai réussi ce que je voulais faire, a+ salut
0
Rejoignez-nous