Для цикла для типа данных столбца information_schema не работает

Я пробовал много комбинаций, но я не могу понять, почему все типы ввода становятся текстовыми!

$columnquery = $conn->query("SELECT column_name, column_comment, data_type FROM information_schema.columns
WHERE table_schema = '$dbname'
AND table_name = '$tableName'");
if ($columnquery->num_rows > 0){

while ($columnRows = $columnquery->fetch_assoc()) {
$columnName = $columnRows["column_name"];
$columnType = $columnRows["data_type"];

if ($columnRows['column_comment'] != 'Pups' && $columnType = "varchar"){
echo "$columnName: $columnType <input type='text' name='$columnName'><br>";
}
elseif ($columnRows['column_comment'] != 'Pups' && $columnType = "int") {
echo "$columnName: $columnType <input type='number' name='$columnName'><br>";
}
elseif ($columnRows['column_comment'] != 'Pups' && $columnType = "date") {
echo "$columnName: $columnType <input type='date' name='$columnName'><br>";
}

}

0

Решение

Одиночный «=» используется для того, чтобы сделать переменные равными чему-то, для сравнения вы должны использовать «==» e-g
$ columnquery = $ conn-> query («SELECT имя_ столбца, столбец_комментария, тип_данных FROM information_schema.columns
ГДЕ table_schema = ‘$ dbname’
AND table_name = ‘$ tableName’ «);
if ($ columnquery-> num_rows> 0) {

while ($columnRows = $columnquery->fetch_assoc()) {
$columnName = $columnRows["column_name"];
$columnType = $columnRows["data_type"];

if ($columnRows['column_comment'] != 'Pups' && $columnType == "varchar"){
echo "$columnName: $columnType <input type='text' name='$columnName'><br>";
}
elseif ($columnRows['column_comment'] != 'Pups' && $columnType == "int") {
echo "$columnName: $columnType <input type='number' name='$columnName'><br>";
}
elseif ($columnRows['column_comment'] != 'Pups' && $columnType == "date") {
echo "$columnName: $columnType <input type='date' name='$columnName'><br>";
}

}

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]