Colum namen ophalen
Ik wil graag kollomnamen ophalen uit een database en dat in een een optionbox plaatsen.
Ik heb al gevonden dat het met mysql_field_name kan maar het lukt me alleen het uit te echo'en maar niet in een optionbox te plaatsen. Kheb een NAW tabel met 9 kollom.
Als iemand me kan helpen alvast bedankt
misschien kan je die 9 rijen met een loop doen:
(wel natuurlijk eerst verbinding maken en kolomnamen opvragen
$db= mysql_connect("localhost","user","pass");
mysql_select_db("db naam",$db);
$sql="SELECT * FROM tabel ORDER BY id";
$res=mysql_query($sql, $db);
while ($regel = mysql_fetch_object ($res)) {
?>
<form method="get" action="verwerkedit.php">
<label>
<input type="radio" name="RadioGroup2" value=""></label>
<br>
}
<input type="submit" value="stuur nieuws in">
</form>
Dus niet de inhoud! en niet een radiobutton!
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
# haal de namen en het aantal velden op
$fields = mysql_list_fields ($db_name, $tb_name);
$columns = mysql_num_fields ($fields);
for ($i = 0; $i < $columns; $i++) {
$fieldname[] = mysql_field_name ($fields, $i);
}
?>
# haal de namen en het aantal velden op
$fields = mysql_list_fields ($db_name, $tb_name);
$columns = mysql_num_fields ($fields);
for ($i = 0; $i < $columns; $i++) {
$fieldname[] = mysql_field_name ($fields, $i);
}
?>
Gewijzigd op 14/12/2005 22:13:00 door Jan Koehoorn
Bedankt
Mooi zo Jimbo!
Stel je hebt een tabel:
id (INT)
naam (varchar(50))
verhaal (text)
dat ik dan een array krijg met:
id-->int
naam --> varchar
verhaal --> text
Eventueel de lengte erbij mag ook wel..
Gewijzigd op 15/12/2005 16:39:00 door Robert Deiman
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
# haal de eigenschappen en het aantal velden op
$fields = mysql_list_fields ($db_name, $tb_name);
$columns = mysql_num_fields ($fields);
for ($i = 0; $i < $columns; $i++) {
$fieldname[] = mysql_field_name ($fields, $i);
$fieldtype[] = mysql_field_type ($fields, $i);
$fieldlen[] = mysql_field_len ($fields, $i);
$fieldflags[] = mysql_field_flags ($fields, $i);
}
?>
# haal de eigenschappen en het aantal velden op
$fields = mysql_list_fields ($db_name, $tb_name);
$columns = mysql_num_fields ($fields);
for ($i = 0; $i < $columns; $i++) {
$fieldname[] = mysql_field_name ($fields, $i);
$fieldtype[] = mysql_field_type ($fields, $i);
$fieldlen[] = mysql_field_len ($fields, $i);
$fieldflags[] = mysql_field_flags ($fields, $i);
}
?>
Kan beter in een multidimensionale array, maar even als voorbeeld ...
Ik gebruik nooit veldfuncties :)
Denk dat ik ondertussen wel redelijke ervaring met PHP heb, en wil eens wat leuks gaan proberen.
Han:
je kan toch ook dit met gewoon mysql doen.
Ik weet niet of ik het goed doe zo, maar het werkt niet bij mij:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?
// er wordt WEL verbinding gemaakt ;)
$res = mysql_query("SHOW COLLUMS FROM ".$tb_name." FROM ".$db_name);
while($result = mysql_fetch_array($res)){
echo $result[1]."<br>";
}
?>
// er wordt WEL verbinding gemaakt ;)
$res = mysql_query("SHOW COLLUMS FROM ".$tb_name." FROM ".$db_name);
while($result = mysql_fetch_array($res)){
echo $result[1]."<br>";
}
?>
Gewijzigd op 15/12/2005 17:01:00 door Jan Koehoorn
edit: @jan: jdat dat was het ;) ik wou net posten... je bent erg snel
Gewijzigd op 15/12/2005 17:02:00 door Han eev
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
include ("verbinden.php");
# haal de eigenschappen en het aantal velden op
$fields = mysql_list_fields ($db_name, $tb_name);
$columns = mysql_num_fields ($fields);
for ($i = 0; $i < $columns; $i++) {
$fieldname[] = mysql_field_name ($fields, $i);
$fieldtype[] = mysql_field_type ($fields, $i);
$fieldlen[] = mysql_field_len ($fields, $i);
$fieldflags[] = mysql_field_flags ($fields, $i);
echo $fieldname[$i].' '.$fieldtype[$i].' '.$fieldlen[$i].' '.$fieldflags[$i].'<br>';
}
$sql="SHOW COLUMS FROM ".$tb_name." FROM ".$db_name;
echo $sql."<br>";
$res = mysql_query($sql);
while($result = mysql_fetch_array($res)){
echo $result[1]."<br>";
}
?>
include ("verbinden.php");
# haal de eigenschappen en het aantal velden op
$fields = mysql_list_fields ($db_name, $tb_name);
$columns = mysql_num_fields ($fields);
for ($i = 0; $i < $columns; $i++) {
$fieldname[] = mysql_field_name ($fields, $i);
$fieldtype[] = mysql_field_type ($fields, $i);
$fieldlen[] = mysql_field_len ($fields, $i);
$fieldflags[] = mysql_field_flags ($fields, $i);
echo $fieldname[$i].' '.$fieldtype[$i].' '.$fieldlen[$i].' '.$fieldflags[$i].'<br>';
}
$sql="SHOW COLUMS FROM ".$tb_name." FROM ".$db_name;
echo $sql."<br>";
$res = mysql_query($sql);
while($result = mysql_fetch_array($res)){
echo $result[1]."<br>";
}
?>
Wat is hier fout aan? hij geeft nos steeds:
mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\website\kaarten\database.php on line 19
(script van Jan werkte wel, staat er boven.)
Gewijzigd op 15/12/2005 17:12:00 door Robert Deiman
:-))))
eerst een M, dan een N
Dan komje wel achter de fout!
Werkt inderdaad ook goed.. maar wel iets dat jammer is is dat je dan bijv varchar(150) krijgt, voor het CMS wil ik dan bijvoorbeeld een
<input name=$fieldname[] type=$fieldtype[] maxlength=$fieldlen[]>
dan geeft die dat de query niet goed is, maar zover was ik al :P
De HTML van formulierelement verschilt ook per element dus dat is nog een secuur werkje.
Ik heb nu al ff wat gemaakt waarbij die OF een textarea maakt wanneer nodig, de rest van de formelementen moet ik nog gaan regelen :) Alleen werk je voor de content van een pagina over het algemeen wel met text, int, date of varchar. Dus radiobuttons weergeven is (eerst) nog helemaal niet nodig.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
include ("verbinden.php");
// haal de eigenschappen en het aantal velden op
$fields = mysql_list_fields ($db_name, $tb_name);
$columns = mysql_num_fields ($fields);
for ($i = 0; $i < $columns; $i++) {
$fieldname[] = mysql_field_name ($fields, $i);
$fieldtype[] = mysql_field_type ($fields, $i);
$fieldlen[] = mysql_field_len ($fields, $i);
$fieldflags[] = mysql_field_flags ($fields, $i);
if ($i != 0){
if ($fieldtype[$i] == "text" ||$fieldtype[$i] == "tinytext" ||$fieldtype[$i] == "longtext" ||$fieldtype[$i] == "mediumtext"){
echo $fieldname[$i];
?>
include ("verbinden.php");
// haal de eigenschappen en het aantal velden op
$fields = mysql_list_fields ($db_name, $tb_name);
$columns = mysql_num_fields ($fields);
for ($i = 0; $i < $columns; $i++) {
$fieldname[] = mysql_field_name ($fields, $i);
$fieldtype[] = mysql_field_type ($fields, $i);
$fieldlen[] = mysql_field_len ($fields, $i);
$fieldflags[] = mysql_field_flags ($fields, $i);
if ($i != 0){
if ($fieldtype[$i] == "text" ||$fieldtype[$i] == "tinytext" ||$fieldtype[$i] == "longtext" ||$fieldtype[$i] == "mediumtext"){
echo $fieldname[$i];
?>
<textarea name="">Oké, tekstarea</textarea>
<input type="" name="" maxlength="">