2013-05-10 2 views
0

Я сделал таблицу для встреч, которая работает как форма, она показывает, свободен ли временной интервал или нет, и вы можете резервировать встречи от него. Это код, который работает ..Использование переменной в качестве имени столбца в запросе MYSQL

$query=mysql_query("SELECT * FROM days "); 
echo " <form action=\"change.php\" method=\"post\"><TABLE>"; 
echo "<TR><Th> Dia <Th> 8 <Th> 9 <Th> 10 <Th> 11<Th>12 <Th> 13 <Th> 14 <Th> 15 <Th> 16  "; 

while ($rows=mysql_fetch_array($query)) { 
    if ($rows['08'] == 'taken') { 
     $rows['08'] = "<TD id=\"red\" >TAKEN"; 
    } 
    else { 
     $rows['08'] = "<TD id=\"blue\" ><input type=\"radio\" name=\"slot\" value= \"08 $rows[day]\" >$rows[08]"; 
    } 

    if ($rows['09']=='taken') { 
     $rows['09']="<TD id=\"red\" >TAKEN"; 
    } 
    else { 
     $rows['09']="<TD id=\"blue\" ><input type=\"radio\" name=\"slot\" value= \"09 $rows[day]\" >$rows[09]"; 
    } 

    if ($rows['10']=='taken') { 
     $rows['10']="<TD id=\"red\" >TAKEN"; 
    } 

код идет дальше, чтобы охватить все временные интервалы .. это пример того, как таблица выглядит .. хорошо ..с свободных ячеек, имеющих радио боты рядом с ними:

  day 08  09  10  11  12  13  14  15  16 
    2013-05-05 free free free taken free free taken free free 

Что я пытаюсь сделать, это автоматизировать это. как в создании цикла, поэтому я не придется повторять один и тот же код, так много раз .. я попытался следующий, но это не работало:

while ($rows=mysql_fetch_array($query)) { 
    $c="08"; 
    if ($rows["$c"]=='taken') { 
     $rows["$c"]='taken'; 
    } 

    if ($rows["$c"]=='free') { 
     $rows[$c] = "<input type=\"radio\" name=\"slot\" value= \"$c. $rows[day]\" >$rows[$c]"; 
    } 

    echo "<TR><TD>$rows[day]"; echo "<TD> $rows[$c]"; $c++; 
    echo "<TD> $rows[$c]"; $c++; 
    echo "<TD> $rows[$c]"; $c++; 
    echo "<TD> $rows[$c]"; $c++; 

..... и так далее ..

Я думаю, проблема в том, чтобы поставить переменную внутри массива строк любые предложения?

+0

Закрытие тегов всегда приятно, хотя и не обязательно. –

+0

Это правда .. но вопрос здесь в том, что вы пытаетесь использовать переменную как имя столбца. –

+0

Я не эксперт PHP, но вы не можете сделать «echo» ». $ Rows [$ c]. ""; 'поскольку' .' является символом конкатенации в PHP. –

ответ

1
$query=mysql_query("SELECT * FROM days "); 
echo "<form action='change.php' method='post'><table>"; 
echo "<tr><td>day</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr>"; 

while ($rows=mysql_fetch_array($query)) { 

    while ( $rows=mysql_fetch_assoc($query)) { 

     $res[]="<tr><td>".$rows[day]; 

     for ($c="8";$c<="16";$c++) 
     { 

      if ($c<10){$ca="0".$c;} else {$ca=$c;} 

      if ($rows[$ca]=='taken') { 
       $res[]='taken'; 
      } 
      if ($rows[$ca]=='free') { 
       $res[] = "<input type='radio' name='slot' value='".$c." ".$rows[day]." >".$rows[$ca]; 
      } 
     } 
     $res[]="</td></tr>"; 
     echo implode("</td><td>",$res); 
    } 
    echo "</table></form>"; 
+0

это не работает, потому что это только эхо первого столбца, мне нужно показать содержимое всех моих столбцов, которые (08-09-10-11-12-13-14-15-16) представляют часы работы –

+0

oh, извините, он должен быть в строчке, а не вертикально? – user2368299

+0

, пожалуйста, покажите свою структуру таблицы и напишите, что вы хотите получить, спасибо – user2368299

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