Автоматически генерировать имена полей из таблицы PHP - PullRequest
0 голосов
/ 15 сентября 2010

Существует проблема автоматического извлечения имен полей из таблицы 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++;
    }
}
}
?>

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

Ответы [ 3 ]

0 голосов
/ 16 сентября 2010

Код ниже получит столбцы таблицы и сгенерирует список входных данных.В вашем коде у вас есть много вещей, которые бесполезны.Вам не нужно 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 columns information
$result = mysql_query("SHOW COLUMNS FROM users");

if (!$result) {
    echo 'Could not run query: ' . mysql_error();
    exit;
}

//  Scan through all the columns
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 голосов
/ 06 июля 2015

<?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 голосов
/ 15 сентября 2010

Ответ:

<?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>";
    }

?>
...