$_POST variabelen
Is er een manier om te achterhalen welke POST variabelen allemaal doorgestuurd worden? Ik dacht dit ooit eens gelezen te hebben hier, maar k ben er niet zeker van.
En dan een tweede vraag:
Ik heb een tabel met een sql dump van een bepaalde mysql-tabel. Nu wil ik eventueel aanpassingen in die tabel updaten via mysql.
Ik wil gebruik maken van images ipv knoppen. (vb delete en update)
Hoe doe ik dit? zal wel via js moeten gaan denk ik, maar weet niet hoe.
Iemand een suggestie?
Het POST array doorlopen en de keys tonen. Dat zijn de form namen.
Maar zit nog met een volgend probleem.
M'n tabel zit vol met textareas en input velden die ik een naam (name) en id gegeven heb.
Die worden blijkbaar niet meegegeven. Of dien ik deze in een aparte form te steken?
Zou willen dat alle namen doorgegeven worden.
var_dump. Als je var_dump($_POST) uitvoert, zie je vanzelf dat $_POST gewoon een array is zoals Gommers al zei.
Wat betreft het versturen van een formulier met plaatjes in plaats van knoppen: <input type="image" src="plaatje.png" /> Of je gaat knutselen met <button type="submit"><img src="plaatje.png" />update</button>
Zie ook Wat betreft het versturen van een formulier met plaatjes in plaats van knoppen: <input type="image" src="plaatje.png" /> Of je gaat knutselen met <button type="submit"><img src="plaatje.png" />update</button>
Waren die niet ingevuld?
ik zal het script hier ff posten:
ps: linkjes werken nog nie, is testversie dus kan geen kwaad in je database
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<?php
DEFINE('phpmyadmin','http://localhost/phpmyadmin/'); // pad voor phpmyadmin
DEFINE('dbhost','localhost');
DEFINE('dbnaam','***');
DEFINE('dbuser','***');
DEFINE('dbpass','***');
DEFINE('domein','localhost');
DEFINE('email','***');
//db connectie maken en database selecteren
if (!mysql_connect(dbhost, dbuser, dbpass)) {
die('Geen connectie');
}
if (!mysql_select_db(dbnaam)) {
die('Foute database');
}
//$mysql_user = "root"; // je mysql login naam
//$mysql_pass = ""; // je mysql wachtwoord
//$mysql_host = "localhost"; // de host van je mysql database (localhost is meestal wel oke)
//$mysql_dbn = "PH"; // de naam van je database
if($_SERVER['REQUEST_METHOD'] == "POST"){
// alle $_POST variabelen laten zien
print_r($_POST);
$array = $_POST;
foreach($array as $key=>$value)
{
echo $_POST[$key].' = '.$value.'<br>';
}
if(isset($_POST['q'])){
echo '<h1>Database dump voor tabel '.strtoupper($_POST['q']).'</h1>';
echo '<h3>Tabel hernoemen > RENAME TABLE `'.dbnaam.'`.`'.$_POST['q'].'` TO `'.dbnaam.'`.`NIEUW` ;</h3>';
// tabel maken
$table = $_POST['q'];
$sql="SELECT * FROM ".$_POST['q'];
echo'<form id="'.$table.'" name="'.$table.'" method="post" action="">';
echo '<h3>Tabel: '.strtoupper($table).'</h3>';
$res=mysql_query($sql) or die (mysql_error());
$fields = mysql_num_fields($res);
echo '<table border="0" cellpadding="2" cellspacing="1"><tr>';
//$width = 100/count($fields)+1;
echo'<th width="'.$width.'">fields:</th>';
$fieldnames = array();
$fieldtypes = array();
$fieldlengths = array();
$fieldflags = array();
for ($i = 0; $i < $fields; $i++) {
$fieldnames[] = mysql_field_name($res,$i);
$fieldtypes[] = mysql_field_type($res,$i);
$fieldlengths[] = mysql_field_len($res,$i);
$fieldflags[] = mysql_field_flags($res,$i);
echo '<th width="'.$width.'">' .strtoupper(mysql_field_name($res, $i)).'<br><small>'.mysql_field_type($res,$i).'('.$fieldlengths[$i].')<br>'.$fieldflags[$i].'</small></th>';
}
echo'</tr>';
$sql = "SELECT * FROM ".$table;
if (!$query = mysql_query($sql)) {
die('Fout met query');
}
$a=0;
while ($row = mysql_fetch_assoc($query)) {
echo '<tr class="'.($a % 2).'">';
$a++;
echo'<td align="center" valign="top">';
//deleteknop voor elk id
echo'<a href="#" title="DELETE FROM '.$table.' WHERE id='.$row['id'].';"><img src="img/table_row_delete.png" width="16" height="16" border="0" /></a> ';// deleten
echo'</td>';
$c=0;// teller voor het aantal rijen
foreach ($row as $item){
// als het veldnaam 'id' is enkel het id laten zien, zodat deze niet aangepast kan worden
if($fieldnames[$c] == 'id') echo '<td align="center" valign="top">'.$item.'</td>';
//else echo'<td><a href="#" title="UPDATE '.$table.' SET '.$table.' = \''.$item.'\' WHERE id='.$row['id'].';"><img src="img/table_edit.png" width="16" height="16" border="0" /></a> <input type="text" name="'.$table.'_'.$row['id'].'_'.$c.'" value="'.$item.'" title="'.$item.'"></td>';
else {
// als de lengte van het veld >= 100 laten we een textarea zien
if ($fieldlengths[$c]>= 100) echo'<td valign="top"><a href="#" title="UPDATE '.$table.' SET '.$table.' = \''.$item.'\' WHERE id='.$row['id'].';"><img src="img/table_edit.png" width="16" height="16" border="0" /></a><br><textarea name="'.$table.'_'.$row['id'].'_'.$c.'" id="'.$table.'_'.$row['id'].'_'.$c.'" cols="'.($fieldlengths[$c]/10).'" rows="5" >'.$item.'</textarea></td>';
// anders een gewoon tekstveld
else echo'<td valign="top"><a href="#" title="UPDATE '.$table.' SET '.$table.' = \''.$item.'\' WHERE id='.$row['id'].';"><img src="img/table_edit.png" width="16" height="16" border="0" /></a><br><input type="text" name="'.$table.'_'.$row['id'].'_'.$c.'" id="'.$table.'_'.$row['id'].'_'.$c.'" size="'.strlen($item).'" value="'.$item.'" title="'.$item.'"></td>';
}
$c++;// teller voor het aantal rijen ophogen
}
echo '</tr>';
}
$js = 'javascript:document.'.$table.'.reset()';
echo'<tr class="1"><td colspan="'.($c+1).'" align="left" valign="top">';
//een nieuw item invoegen
echo'<a href="#"><img src="img/table_row_insert.png" width="16" height="16" border="0" title="INSERT NEW ITEM"/></a> ';
//reset velden: reset alle input velden
echo'<a href="'.$js.'"><img src="img/table_refresh.png" width="16" height="16" border="0" title="RESET FIELDS" /></a> ';
//export de tabel .sql
echo'<a href="#"><img src="img/table_go.png" width="16" height="16" border="0" title="EXPORT TABLE MySQL"/></a> ';
//ga naar de phpMyAdmin pagina (nieuw venster)
echo'<a href="'.phpmyadmin.'" target="_blank"><img src="img/table_link.png" width="16" height="16" border="0" title="phpMyAdmin"/></a> ';
echo'</td></tr>';
echo '</table><br />';
echo'<input type="submit" name="btn_'.$table.'" value="Update '.strtoupper($table).'" />';
echo'</form>';
echo'<a href="database.php">Terug naar overzicht</a>';
}
else {
echo 'Geen query meegegeven: q=""';
}
}
else { // geen $_POST meegegeven, dus formulier tonen
echo'<h1>MySQL Dump viewer</h1>';
echo'<form id="form1" name="form1" method="post" action="">';
//kijken of tabel bestaat die meegegeven is met q
$tables = mysql_list_tables(dbnaam);
echo'Selecteer een tabel: <select name="q"> ';
for ($j = 0; $j < mysql_num_rows($tables); $j++){
echo'<option value="'.mysql_tablename($tables, $j).'">'.mysql_tablename($tables, $j).'</option>';
}
echo'</select>';
echo' <input type="submit" name="submit" value="Opzoeken" />';
echo'</form>';
}
?>
DEFINE('phpmyadmin','http://localhost/phpmyadmin/'); // pad voor phpmyadmin
DEFINE('dbhost','localhost');
DEFINE('dbnaam','***');
DEFINE('dbuser','***');
DEFINE('dbpass','***');
DEFINE('domein','localhost');
DEFINE('email','***');
//db connectie maken en database selecteren
if (!mysql_connect(dbhost, dbuser, dbpass)) {
die('Geen connectie');
}
if (!mysql_select_db(dbnaam)) {
die('Foute database');
}
//$mysql_user = "root"; // je mysql login naam
//$mysql_pass = ""; // je mysql wachtwoord
//$mysql_host = "localhost"; // de host van je mysql database (localhost is meestal wel oke)
//$mysql_dbn = "PH"; // de naam van je database
if($_SERVER['REQUEST_METHOD'] == "POST"){
// alle $_POST variabelen laten zien
print_r($_POST);
$array = $_POST;
foreach($array as $key=>$value)
{
echo $_POST[$key].' = '.$value.'<br>';
}
if(isset($_POST['q'])){
echo '<h1>Database dump voor tabel '.strtoupper($_POST['q']).'</h1>';
echo '<h3>Tabel hernoemen > RENAME TABLE `'.dbnaam.'`.`'.$_POST['q'].'` TO `'.dbnaam.'`.`NIEUW` ;</h3>';
// tabel maken
$table = $_POST['q'];
$sql="SELECT * FROM ".$_POST['q'];
echo'<form id="'.$table.'" name="'.$table.'" method="post" action="">';
echo '<h3>Tabel: '.strtoupper($table).'</h3>';
$res=mysql_query($sql) or die (mysql_error());
$fields = mysql_num_fields($res);
echo '<table border="0" cellpadding="2" cellspacing="1"><tr>';
//$width = 100/count($fields)+1;
echo'<th width="'.$width.'">fields:</th>';
$fieldnames = array();
$fieldtypes = array();
$fieldlengths = array();
$fieldflags = array();
for ($i = 0; $i < $fields; $i++) {
$fieldnames[] = mysql_field_name($res,$i);
$fieldtypes[] = mysql_field_type($res,$i);
$fieldlengths[] = mysql_field_len($res,$i);
$fieldflags[] = mysql_field_flags($res,$i);
echo '<th width="'.$width.'">' .strtoupper(mysql_field_name($res, $i)).'<br><small>'.mysql_field_type($res,$i).'('.$fieldlengths[$i].')<br>'.$fieldflags[$i].'</small></th>';
}
echo'</tr>';
$sql = "SELECT * FROM ".$table;
if (!$query = mysql_query($sql)) {
die('Fout met query');
}
$a=0;
while ($row = mysql_fetch_assoc($query)) {
echo '<tr class="'.($a % 2).'">';
$a++;
echo'<td align="center" valign="top">';
//deleteknop voor elk id
echo'<a href="#" title="DELETE FROM '.$table.' WHERE id='.$row['id'].';"><img src="img/table_row_delete.png" width="16" height="16" border="0" /></a> ';// deleten
echo'</td>';
$c=0;// teller voor het aantal rijen
foreach ($row as $item){
// als het veldnaam 'id' is enkel het id laten zien, zodat deze niet aangepast kan worden
if($fieldnames[$c] == 'id') echo '<td align="center" valign="top">'.$item.'</td>';
//else echo'<td><a href="#" title="UPDATE '.$table.' SET '.$table.' = \''.$item.'\' WHERE id='.$row['id'].';"><img src="img/table_edit.png" width="16" height="16" border="0" /></a> <input type="text" name="'.$table.'_'.$row['id'].'_'.$c.'" value="'.$item.'" title="'.$item.'"></td>';
else {
// als de lengte van het veld >= 100 laten we een textarea zien
if ($fieldlengths[$c]>= 100) echo'<td valign="top"><a href="#" title="UPDATE '.$table.' SET '.$table.' = \''.$item.'\' WHERE id='.$row['id'].';"><img src="img/table_edit.png" width="16" height="16" border="0" /></a><br><textarea name="'.$table.'_'.$row['id'].'_'.$c.'" id="'.$table.'_'.$row['id'].'_'.$c.'" cols="'.($fieldlengths[$c]/10).'" rows="5" >'.$item.'</textarea></td>';
// anders een gewoon tekstveld
else echo'<td valign="top"><a href="#" title="UPDATE '.$table.' SET '.$table.' = \''.$item.'\' WHERE id='.$row['id'].';"><img src="img/table_edit.png" width="16" height="16" border="0" /></a><br><input type="text" name="'.$table.'_'.$row['id'].'_'.$c.'" id="'.$table.'_'.$row['id'].'_'.$c.'" size="'.strlen($item).'" value="'.$item.'" title="'.$item.'"></td>';
}
$c++;// teller voor het aantal rijen ophogen
}
echo '</tr>';
}
$js = 'javascript:document.'.$table.'.reset()';
echo'<tr class="1"><td colspan="'.($c+1).'" align="left" valign="top">';
//een nieuw item invoegen
echo'<a href="#"><img src="img/table_row_insert.png" width="16" height="16" border="0" title="INSERT NEW ITEM"/></a> ';
//reset velden: reset alle input velden
echo'<a href="'.$js.'"><img src="img/table_refresh.png" width="16" height="16" border="0" title="RESET FIELDS" /></a> ';
//export de tabel .sql
echo'<a href="#"><img src="img/table_go.png" width="16" height="16" border="0" title="EXPORT TABLE MySQL"/></a> ';
//ga naar de phpMyAdmin pagina (nieuw venster)
echo'<a href="'.phpmyadmin.'" target="_blank"><img src="img/table_link.png" width="16" height="16" border="0" title="phpMyAdmin"/></a> ';
echo'</td></tr>';
echo '</table><br />';
echo'<input type="submit" name="btn_'.$table.'" value="Update '.strtoupper($table).'" />';
echo'</form>';
echo'<a href="database.php">Terug naar overzicht</a>';
}
else {
echo 'Geen query meegegeven: q=""';
}
}
else { // geen $_POST meegegeven, dus formulier tonen
echo'<h1>MySQL Dump viewer</h1>';
echo'<form id="form1" name="form1" method="post" action="">';
//kijken of tabel bestaat die meegegeven is met q
$tables = mysql_list_tables(dbnaam);
echo'Selecteer een tabel: <select name="q"> ';
for ($j = 0; $j < mysql_num_rows($tables); $j++){
echo'<option value="'.mysql_tablename($tables, $j).'">'.mysql_tablename($tables, $j).'</option>';
}
echo'</select>';
echo' <input type="submit" name="submit" value="Opzoeken" />';
echo'</form>';
}
?>
jurgen schreef op 18.11.2007 10:45:
@santhe: nope :)
Als ze niet ingevuld zijn dan zitten ze ook niet in $_POST.
Ofwel mag een form tag niet over een tabel? ik kom er niet aan uit.
Ik die dacht dat alle id's of names meegestuurd werden met het formulier.
Kheb nu in elke td tag een formulier aangemaakt. Dit lukt natuurlijk wel.
Kan mijn eerste methode niet? ik kan er niets op terugvinden op google of hier...
Een form hoort <input> elementen te bevatten. Als jij die in je tabel verwerkt is er niets aan de hand, alleen zie ik dat nu niet terug. Het is ook alleen de inhoud van de <input> elementen die verzonden wordt.
Blanche schreef op 19.11.2007 09:21:
En <select>, <textarea>, ... :)Het is ook alleen de inhoud van de <input> elementen die verzonden wordt.
Ja uiteraard ;)