2012-10-08 2 views
-1

J'ai un tableau que je créé par cette requête:passer un tableau à une fonction en php

$run=0; 
$result = $conn->query("SELECT distinct isbn13 from inventory 
         WHERE quantity>0 and isbn13 like '978%' limit $run, 20"); 

while($image = $result->fetch_assoc()) 
{ 
    $isbn[$x] = $image['isbn13']; 
    $x++; 
} //end while 

et je dois passer dans cette fonction:

$parsed_xml = ProductId_xml($isbn); 

Je sais qu'il ya information dans le $ isbn parce que j'ai utilisé print_r ($ isbn); et vu le tableau. Cependant, quand je fais la même chose dans la fonction (var_dump ($ searchterm); die;), je reçois la valeur NULL. Voici une partie de la fonction:

count=0; 

function ProductId_xml($searchTerm) { 
    var_dump($searchTerm); die; 

    $params = array(
     'AWSAccessKeyId' => AWS_ACCESS_KEY_ID, 
     'Action' => "GetMatchingProductForId", 
     'SellerId' => MERCHANT_ID, 
     'SignatureMethod' => "HmacSHA256", 
     'SignatureVersion' => "2", 
     'Timestamp'=> gmdate("Y-m-d\TH:i:s.\\0\\0\\0\\Z", time()), 
     'Version'=> "2011-10-01", 
     'MarketplaceId' => MARKETPLACE_ID, 
     'IdType' => "ISBN", 
    ); 

    $id=array(explode(',',$searchTerm)); 

    foreach ($id as $newId) 
    { 
     $count .= $count +1;  
     $params += array('IdList.Id.'.$count => $newId); 
    } //end of foreach 

Comment puis-je obtenir les informations dans ma fonction?

+3

searchterm de $ == searchTerm de $!. Les variables sont sensibles à la casse. – Gordon

+1

Préparez-vous à vous lancer. var_dump ($ searchterm) a le "t" en minuscule mais vous le passez en $ searchTerm. Le prochain problème que vous aurez est que $ searchTerm est déjà un tableau et que vous essayez de l'exploser. Et je n'ai aucune idée de ce que $ params est censé être, mais + = ne fonctionnera pas là. – James

+0

@James - YUP me donne un coup de pied !!! $ params est un autre tableau que j'utilise plus tard dans la fonction. Comment devrais-je y ajouter si + = ne fonctionne pas? – Jim

Répondre

1

La variable entrante $searchTerm doit être un tableau associatif. Vous n'avez pas besoin de l'exploser. Vous devriez juste être en mesure d'accéder à l'information en disant $searchTerm['key'] ou en utilisant une boucle foreach.

foreach ($searchTerm as $key=>$val) { 
    $params['IdList.Id.'.$key] = $val; 
} //end of foreach 
+0

Cela semble bien, sauf s'il est possible d'obtenir $ key à partir de 1 au lieu de 0? J'en ai besoin pour ressembler à ceci: IdList.Id.1. Je sais que la clé $ est la position du tableau, donc je ne suis pas sûr si je peux changer cela. Est-ce que je l'initialise juste comme $ key = 1; avant ma déclaration foreach? Ou est impossible de changer? – Jim

+1

Oui, lorsque vous extrayez les données de la base de données, initialisez '$ x = 1;' avant de démarrer la boucle while. – Pitchinnate

+0

Merci, ça a fait l'affaire! J'apprécie toute votre aide. – Jim

1

Les noms de variables PHP sont sensibles à la casse, donc $searchterm et $searchTerm sont des variables différentes.

Essayez var_dump($searchTerm); die;

1

Le problème est ici:

function ProductId_xml($searchTerm) { 
    var_dump($searchterm); die; 

$ searchTerm est différent de searchterm $. Essayez avec:

var_dump($searchTerm); die; 

Il devrait fonctionner

Questions connexes