onbekende waardes invoegen

Status
Niet open voor verdere reacties.

ecross

Gebruiker
Lid geworden
4 mrt 2009
Berichten
638
hallo,

ik wil graag een formulier maken waarin je waardes in een mysql tabel kan invoegen
dat lukt super ;)

alleen ik wil dat je eerst een forulier waarin je je database en tabel kan invullen
lukt ook ;)

dan moet het andere formulier aanpassen naar de kolommen die in de ingegeven tabel staan veranderd en dat je dan dingen kan invullen die je in je tabel kan zetten
dat lukt dus niet :(

heeft iemand een iedee hoe je dit kan doen?
 
Dat kan met de query SHOW FIELDS FROM
 
maar hoe moet de query er dan uit komen te zien om de waardes in te voegen?
 
Als je via phpMyAdmin gegevens invoegt, krijg je daarna ook de query te zien die je moet gebruiken om gegevens in een tabel te voegen.
INSERT INTO tblname (veld1, veld2) VALUES ('waarde1', 'waarde2')
 
maar ik weet dus niet welke velden er in de tabel staan!
 
dan moet je met SHOW FIELDS FROM
deze in een array zetten.

Waarna je deze array uitleest
bijvoorbeeld door:
PHP:
$query = "SHOW FIELDS FROM [table]";
$result = mysql_query($query);

$t = 0;

$query = "INSERT INTO [table] VALUES(";

while (list($row) = mysql_fetch_array($result)) {
 $query .= $row[$t].", ";
 $t++;
}

$query .= ") VALUES ('waarde1', 'waarde2'); etc...
 
Uit de mysql 5.1 documentatie:
* If you do not specify a list of column names for INSERT ... VALUES or INSERT ... SELECT, values for every column in the table must be provided by the VALUES list or the SELECT statement. If you do not know the order of the columns in the table, use DESCRIBE tbl_name to find out.

Je hoeft dus de kolommen niet te kennen, als je maar zeker weet dat je volgorde van je data exact gelijk is aan de volgorde van de kolommen in de tabel. Dit zou geen nette code opleveren (verre van nette code zelfs) maar kan effectief zijn. Maar als ik goed begrijp maak je een tabel die door de gebruiker gedefinieerd wordt in de pagina. Als dit zo is, kun je zelf de kolom namen ook in een tabel drukken TableDefs (TableName, orderid, ColumnName, ColumnType) en dan die dan bijhouden en raadplegen in de volgorde van orderid (of bijvoorbeeld de alfabetische volgorde van ColumnName aanhouden). Hoe dan ook moet de volgorde dan wel ook gelijk zijn met de create statement van de tabel.

Hope this helps.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan