2012-08-30 3 views
1

donc je forme:PHP: comment lire les valeurs des fonctions qui renvoient tableau

<form method="post"> 
    Name: <input type="text" name="name" value<? if(isset($_GET['edit'])) {echo '="'. person($_GET['edit']) .'"';} ?>/><br> 
    Surname: <input type="text" name="surname" value<? if(isset($_GET['edit'])) {echo '="'. person($_GET['edit']) .'"';} ?>/><br>  
    Age: <input type="text" name="age" value<? if(isset($_GET['edit'])) {echo '="'. person($_GET['edit']) .'"';} ?>/><br> 
    <input type="submit" value="Submit" name="submit"/> 
</form> 

et

function person($id) { 
    $query = 'SELECT name, sname, age FROM persons WHERE ID='.$id.';'; 
    $result = mysql_query($query); 
    return $row = mysql_fetch_row($result); 
} 

Alors retourne un tableau, Comment puis-je obtenir de cette fonction pour me afficher seulement: 'name'/'sname'/'age' dans chacune des valeurs d'entrée

+0

itérateur sur le tableau en utilisant foreach et vérifier si la clé correspond à la valeur d'impression autre ne pas, vous pouvez utiliser in_array ici. Êtes-vous coincé quelque part? – amitchhajer

Répondre

0

C'est comme un tableau normal, donc vous pouvez utiliser [id]. Si vous utilisez mysql_fetch_row, il doit s'agir de nombres de 0 à n-1 où n est le nombre d'éléments dans le tableau, dans l'ordre que vous avez fait dans la requête. Si vous avez mysql_fetch_assoc vous pouvez utiliser $ test ['nom'], $ test ['sname'], $ test ['age'].

$test = person(5); 

echo $test[0].$test[1].$test[2]; //will show name|sname|age (withouth '|'). 
0
$per=person('12'); 

pour obtenir le nom de nom, sname, âge

$per[0] for name, $per[1] for sname and $per[2] for age; 
4

À la première utilisation mysql_fetch_assoc pour les clés de lettre d'utilisation.

Ensuite, vous pouvez le faire dans les dernières versions de PHP:

person($id)['name'] 

Ou Define Array séparés dans les anciennes versions de PHP:

$personData = person($id); 
$name = $personData['name']; 
+1

+1 à vous, je préfère assoc. clés plutôt que numérique – WatsMyName

+1

+1 pour assoc! Rend le tableau plus lisible – asprin

+1

moi aussi. + 1 pour votre réponse. Comment puis-je rester silencieux alors que ce type de belle réponse – Gautam3164

0
$data = person($id); 
$name = $data['name']; 

Mais vous devez échapper ur paramètres avant d'utiliser les dans votre déclaration SQL! au moins faire quelque chose comme:

<?php $_GET['edit'] = mysql_real_escape_string($_GET['edit']); ?> 
<form method="post"> 
Name: <input type="text" name="name" value<? if(isset($_GET['edit'])) {echo '="'.person($_GET['edit']) .'"';} ?>/><br> 
...... 
Questions connexes