Автоматически генерировать имена полей из таблицы PHP

0

Возникает проблема автоматического получения имен полей из таблицы MySQL. Если возможно, имя может быть помещено в этот формат вместе с динамически созданным текстовым полем?:

Коды, которые я создал до сих пор, расположены ниже:

<?php

include "db_connect.php";

$name = mysql_query("SELECT * from users");

$property = mysql_fetch_field($name);

$i = 0;

$result = mysql_query("SHOW COLUMNS FROM users");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_assoc($result)) {
    while($i<mysql_num_fields($result))
    {
      $meta=mysql_fetch_field($name,$i);
      $new = $meta->name;
      echo "$new: <input type=\"text\" name=\"{$row['Field']}\" size=\"40\"   
      maxlength=\"256\" /><br>";
      $i++;
    }
}
}
?>

Динамически созданное текстовое поле (в соответствии с количеством столбцов из таблицы) работает нормально, но имена полей не могут быть сгенерированы! Может кто-нибудь, пожалуйста, дайте совет или помощь по этому поводу? Спасибо!

  • 0
    У кого-нибудь есть идеи?
Теги:
dynamic
field

3 ответа

0
Лучший ответ

Ниже приведен код столбцов таблицы и генерируется список входов. В вашем коде у вас много вещей, которые бесполезны. Вам не нужно select * from users...

Вот код

<?php
include "db_connect.php";

//  This is not needed! Useless query that loads all the info from db
//$name = mysql_query("SELECT * from users");
//$i = 0;


//  Here you are getting culumns information
$result = mysql_query("SHOW COLUMNS FROM users");
if (!$result) {
    echo 'Could not run query: ' . mysql_error();
    exit;
}

//  Scan through all the fields
while ($field = mysql_fetch_object($result)) {

    //  structure of $field looks like this
    /*
      object(stdClass)[1]
      public 'Field' => string 'id' (length=2)
      public 'Type' => string 'int(11)' (length=7)
      public 'Null' => string 'NO' (length=2)
      public 'Key' => string 'PRI' (length=3)
      public 'Default' => null
      public 'Extra' => string 'auto_increment' (length=14)
     */

    //
    echo "$field->Field: <input type=\"text\" name=\"$field->Field\" size=\"40\" maxlength=\"256\" /><br>";
}
?>
  • 0
    Да, спасибо, чувак, твои коды аккуратнее и короче!
0

Ответ:

<?php

include "db_connect.php";

$name = mysql_query("SELECT * from checkusers");

$property = mysql_fetch_field($name);

$result = mysql_query("SHOW COLUMNS FROM checkusers");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
    for ($i = 0; $i < mysql_num_fields($name); $i++)
    {
      $meta=mysql_field_name($name, $i);
      echo "$meta: <input type=\"text\" name=\"{$row['health_id']}\" size=\"40\" 
      maxlength=\"256\" /><br>";
    }

?>
-3

<?php

include "database.php";

$id = mysql_query("SELECT * from info");

$property = mysql_fetch_field($id);

$i = 0;

$result = mysql_query("SHOW COLUMNS FROM info");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_assoc($result)) {
    while($i<mysql_num_fields($result))
    {
      $meta=mysql_fetch_field($result,$i);
      $new = $meta->id;
      echo "$new: <input type=\"text\" id=\"{$row['Field']}\" size=\"40\"   
      maxlength=\"256\" /><br>";
      $i++;
    }
}
}
?>
  • 0
    попробуйте это .. это ваш код .. я думаю, я исправлю это .. но я не знаю, как использовать этот :)
  • 2
    Как ты это починил? Что вы изменили по сравнению с оригинальным кодом? Из твоего ответа совсем не понятно ...
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню