2012-04-18 6 views
-1

配列に何らかの種類のパラメータ(まだ未知の変数)を追加する方法はありますか?あなたがここで見ることができるように、私は事前に(mysqlフェッチの前に)userIDを知らないので、ページを編集するためのリンクを適切に形成できません。配列内の未知の変数

<?php 

$box = array ('1'=>"<a href='edit.php?id=/PROBLEM??/'>edit</a>",'2'=>'Cannot edit'); 


while ($row = mysql_fetch_array($something)) { 

?> 

<tr> 
<td><?php echo $row["Name"]; ?></td> 
<td><?php echo $box[$row["editable"]]; ?></td> 
</tr> 


<?php 

} 

?> 

$行[ "編集可能"]は1又は2を返し、ユーザが編集可能であるかどう 戻るデータベース・レコードに依存します。

+1

理由だけにリンクを分割しません接頭辞と接尾辞を指定し、$ row ["editable"]が1ならば接頭辞をエコーし​​、ユーザIDと後置? – mgiuffrida

+2

クエリの後にリンクを作成します。 – Madbreaks

+2

これは、ビジネスロジックとhtmlを混在させない理由です。 – dqhendricks

答えて

4

あなたはsprintf()を使用することができます。

$box = array ('1'=>"<a href='edit.php?id=%d'>edit</a>",'2'=>'Cannot edit'); 

echo sprintf($box[$row["editable"]], ID_HERE) 
+0

+1私はちょうど同様のものを入力していた... – jeroen

+0

ちょうど:)) – John

1

はこのよう周りにそれをしなさい...

<?php while ($row = mysql_fetch_array($something)) : ?> 

<tr> 

<td><?php echo $row["Name"]; ?></td> 

<?php if($row["editable"] === 1) : ?> 
    <td><a href='edit.php?id=<?php echo $row["Id"]; ?>'>edit</a></td> 
<?php else : ?> 
    <td>Cannot edit</td> 
<?php endif; ?> 

</tr> 

<?php endif; ?> 
1

str_replace()をお試しください:

$box = array ('1'=>"<a href='edit.php?id=%ID%'>edit</a>",'2'=>'Cannot edit'); 
$link = str_replace('%ID%', $row["id"], $box[$row["editable"]]); 
関連する問題