Probleempje bij record verwijderen
Uit een vorig scriptje heb ik de verwijder-pagina genomen en een paar kleine dingen aangepast, maar ik krijg twee foutmeldingen.
Hij verwijderd echter de record wel, maar die foutmeldingen zijn toch vreemd.
Wie laat er zijn licht even op schijnen.
Foutmelding: Warning:
mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /www/htdocs/rczy/admin/verwijderen.php on line 37
Dit lid verwijderen?
Warning: Invalid argument supplied for foreach() in /www/htdocs/rczy/admin/verwijderen.php on line 43
Ja, verwijder dit lid
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
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
<?php
ob_start();
include("db_rcz.php");
$wegid=$_GET['wegid'];
$wegdoen=$_GET['wegdoen'];
if(isset($wegdoen)){
$iduser=explode(",",$wegdoen);
trim($iduser);
$idweg="$iduser[1]";
$mysql_id=mysql_connect("$dbhost","$dbuser","$dbpass");
$sql="delete from ledenlijst where id=$idweg";
$res=mysql_db_query("$db","$sql",$mysql_id);
$fout=mysql_errno($mysql_id);
if ($fout != 0) {
$fout=mysql_error($mysql_id);
echo '<font color="#FF2306">$fout</font>';
mysql_close($mysql_id);
echo '</body></html>';
exit;
}
else {
$relative_url = 'leden.php';
header("Location: http://".$_SERVER['HTTP_HOST']
.dirname($_SERVER['PHP_SELF'])
."/".$relative_url);
mysql_close($mysql_id);
exit;
}
}
if(isset($wegid)) {
$mysql_id=mysql_connect("$dbhost","$dbuser","$dbpass");
$sql="select * ledenlijst where id=$wegid";
$res=mysql_db_query("$db","$sql",$mysql_id);
$row=mysql_fetch_row($res);
echo '<br><br>';
echo "<b><center>Dit lid verwijderen?\n";
echo "<br><br>";
echo '<table align="\left"\ border=0 bordercolor=\"000000\" celpadding=2 width=\"100%\">';
echo '<tr>';
foreach($row as $col) {
echo "<td>$col</td>\n";
$col= $delete;
}
echo "</tr>";
echo "</table>";
echo "<br><br>";
mysql_close($mysql_id);
echo "<align=\"center\"><a href=verwijderen.php?wegdoen=ok,$wegid><b>Ja, verwijder dit lid</b></a>\n";
}
else {
$mysql_id=mysql_connect("$dbhost","$dbuser","$dbpass");
$sql= "select
ID,
achternaam,
tussenvoegsel,
voornaam,
DATE_FORMAT(geboortedatum, '%d-%m-%Y') AS geboortedatum_nl
from ledenlijst
ORDER BY achternaam, voornaam ASC";
$res=mysql_db_query("$db","$sql",$mysql_id);
$fout=mysql_errno($mysql_id);
if ($fout != 0) {
$fout=mysql_error($mysql_id);
echo '<font color="#FF2306">' . $fout . '</font>';
mysql_close($mysql_id);
echo '</body></html>';
exit;
}
$aantal_lijnen=mysql_num_rows($res);
$aantal_velden=mysql_num_fields($res);
echo '<table border=0 celpadding=2 width="100%">';
for($i=0;$i<$aantal_velden;$i++) {
printf("<th bgcolor=\"orange\"><p align=\"left\">%s</th>",mysql_field_name($res,$i));
}
echo "<th bgcolor=\"orange\"><p align=\"left\">Verwijderen</font></th>";
for($i=0;$i<$aantal_lijnen;$i++) {
$row=mysql_fetch_row($res);
echo '<tr>';
foreach($row as $col) {
$wegid=$row[0];
if(!$col) $col=" ";
echo "<td bgcolor=\"lightgrey\">$col</font></td>";
}
echo "<td bgcolor=\"#EFF3F7\" onMouseOver=\"this.bgColor='red'\"
onMouseOut=\"this.bgColor='white'\">
<layer width=100% onMouseOver=\"this.bgColor='red'\" onMouseout=\"this.bgColor='white'\">
<a href=\"verwijderen.php?wegid=$wegid\">Verwijderen</a>
</layer></ilayer></td></tr>";
}
echo "</table>";
echo '<br><br>';
mysql_close($mysql_id);
}
ob_end_flush();
?>
ob_start();
include("db_rcz.php");
$wegid=$_GET['wegid'];
$wegdoen=$_GET['wegdoen'];
if(isset($wegdoen)){
$iduser=explode(",",$wegdoen);
trim($iduser);
$idweg="$iduser[1]";
$mysql_id=mysql_connect("$dbhost","$dbuser","$dbpass");
$sql="delete from ledenlijst where id=$idweg";
$res=mysql_db_query("$db","$sql",$mysql_id);
$fout=mysql_errno($mysql_id);
if ($fout != 0) {
$fout=mysql_error($mysql_id);
echo '<font color="#FF2306">$fout</font>';
mysql_close($mysql_id);
echo '</body></html>';
exit;
}
else {
$relative_url = 'leden.php';
header("Location: http://".$_SERVER['HTTP_HOST']
.dirname($_SERVER['PHP_SELF'])
."/".$relative_url);
mysql_close($mysql_id);
exit;
}
}
if(isset($wegid)) {
$mysql_id=mysql_connect("$dbhost","$dbuser","$dbpass");
$sql="select * ledenlijst where id=$wegid";
$res=mysql_db_query("$db","$sql",$mysql_id);
$row=mysql_fetch_row($res);
echo '<br><br>';
echo "<b><center>Dit lid verwijderen?\n";
echo "<br><br>";
echo '<table align="\left"\ border=0 bordercolor=\"000000\" celpadding=2 width=\"100%\">';
echo '<tr>';
foreach($row as $col) {
echo "<td>$col</td>\n";
$col= $delete;
}
echo "</tr>";
echo "</table>";
echo "<br><br>";
mysql_close($mysql_id);
echo "<align=\"center\"><a href=verwijderen.php?wegdoen=ok,$wegid><b>Ja, verwijder dit lid</b></a>\n";
}
else {
$mysql_id=mysql_connect("$dbhost","$dbuser","$dbpass");
$sql= "select
ID,
achternaam,
tussenvoegsel,
voornaam,
DATE_FORMAT(geboortedatum, '%d-%m-%Y') AS geboortedatum_nl
from ledenlijst
ORDER BY achternaam, voornaam ASC";
$res=mysql_db_query("$db","$sql",$mysql_id);
$fout=mysql_errno($mysql_id);
if ($fout != 0) {
$fout=mysql_error($mysql_id);
echo '<font color="#FF2306">' . $fout . '</font>';
mysql_close($mysql_id);
echo '</body></html>';
exit;
}
$aantal_lijnen=mysql_num_rows($res);
$aantal_velden=mysql_num_fields($res);
echo '<table border=0 celpadding=2 width="100%">';
for($i=0;$i<$aantal_velden;$i++) {
printf("<th bgcolor=\"orange\"><p align=\"left\">%s</th>",mysql_field_name($res,$i));
}
echo "<th bgcolor=\"orange\"><p align=\"left\">Verwijderen</font></th>";
for($i=0;$i<$aantal_lijnen;$i++) {
$row=mysql_fetch_row($res);
echo '<tr>';
foreach($row as $col) {
$wegid=$row[0];
if(!$col) $col=" ";
echo "<td bgcolor=\"lightgrey\">$col</font></td>";
}
echo "<td bgcolor=\"#EFF3F7\" onMouseOver=\"this.bgColor='red'\"
onMouseOut=\"this.bgColor='white'\">
<layer width=100% onMouseOver=\"this.bgColor='red'\" onMouseout=\"this.bgColor='white'\">
<a href=\"verwijderen.php?wegid=$wegid\">Verwijderen</a>
</layer></ilayer></td></tr>";
}
echo "</table>";
echo '<br><br>';
mysql_close($mysql_id);
}
ob_end_flush();
?>
Maar daarnaast is dit script echt een grote bende. Foutafhandeling wordt regelmatig vergeten, ob_start() in een script waar het niet thuis hoort en een zeer slordige manier van programmeren.
Bugs zullen in dit script aan de orde van de dag zijn, maar helaas merk je daar nu weinig van. Zet deze regels eens aan het begin van je script:
Probeer bovendien je logica gescheiden te houden van je output, dan heb je die ob_start() ook niet meer nodig als lapmiddel voor mogelijke fouten.
Neem nu de foutmelding " undivened variable" ik me lens op internet wat ik dan fout doe en wat de standaard mannier is van opbouwen.
Maar je hebt wel goed geholpen want ik hed daar wel 20 keer over heen gelezen, de sql echo gaf immers gewoon de gevraagde varaiabelen.
PHP Beginnershandleiding
Wellicht dat je iets aan deze handleiding hebt? Kijk dan met name ook even naar de manieren van foutafhandeling die toegepast worden.
Wellicht dat je iets aan deze handleiding hebt? Kijk dan met name ook even naar de manieren van foutafhandeling die toegepast worden.
Hartelijk dank.
Groet,
Peter