Enregistrement suivant [Résolu]

Messages postés
58
Date d'inscription
vendredi 1 octobre 2004
Dernière intervention
11 mars 2005
- - Dernière réponse : arnal69130
Messages postés
445
Date d'inscription
lundi 17 février 2003
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
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
Messages postés
445
Date d'inscription
lundi 17 février 2003
Dernière intervention
22 mars 2007
3
Merci
Super !
N'hésite pas, si tu as d'autres questions...

Arnaud

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 104 internautes nous ont dit merci ce mois-ci

Commenter la réponse de arnal69130
Messages postés
445
Date d'inscription
lundi 17 février 2003
Dernière intervention
22 mars 2007
0
Merci
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
Commenter la réponse de arnal69130
Messages postés
58
Date d'inscription
vendredi 1 octobre 2004
Dernière intervention
11 mars 2005
0
Merci
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.
Commenter la réponse de cs_didou8513
Messages postés
445
Date d'inscription
lundi 17 février 2003
Dernière intervention
22 mars 2007
0
Merci
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
Commenter la réponse de arnal69130
Messages postés
58
Date d'inscription
vendredi 1 octobre 2004
Dernière intervention
11 mars 2005
0
Merci
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
Commenter la réponse de cs_didou8513
Messages postés
445
Date d'inscription
lundi 17 février 2003
Dernière intervention
22 mars 2007
0
Merci
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
Commenter la réponse de arnal69130
Messages postés
58
Date d'inscription
vendredi 1 octobre 2004
Dernière intervention
11 mars 2005
0
Merci
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
Commenter la réponse de cs_didou8513
Messages postés
445
Date d'inscription
lundi 17 février 2003
Dernière intervention
22 mars 2007
0
Merci
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
Commenter la réponse de arnal69130
Messages postés
58
Date d'inscription
vendredi 1 octobre 2004
Dernière intervention
11 mars 2005
0
Merci
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
Commenter la réponse de cs_didou8513
Messages postés
58
Date d'inscription
vendredi 1 octobre 2004
Dernière intervention
11 mars 2005
0
Merci
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
Commenter la réponse de cs_didou8513
Messages postés
58
Date d'inscription
vendredi 1 octobre 2004
Dernière intervention
11 mars 2005
0
Merci
Je te remercie de ton aide j'ai réussi ce que je voulais faire, a+ salut
Commenter la réponse de cs_didou8513

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.