verwijder geselecteerde uit database
om het volgende te kunnen:
een geselecteerde naam verwijderen uit database
hier een screenshot wat ik bedoel:
http://www.michaelk.speedxs.nl/help/1.JPG
Ik heb het wel voor mekaar gekregen door op de delete knop te duwen dat die wat verwijderd maar hij verwijderd de laatste letter van het alfabet
ik kan selecteren maar hij verwijderd niks als ik op delete duuw
alvast bedankt wie mij een beetje kan bij sturen
grtz
Dit is mijn script:
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
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
<?php
# Programma: kachelmerkverwijder.php
# verwijderd van database
?>
<html>
<title>Verwijder kachel merk van lijst</title></head>
<body>
<?php
// verbinding maken
include("logmisc.inc");
$connection = mysql_connect($host,$user,$password)
or die ("kan geen verbinding maken met server");
$db = mysql_select_db($database,$connection)
or die ("kan geen database selecteren");
/* laat merken zien in alfabetishe volgorde*/
$query="SELECT kachelmerkid FROM kachelmerk ORDER BY kachelmerkid";
$result = mysql_query($query)
or die ("kan geen query verkrijgen");
# Uitleg wat het doet
echo "Kachel merken die al in database bestand staan:";
#################################################
$id = $kachelmerkid;
echo "<form action='kachelmerkverwijder.php' method='DELETE'>
<select name='$kachelmerkid'>";
while ($row = mysql_fetch_array($result))
{
extract($row);
echo "<option value='kachelmerkid'>$kachelmerkid";
}
{
$this->id = $kachelmerkid;
$verwijderQuery = "DELETE FROM kachelmerkid WHERE kachelmerk='".$this->id."'";
mysql_query($verwijderQuery);
echo "<input type='submit' value='Verwijder Kachel merk'>
</form>\n";
return true;
}
?>
</body>
</html>
# Programma: kachelmerkverwijder.php
# verwijderd van database
?>
<html>
<title>Verwijder kachel merk van lijst</title></head>
<body>
<?php
// verbinding maken
include("logmisc.inc");
$connection = mysql_connect($host,$user,$password)
or die ("kan geen verbinding maken met server");
$db = mysql_select_db($database,$connection)
or die ("kan geen database selecteren");
/* laat merken zien in alfabetishe volgorde*/
$query="SELECT kachelmerkid FROM kachelmerk ORDER BY kachelmerkid";
$result = mysql_query($query)
or die ("kan geen query verkrijgen");
# Uitleg wat het doet
echo "Kachel merken die al in database bestand staan:";
#################################################
$id = $kachelmerkid;
echo "<form action='kachelmerkverwijder.php' method='DELETE'>
<select name='$kachelmerkid'>";
while ($row = mysql_fetch_array($result))
{
extract($row);
echo "<option value='kachelmerkid'>$kachelmerkid";
}
{
$this->id = $kachelmerkid;
$verwijderQuery = "DELETE FROM kachelmerkid WHERE kachelmerk='".$this->id."'";
mysql_query($verwijderQuery);
echo "<input type='submit' value='Verwijder Kachel merk'>
</form>\n";
return true;
}
?>
</body>
</html>
Edit:
Code tags toegevoegd
Gewijzigd op 01/01/1970 01:00:00 door Michaelk
Om te beginnen moet je error_reporting(E_ALL); boven je script zetten en neem deze tutorial eens door:
http://www.phphulp.nl/php/tutorials/3/306/
Jy krijgt momenteel namelijk geen enkele MySQL foutmelding te zien.
Gewijzigd op 01/01/1970 01:00:00 door Bo az
weer de laatste in de alfabet
maar op dit stukje doet di ehet niet goed
$verwijderQuery = "DELETE FROM kachelmerk WHERE kachelmerkid='".$this->id."'";
als ik $this->id."'"; ' verander in $this->id."A";
dan krijg ik in de error te zien
have an error in SQL syntax ..... near "(laatstewoord in aflabed)A' at line 1
dus als de laatste letter bv Q is geeft die deze melding
...... "QA" at line 1
Gewijzigd op 01/01/1970 01:00:00 door michaelk
Letters moetten wel tussen quotes.
WHERE kachelmerk='".$this->id."'";
grtz
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
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
<html>
<title>Verwijder kachel merk van lijst</title></head>
<body>
<?php
include("logmisc.inc");
$connection = mysql_connect($host,$user,$password)
or die ("kan geen verbinding maken met server");
$db = mysql_select_db($database,$connection)
or die ("kan geen database selecteren");
if(!empty($_POST['deleteid'])){
$verwijderQuery = "DELETE FROM kachelmerkid WHERE kachelmerk='".$_POST['deleteid']."'";
mysql_query($verwijderQuery);
}
$query="SELECT kachelmerkid FROM kachelmerk ORDER BY kachelmerkid";
$result = mysql_query($query)
or die ("kan geen query verkrijgen");
echo "Kachel merken die al in database bestand staan:";
echo "<form action='kachelmerkverwijder.php' method='POST'><select name='deleteid'>";
while ($row = mysql_fetch_array($result))
{
echo "<option value='".$row['kachelmerkid']."'>".$row['kachelmerkid']."</option>";
}
echo "</select><input type='submit' value='Verwijder Kachel merk'>
</form>\n";
?>
</body>
</html>
<title>Verwijder kachel merk van lijst</title></head>
<body>
<?php
include("logmisc.inc");
$connection = mysql_connect($host,$user,$password)
or die ("kan geen verbinding maken met server");
$db = mysql_select_db($database,$connection)
or die ("kan geen database selecteren");
if(!empty($_POST['deleteid'])){
$verwijderQuery = "DELETE FROM kachelmerkid WHERE kachelmerk='".$_POST['deleteid']."'";
mysql_query($verwijderQuery);
}
$query="SELECT kachelmerkid FROM kachelmerk ORDER BY kachelmerkid";
$result = mysql_query($query)
or die ("kan geen query verkrijgen");
echo "Kachel merken die al in database bestand staan:";
echo "<form action='kachelmerkverwijder.php' method='POST'><select name='deleteid'>";
while ($row = mysql_fetch_array($result))
{
echo "<option value='".$row['kachelmerkid']."'>".$row['kachelmerkid']."</option>";
}
echo "</select><input type='submit' value='Verwijder Kachel merk'>
</form>\n";
?>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Andries Louw Wolthuizen
dit is heel logisch in je while lus zit er telkens een nieuwe $kachelmerkid en is die op het einde altijd de laatste in je alfabet
dus moet je $this->id niet setten met $kachelmerkid maar zou het handig zijn moest je kijken welke id je gekozen hebt in je form!!
dus: $this->id = $_POST['kachelmerkid'];
werkt het nu?
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
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
<?php
if($_SERVER['REQUEST_METHOD'] == "POST")
{
if(!empty($_POST['delete']))
{
$i = 0;
$ii = 0;
foreach($_POST['delete'] as $id)
{
$query = "DELETE FROM kachelmerkid WHERE kachelmerk =".mysql_real_escape_string($id)."";
$resultaat = mysql_query($query);
if($resultaat && (mysql_affected_rows() == 1))
{
$i++;
}else{
$ii++;
}
}
echo '<p id="error">De database is geupdate, er zijn '.$i.' records goed verwijderd en '.$ii.' mislukt!</p>';
}
}
$query = "SELECT kachelmerkid FROM kachelmerk ORDER BY kachelmerkid";
$resultaat = mysql_query($query);
if ($resultaat && (mysql_num_rows($resultaat) >= 1))
{
?>
<form method="post" name="formulier" action="">
<table>
<tr>
<td width="10"></td>
<td><b>Klachelmerkid:</b></td>
</tr>
<?php
while($rij = mysql_fetch_array($resultaat))
{
echo '<tr>';
echo '<td><input type="checkbox" name="delete[]" value="'.$rij['kachelmerkid'].'"></td>';
echo '<td>'.$rij['kachelmerkid'].'</td>';
echo '</tr>';
}
?>
<tr>
<td> </td>
<td colspan="4"><input type="submit" value="Verwijderen" name="verstuur"> <input type="reset" value="Wis Formulier"></td>
</tr>
</table>
</form>
<?php
}else{
echo '<p>Sorry, er staan nog geen kachels in de database!</p>';
}
?>
if($_SERVER['REQUEST_METHOD'] == "POST")
{
if(!empty($_POST['delete']))
{
$i = 0;
$ii = 0;
foreach($_POST['delete'] as $id)
{
$query = "DELETE FROM kachelmerkid WHERE kachelmerk =".mysql_real_escape_string($id)."";
$resultaat = mysql_query($query);
if($resultaat && (mysql_affected_rows() == 1))
{
$i++;
}else{
$ii++;
}
}
echo '<p id="error">De database is geupdate, er zijn '.$i.' records goed verwijderd en '.$ii.' mislukt!</p>';
}
}
$query = "SELECT kachelmerkid FROM kachelmerk ORDER BY kachelmerkid";
$resultaat = mysql_query($query);
if ($resultaat && (mysql_num_rows($resultaat) >= 1))
{
?>
<form method="post" name="formulier" action="">
<table>
<tr>
<td width="10"></td>
<td><b>Klachelmerkid:</b></td>
</tr>
<?php
while($rij = mysql_fetch_array($resultaat))
{
echo '<tr>';
echo '<td><input type="checkbox" name="delete[]" value="'.$rij['kachelmerkid'].'"></td>';
echo '<td>'.$rij['kachelmerkid'].'</td>';
echo '</tr>';
}
?>
<tr>
<td> </td>
<td colspan="4"><input type="submit" value="Verwijderen" name="verstuur"> <input type="reset" value="Wis Formulier"></td>
</tr>
</table>
</form>
<?php
}else{
echo '<p>Sorry, er staan nog geen kachels in de database!</p>';
}
?>
maar nu doet die het
$query = "DELETE FROM kachelmerk WHERE kachelmerkid ='$id'";
zo moest die regel zijn voor mij
thnx
Eehm.. het lijkt mij onverstandig om die mysql_real_escape_string() weg te halen... Gebruik dan op ze minst een if_numeric() ofzo...