probleme avec key()

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme avec key()

par Ryle » 11 juil. 2007, 11:54

Au temps pour moi, c'est la notion de courrant qui m'avait échappé pour la fonction key, je pensais qu'il fallait d'abord sélectionner la valeur pour qu'il retourne la clé associé :)

par Hywan » 11 juil. 2007, 11:49

@Ryle : key() retourne la clé courante du tableau. current() retourne la valeur courante du tableau.

Si key() retourne null, c'est qu'on est à la fin du tableau dans la majorité des cas. Comme risa83 voulait (int)12, ie. le premier ID, un reset s'imposait.

Edit : n'oublies pas de mettre ton poste en "Résolu" :)

par risa83 » 11 juil. 2007, 11:38

Chez moi, key($tabMoteur) me donne (int)12.

Tu le places où exactement dans ton code ?

Edit: sinon fait
reset($tabMoteur);
$var = key($tabMoteur);
Je le place à la fin de mon bout de code (après $_GET['idMoteur'] = key($tabMoteur) )

J'ai essayé avec reset et tou marche correctement !!!
MERCI :D

PS:
Ce que je ne comprend pas c'est qu'avant l'integration tout fonctionnait sans le reset!!!!

par Ryle » 11 juil. 2007, 11:35

bah non, key() c'est bon, mais ca m'étonne qu'il ne faille pas un current() pour récupérer le premier élément du tableau pour que key puisse en déterminer la clé...

par Hywan » 11 juil. 2007, 11:32

Chez moi, key($tabMoteur) me donne (int)12.

Tu le places où exactement dans ton code ?

Edit: sinon fait
reset($tabMoteur);
$var = key($tabMoteur);

par risa83 » 11 juil. 2007, 11:26

Euh... et c'est quoi la valeur que tu vourdrais avoir à la place de NULL ?

Parce que je ne vois pas du tout ce que tu peux attendre d'autre de ce code.. tu n'es positionné sur aucun élément du tableau, j'ai du mal à imaginer comment key() pourrait te retourner un index, et surtout lequel elle pourrait te retourner :)
J'aimerais avoir comme valeur 12 (la première clé du tableau)
Auparavant c'est la valeur qui m'était renvoyé :shock:

Si key() n'est pas la bonne fonction pour mon souhait, sais tu laquelle dois je utiliser?

par Ryle » 11 juil. 2007, 11:23

Euh... et c'est quoi la valeur que tu vourdrais avoir à la place de NULL ?

Parce que je ne vois pas du tout ce que tu peux attendre d'autre de ce code.. tu n'es positionné sur aucun élément du tableau, j'ai du mal à imaginer comment key() pourrait te retourner un index, et surtout lequel elle pourrait te retourner :)

par risa83 » 11 juil. 2007, 10:55

Bonjour :)

Tu pourrais nous faire un var_dump sur $tabMoteur, et sur key($tabMoteur) ?
voila ce que je trouve pour $tabMoteur

Code : Tout sélectionner

array(5) { [12]=> array(2) { ["MOT_NOM"]=> string(23) "AltaVista International" ["CHA_CHAINE"]=> string(76) "http://www.altavista.com/web/results?q=[search for this]&kgs=0&kls=0&stq=30 " } [15]=> array(2) { ["MOT_NOM"]=> string(10) "Google.com" ["CHA_CHAINE"]=> string(62) "http://www.google.com/search?hl=en&q=[search for this]&num=100" } [19]=> array(2) { ["MOT_NOM"]=> string(19) "Lycos International" ["CHA_CHAINE"]=> string(69) "http://search.lycos.com/default.asp?query=[search for this]&offset=90" } [26]=> array(2) { ["MOT_NOM"]=> string(17) "MSN International" ["CHA_CHAINE"]=> string(74) "http://search.msn.com/results.aspx?q=[search for this]&first=101&count=100" } [24]=> array(2) { ["MOT_NOM"]=> string(20) "Yahoo! International" ["CHA_CHAINE"]=> string(88) "http://search.yahoo.com/search?p=[search for this]&ei=UTF-8&fr=fp-tab-web-t&cop=mss&tab=" } }
et pour key($tabMoteur) : NULL

par Hywan » 11 juil. 2007, 10:51

Bonjour :)

Tu pourrais nous faire un var_dump sur $tabMoteur, et sur key($tabMoteur) ?

probleme avec key()

par risa83 » 11 juil. 2007, 10:36

Bonjour a tous et a toutes,

je travaillais sur 3 fichiers php différents concernant un affichage sous forme de tableau.
Dans un de ces fichiers j'utilisais la fonctin key() qui marchait parfaitement bien.
Malheureusement il fallait que j'intègre ces 3 fichiers en un seul et depuis cette fonction ne répond plus !!!

voici mon bout de code
//recupérer tous les moteurs de recherche du pack associé pour le positionnement en cours
$sql = "select distinct(CHAINEDERECHERCHE.ID_MOTEURDERECHERCHE), MOT_NOM, CHA_CHAINE from PACKPOSITIONNEMENT 
  inner join PACKREQUETE on PACKREQUETE.ID_PACKPOSITIONNEMENT=PACKPOSITIONNEMENT.ID_PACKPOSITIONNEMENT 
  inner join MOTEURDERECHERCHE on MOTEURDERECHERCHE.ID_MOTEURDERECHERCHE = PACKREQUETE.ID_MOTEURDERECHERCHE 
  inner join CHAINEDERECHERCHE on CHAINEDERECHERCHE.ID_MOTEURDERECHERCHE = MOTEURDERECHERCHE.ID_MOTEURDERECHERCHE
  where PACKPOSITIONNEMENT.ID_PACKPOSITiONNEMENT = " . $_GET['id'];
$rsbis = mssql_query($sql) or die(erreurSQL($sql)); 
while ($rowbis = @mssql_fetch_array($rsbis)){
  $tabMoteur[$rowbis['ID_MOTEURDERECHERCHE']] = array('MOT_NOM' => $rowbis['MOT_NOM'], 'CHA_CHAINE' => $rowbis['CHA_CHAINE']);
}
//recupere le premier moteur si aucun argument
if (!isset($_GET['idMoteur'])) {$_GET['idMoteur'] = key($tabMoteur) ;}
J'ai vérifié et le tableau $tabMoteur est correctement peuplé mais la fonction key() ne renvoie rien..
Je n'ai rien changé à ce bout de code.
Ce que je ne comprend pas c'est que key() fonctionnait très bien auparavant !!! :shock:

Quelqu'un sait d'ou cela peut venir ???