2015-09-08 2 views
1

У меня есть таблица в моем файле php, которая имеет столбец таблицы (табличный код), и у меня есть ссылки для каждого значения (tablecode). например, для (tablecode) значение «1», я хочу сделать это в $ link1, для (табличный код) «2» href в $ link2. Я хочу, чтобы он автоматически связывался, когда он определял, что значение «1» или «2» и т. Д. Возможно ли это? или нет?Различные ссылки в таблице

$sql1="SELECT tablecode FROM requests"; 
 

 
$lists=mysql_query($sql1); 
 
$link1="http://....."; 
 
$link2="http://....."; 
 
$link="";

<?php 
 
while($request = mysql_fetch_assoc($lists)) { \t 
 
    echo"<tr>"; \t 
 
    echo"<td BGCOLOR=white><a href='$link'>".$request['tablecode']."</a></td>";  \t 
 
    echo"</tr>"; 
 
} 
 

 
?>

я должен поставить

if(tablecode == "1") { 
 
    $link=$link1; 
 
}

или что? им тоже путают с помощью PHP и My SQL им новое здесь спасибо это для моего проекта

Это таблица

enter image description here

+0

, что это значение $ запроса [ 'типа']? –

+0

ow im sorry ..значение этого является табличным кодом – jeiidii

ответ

3

Хм, я не уверен, но я думаю, что вы ищете динамические переменные (см. PHP manual: Variable variables).

Скажем:

$link1="aaa"; 
$link2="bbb"; 

Тогда, если $ tablecode = 1, это даст вам $ link1

$link=${"link".$tablecode}; 
echo $link; // aaa 

Таким образом, в вашем коде:

while ($request=mysql_fetch_assoc($lists)){ 
    $link=${"link".$request['tablecode']}; 
    echo"<tr> 
     <td BGCOLOR=white><a href='$link'>$request[tablecode]</a></td>"; 
     </tr>"; 
} 

Объяснение:

// writing ${"link1"} means that you are referencing $link1 
// so if: $request["tablecode"] is 1 then 
$link=${"link".$request["tablecode"]}; 
// is the same thing as $link = $link1; 
// but if $request["tablecode"] is 2 then 
// you will be referencing ${"link".2} or $link2 

Но, как уже было предложено, массивы проще:

$links=array("1" => "http://1", "2" => "http://2"); 

затем использовать:

while ($request=mysql_fetch_assoc($lists)){ 
    $link=$links[$request['tablecode']]; 
    echo"<tr> 
     <td BGCOLOR=white><a href='$link'>$request[tablecode]</a></td>"; 
     </tr>"; 
} 
+0

tablecode не является переменной – jeiidii

+0

Я знаю. Это был пример. Я внес изменения для вашего кода. – verjas

+0

любезно plss объяснить это ясно .. его немного запутанный – jeiidii

0

Если я не ошибаюсь:

while($request=mysql_fetch_assoc($lists)){ 
    echo"<tr>"; 
    echo"<td BGCOLOR=white><a href=".$link.$request['tablecode'].">".$request['tablecode']."</a></td>"; 

    echo"</tr>"; 
} 

Если $request['tablecode'] 1, то href будет $link.$request['tablecode'] =$link1

+0

Это не сработает, потому что вы просто присоединяетесь к двум строкам ($ link и $ request [tablecode]) вместо динамического вызова переменной (используйте $ {}). Он просто даст: «... href =« 1 »> 1 ...» – verjas

1

Может быть, вы просто поставить ссылки в массив, например:

$links = array(1 => 'http://...', 2 => 'http://...') 

И называть их по индексу:

echo "<td BGCOLOR=white><a href='".$links[$request['tablecode']]."'>".$request['tablecode']."</a></td>"; 
+0

это отлично работает !! Спасибо, парни – jeiidii

Смежные вопросы