Avatar billede klovnefisken Nybegynder
05. februar 2014 - 06:12 Der er 8 kommentarer

hente felt navne og type ud af en tabel med php ??

Her alle

er der nogen der kan give mig løsningen på at få felt navne og felt type ud af en sql database.
det jeg har i tankerne at ville prøve er at få php til at generere en formular så man kan indsætte data i en tabel, og når det er $_POST efter send formularen , så skulle den igen kunne generere hvilke $_POST den skal hente
men den del er jeg sikker på jeg selv kan skrive

så det jeg mangler er ....

$sql="???????????????";                        $result=mysqli_query($link,$sql);                while($row = mysqli_fetch_array($result))
{
echo felt navn;
echo felt type;
}
tak for din tid til at læse mit spørgsmål
nu håber jeg der er en eller flere der kan give mig et svar

Bruno
Avatar billede jakobdo Ekspert
05. februar 2014 - 09:17 #1
Hej Bruno,
jeg synes desværre ikke helt dit spørgsmål giver mening.

Forstår ikke delen: "hente felt navne og type ud af tabel"
Men samtidig snakker du også om $_POST.

Så skal du trække data ud af mysql?
Eller skal du indsætte data i mysql?

og ønsker du noget generisk og derfor skal feltnavne og type automatisk trækkes ud eller hvad forsøger du ?
Avatar billede michael_stim Ekspert
05. februar 2014 - 09:52 #2
SELECT
    column_name,
    column_type    # or data_type
FROM information_schema.columns
WHERE table_name='dinTabel';

Ikke testet, bare copy/pastet fra internet.
Avatar billede klovnefisken Nybegynder
05. februar 2014 - 15:40 #3
jacobdo jeg vil prøve om jeg kan være mere konkret med mit spørgsmål.

det var en måde at spare at skulle lave en masse formulare samt en masse sql filer til include eller functions hvis man har en del database tabeller til sit website


trin 1
<form action="xx.php" method="post">

sqlect felt navne og type
genere input ud fra sql
if int <input name="feltnavn" ......>
if text <textareear..........>
if varchar <255 karater <input ... > else <textarear...>


</form>

trin2
select from .....'
$sql="INSERT INTO tabel.name (felt.navn1,felt.navn2....)
VALUES{$post['feltnavn1'], $post['feltnavn2'].......)

giver det så mere mening hvad mine tanker er



michael_stim:
det kunne være noget jeg kunne bruge, men har ikke haft tid endnu til at kikke nærmere på det
Avatar billede jakobdo Ekspert
05. februar 2014 - 16:25 #4
Det lyder som om du er ved at kode en udgave af phpmyadmin?
Avatar billede klovnefisken Nybegynder
05. februar 2014 - 22:38 #5
Nej ikke en vertion af phpmyadmin, men spare en del filer i mit cms system
Avatar billede jakobdo Ekspert
05. februar 2014 - 22:52 #6
Så kig på den kode Michael har postet.
Avatar billede klovnefisken Nybegynder
08. februar 2014 - 12:46 #7
hej igen , jeg har haft lidt travlt de seneste dage
vil i de kommende par dage skrive et indlæg med kode eksempel når jeg har klaret programmeringen , det kode Michael kom med kan jeg godt se skulle kunne give mig nok til at kunne lave resten
point afgivningen kommer der
Avatar billede klovnefisken Nybegynder
09. februar 2014 - 08:46 #8
her er så den næsten færdige kode, resten er nok forskellig alt efter hvor og hvad man bruger det til

så michael så er det nok nu du skal svare så du kan få nogle point for det der gav mig nok til at løse opgaven

<?php
function connect_db()
{
    $db_host="xxxxxxx";$db_database="xxxxxx";$db_bruger="xxxxxx";$db_password="xxxxx";   
    $link = mysqli_connect($db_host,$db_bruger,$db_password,$db_database) or die('kan ikke forbinde til SQL serveren');
    return $link;
}
?>

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>db test</title>
</head>

<body>
<?php
    $link=connect_db();
    if(isset($_POST['submit']))
    {
        echo'hent post verdierne';
        echo'<form action="test.php" method="post">';
        $sql="SELECT COLUMN_NAME,COLUMN_TYPE 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='".$_GET['t_name']."'";
        $result=mysqli_query($link,$sql);
        while($row=mysqli_fetch_array($result))
        {
            echo $row['COLUMN_NAME'].' = ';
            echo $_POST[$row['COLUMN_NAME']].'<br>';
        }
    }
   
   
    if(isset($_GET['t_name']))
    {
        echo'<br><br>formularen<br>';
        echo'<form action="test.php?t_name='.$_GET['t_name'].'" method="post">';
        $sql="SELECT COLUMN_NAME,COLUMN_TYPE 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='".$_GET['t_name']."'";
        $result=mysqli_query($link,$sql);
        while($row=mysqli_fetch_array($result))
        {
            echo $row['COLUMN_NAME'].' -- '.$row['COLUMN_TYPE'].'--->';
            $type=explode('(',$row['COLUMN_TYPE']);
            $type[1]=substr($type[1], 0, -1);
            switch ($type[0])
            {
                case 'int':
                    echo'<input name="'.$row['COLUMN_NAME'].'" type="text" ><br>';
                break;
                case 'varchar':
                    if($type[1]>=100)
                    {
                        echo'<textarea name="'.$row['COLUMN_NAME'].'"></textarea><br>';
                    }else{
                        echo'<input name="'.$row['COLUMN_NAME'].'" type="text" ><br>';
                    }
                break;
                case 'text':
                    echo'<textarea name="'.$row['COLUMN_NAME'].'"></textarea><br>';
                break;
            }
        }
        echo'<input type="submit" name="submit" value="insert"><br>';
        echo'</form>';
    }
    echo'<br><br><br>Tabeller<br>';
        $sql="SELECT DISTINCT TABLE_NAME
        FROM INFORMATION_SCHEMA.COLUMNS";
        $result=mysqli_query($link,$sql);
        while($row=mysqli_fetch_array($result))
        {
            if($row['TABLE_NAME']==strtolower($row['TABLE_NAME']))
            {
                echo '<a href="test.php?t_name='.$row['TABLE_NAME'].'">'.$row['TABLE_NAME'].'</a><br>';
            }
        }
   
   
?>
</body>
</html>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester