Delete werkt niet
Mijn delete query werkt niet.
$removequery = "DELETE FROM phonebook name, nr WHERE name like'%".$_REQUEST['removename']."%' OR nr like'%".$_REQUEST['removenr']."%' ";
Foutmelding:
DELETE FROM phonebook name, nr WHERE name like'%test5%' OR nr like'%98734223%' You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE name like'%test5%' OR nr like'%98734223%'' at line 1
remove naam en nummer zijn tekstboxen..
Phillip
from selecteer je een tabel geen velden dus nr en name gewoon weg halen
Het gaat volgens mij fout bij:
WHERE name like'%".$_REQUEST['removename']."%' OR nr like'%".$_REQUEST['removenr']."%' ";
Mag je: like'%".$_REQUEST['inhoud tekstbox']."%' gebruiken voor delete...?
Phillip
waarom staan die % daar?
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
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
<?php
// errors
ini_set('display_errors',1);
error_reporting(E_ALL | E_STRICT);
// sql debug
define('DEBUG_MODE',true);
function showSQLError($sql,$error) {
echo '<pre>Error: '.$error.'<br />'.$sql.'</pre>';
}
// start script
$sql = "DELETE FROM phonebook
WHERE '%".$_REQUEST['removename']."%' OR nr like'%".$_REQUEST['removenr']."%'";
if (($result = mysql_query($sql)) === false) {
// foutafhandeling
echo 'Fout met database.';
if (DEBUG_MODE) {
showSQLError($sql,mysql_error());
}
}
else {
echo 'Succesvol verwijdert!';
}
?>
// errors
ini_set('display_errors',1);
error_reporting(E_ALL | E_STRICT);
// sql debug
define('DEBUG_MODE',true);
function showSQLError($sql,$error) {
echo '<pre>Error: '.$error.'<br />'.$sql.'</pre>';
}
// start script
$sql = "DELETE FROM phonebook
WHERE '%".$_REQUEST['removename']."%' OR nr like'%".$_REQUEST['removenr']."%'";
if (($result = mysql_query($sql)) === false) {
// foutafhandeling
echo 'Fout met database.';
if (DEBUG_MODE) {
showSQLError($sql,mysql_error());
}
}
else {
echo 'Succesvol verwijdert!';
}
?>
Gewijzigd op 01/11/2010 13:57:12 door Jasper DS
Doe eens wat Teun zegt.
Toevoeging op 01/11/2010 13:43:42:
@PHP Jasper: Wat doet die tweede WHERE daar?
DELETE FROM phonebook WHERE name like WHERE '%test5%' OR nr like'%98734223%'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE '%test5%' OR nr like'%98734223%'' at line 1
- SanThe - op 01/11/2010 13:42:04:
@PHP Jasper: Wat doet die tweede WHERE daar?
Phillip
hehe je hebt het gewoon gekopieert zo te zien jasper had er een 2de where in staan , die moet weg of er moet een AND van gemaakt worden
$removequery="DELETE FROM phonebook WHERE name like '%".$_REQUEST['removename']."%' OR nr like'%".$_REQUEST['removenr']."%'";
- SanThe - op 01/11/2010 13:51:19:
- SanThe - op 01/11/2010 13:42:04:
@PHP Jasper: Wat doet die tweede WHERE daar?
wa een copy foutje xs
Toevoeging op 01/11/2010 14:04:47:
Bedankt tot zo ver voor jullie hulp.
Dit is niet goed zie ik..
WHERE name like '=".$_REQUEST['removename']."=
Ik wil wel dat PHP alleen het nummer verwijderd dat je ievoerd en niet gaat zoeken naar een patroon.
Moet ik er dan: WHERE name '=".$_REQUEST['removename']."= van maken?
Thanks,
Phillip
Phillip Mango op 01/11/2010 13:58:23:
Is het beter om WHERE name like '=".$_REQUEST['removename']."=' te gebruiken?
Snap niet geheel wat je bedoelt, maar je zegt LIKE en dan probeer je te zeggen dat het een exacte waarden moet zijn met die dubbel ='s?
Mocht dat zo zijn dan moet het als volgt:
WHERE name = " . $_REQUEST['removename'] ."
aha, oek bedankt ik ga weer effe verder knutselen...
WHERE name = '...'
Toevoeging op 01/11/2010 14:12:23:
$_REQUEST komt waarschijnlijk uit een formulier. Gebruik dan $_POST. Verder is je script lek => SQL-Injection. Gebruik mysql_real_escape_string().
$removequery = "DELETE FROM phonebook WHERE name WHERE name = " . $_REQUEST['removename'] ." AND nr = " . $_REQUEST['removename'] ."";
De fout zit in de laatste "" maar hoe los ik dat op?
Foutmelding:
DELETE FROM phonebook WHERE name WHERE name = test AND nr = testYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE name = test AND nr = test' at line 1
Phillip
Code (php)
1
2
3
2
3
<?php $removename = $_REQUEST['removename'];
$sql = "delete from phobebook where name = '".$removename."' and nr = '".$removename."'";
?>
$sql = "delete from phobebook where name = '".$removename."' and nr = '".$removename."'";
?>
EDIT: blijkbaar had je ook niet opgelet met wat er net fout ging , nu heb je alweer een 2de where erin staan
Gewijzigd op 01/11/2010 14:38:59 door Teun Hesseling
Idd gelijk, ik was met ctrl-z terug gegaan en dus stond de 2e WHERE ook weer in me script...
Phillip
- SanThe - op 01/11/2010 14:07:25:
$_REQUEST komt waarschijnlijk uit een formulier. Gebruik dan $_POST. Verder is je script lek => SQL-Injection. Gebruik mysql_real_escape_string().
Ik heb daar wel eens over gehoord maar hoe werkt het precies en hoe bescherm je jezelf daartegen?
Phillip