Probleempje bij record verwijderen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Peter Arendse

Peter Arendse

11/01/2009 22:26:00
Quote Anchor link
Hallo allemaal.
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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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="&nbsp;";
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();
?>
 
PHP hulp

PHP hulp

24/12/2024 00:46:23
 
Joren de Wit

Joren de Wit

11/01/2009 22:44:00
Quote Anchor link
Het probleem zit hem in het feit dat je 'FROM' mist in je query op regel 35.

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
?>

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.
 
Peter Arendse

Peter Arendse

12/01/2009 13:23:00
Quote Anchor link
Ik weet t blanch, ik ben een knoiepot, of gewoon ooit verkeerd begonnen.Maar het blijft moeilijk met al die verschillende mannieren van coderen die mogelijk zijn in php.Als ik het zus doe, roept een ander weer "nee, dat moet je zo doen", elk boek is weer anders. Geen simpele oefeningen, nee, we gaan meteen een hele web-shop bouwen!?!?

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.
 
Joren de Wit

Joren de Wit

12/01/2009 13:36:00
Quote Anchor link
PHP Beginnershandleiding

Wellicht dat je iets aan deze handleiding hebt? Kijk dan met name ook even naar de manieren van foutafhandeling die toegepast worden.
 
Peter Arendse

Peter Arendse

12/01/2009 13:59:00
Quote Anchor link
Wow, je bent een topper Blanche (zonder anderen te kort te doen natuurlijk).
Hartelijk dank.

Groet,

Peter
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.