of ik zeker weet of dit werkt? dit werkt nu al meer dan een jaar :P maar wil dat ik dat voortaan niet meer hoef te doen ;)Origineel gepost door Aar
- insert into werkt niet
-
18-06-2009, 22:05 #16
- Berichten
- 214
- Lid sinds
- 17 Jaar
-
19-06-2009, 07:28 #17
- Berichten
- 89
- Lid sinds
- 17 Jaar
Foutje ;)
-
19-06-2009, 22:23 #18
- Berichten
- 214
- Lid sinds
- 17 Jaar
Niemand die het antwoord hierop weet?
-
20-06-2009, 16:17 #19
- Berichten
- 376
- Lid sinds
- 18 Jaar
Beveilig de waarde van de $_POST eens met een functie als mysql_real_escape_string(). Probeer verder eens 1 veld te vullen met 1 variabele (om te testen of daar de fout ergens zit).
-
20-06-2009, 16:25 #20
- Berichten
- 43
- Lid sinds
- 16 Jaar
probeer je quotes
`uitbetaald` eens te vervangen met 'uitbetaald'. Heb dit ook weleens gehad als ik iets heb gekopieerd vanuit phpmyadmin en dan terugzet in php dat je van die rare quotes krijgt.
-
20-06-2009, 16:30 #21
- Berichten
- 650
- Lid sinds
- 16 Jaar
$insert1 = "INSERT INTO `uitbetaald` (`id`,`user`,`kliks`,`uitbetaald`) VALUES (".$id.",".$user.",".$kliks.",".$in.")";
Ik denk dat die zo goed moet zijn.
-
20-06-2009, 23:30 #22
- Berichten
- 214
- Lid sinds
- 17 Jaar
Origineel gepost door Boris Meer
$insert1 = "INSERT INTO `uitbetaald` (`id`,`user`,`kliks`,`uitbetaald`) VALUES (".$id.",".$user.",".$kliks.",".$in.")";
Ik denk dat die zo goed moet zijn.
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 'dl credits)' at line 1
Als paypal is:
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 '€'.2.')' at line 1
-
21-06-2009, 00:02 #23
- Berichten
- 21
- Lid sinds
- 18 Jaar
Variabelen mogen binnen dubbele quotes. Dat is een PHP feature. In statements als deze geeft het meer leesbaarheid dan al die puntjes, maar je moet wel weten hoe een variabele binnen quotes geinterpreteerd wordt en waar nodig ook accolades gebruiken.
Backticks kunnen in MySQL gebruikt worden om letterlijke tabel- of veldnamen aan te duiden.
@Ilja: Debuggen is vooral een kwestie van weten wat er gebeurt. Kijk regel voor regel welke waarden de betrokken variabelen hebben.
Zoals eerder gemeld: doe een echo van de insert voordat je 'm uitvoert en laat deze hier ook zien, samen met de resulterende foutmelding.
Wat momenteel waarschijnlijk fout gaat is dat er in de SQL statement nog geen single-quotes om de stringwaarden staan. MySQL denkt vervolgens dat het een variabele is.
-
21-06-2009, 09:14 #24
- Berichten
- 1.483
- Lid sinds
- 16 Jaar
Ik begrijp niet dat hier zo enorm veel mensen een SQL posten op een regel? Voor de overzicht / orde / netheid moet je dat eens om te beginnen overzichtelijk gaan maken:
SELECT
veld1,
veld2,
veld3
FROM tabel
WHERE id = > 10
ORDER BY id DESC
LIMIT 1,10
INSERT INTO tabel
(
veld1,
veld2,
veld3,
veld4
) VALUES (
'inhoud veld 1',
'inhoud veld 2',
'inhoud veld 3',
'inhoud veld 4'
)
Maar waarom?
- Het is overzichtelijker, een eventuele spel of schrijffout is eerder te zien.
- Als je de SQL juist afhandelt met fouten krijg je een regel nummer terug en verteld de database waar de fout ~ zit dat scheelt je dus ook al veel werk.
Tip
Als een SQL niet blijkt te werken dan kun je het beste in bijvoorbeeld PhpMyAdmin zelf de query afhandelen om te zien wat er gebeurd.
Fout, onjuist, onoverzichtelijk dus alles behalve goed:
mysql_query("INSERT INTO `uitbetaald` (id,user,kliks,uitbetaald) VALUES ('".$_POST['id']."','".$_POST['user']."','".$_POST['kliks']."','".$_POST['uitbetaald']."')") OR DIE(mysql_error());
echo "U heeft een uitbetaling toegevoegt!";
PHP Code:<?php
$sql = "
INSERT INTO tabel
(
veld1,
veld2,
veld3,
veld4
) VALUES (
'inhoud veld 1',
'inhoud veld 2',
'inhoud veld 3',
'inhoud veld 4'
)
";
$query = mysql_query($sql) or die(mysql_error());
?>
Kortom:
Genoeg tips om je SQL dus zelf te clearen, genoeg reden hierbij om je SQL c.q. schrijfwijze (overigens van meerdere hier) eens flink te gaan updaten/aanpassen.Laatst aangepast door Arek van Schaijk : 21-06-2009 om 09:21
-
21-06-2009, 15:42 #25
- Berichten
- 214
- Lid sinds
- 17 Jaar
PHP Code:<?php
if(isset($_POST['submit'])){
if($_POST['in'] == paypal){
$aantal = $_POST['aantal']/40;
$euro = $_POST['aantal']/40/100;
$in = "€'.$euro.'";
$update1 = "UPDATE `users` SET `uitbetaald2`=`uitbetaald2`+$aantal WHERE `user`='".$_POST['user']."'";
} elseif($_POST['in'] == dutchleader) {
$aantal = $_POST['aantal'];
$in = "'.$aantal.' dl credits";
$update1 = "UPDATE `users` SET `uitbetaald`=`uitbetaald`+$aantal WHERE `user`='".$_POST['user']."'";
}
$id2 = mysql_query("SELECT * FROM `uitbetaald`");
$id1 = mysql_num_rows($id2);
$id = $id1+1;
$user = $_POST['user'];
$kliks = $_POST['aantal'];
$update2 = "UPDATE `users` SET `kliks`=`kliks`-$kliks WHERE `user`='".$_POST['user']."'";
$insert1 = "
INSERT INTO
`uitbetaald`
(`id`,`user`,`kliks`,`uitbetaald`)
VALUES (
'".$id."',
'".$user."',
'".$kliks."',
'".$in."'
)";
mysql_query($insert1)or die(mysql_error());
mysql_query($update1);
mysql_query($update2);
echo "De uitbetaling is gedaan!";
}
?>
€
<table width="100%">
<tr><td><strong>user</strong></td><td><strong>email</strong></td><td><strong>in</strong></td><td><strong>naam</strong></td><td><strong>aantal</strong></td><td><strong>paid</strong></td></tr>
<?
$rank2 = 1;
$top2 = "SELECT * FROM `uitbetalen` ORDER BY id";
$top1 = mysql_query($top2);
while($top = mysql_fetch_assoc($top1)){
?>
<form action="" method="POST">
<input type="hidden" name="user" value="<? echo $top['user']; ?>">
<input type="hidden" name="in" value="<? echo $top['in']; ?>">
<input type="hidden" name="aantal" value="<? echo $top['aantal']; ?>">
<?
echo '<tr><td>'.$top['user'].'</td><td>'.$top['email'].'</td><td>'.$top['in'].'</td><td>'.$top['naam'].'</td><td>'.$top['aantal'].'</td><td><input type="submit" name="submit" value="paid"></td></tr>';
?>
</form>
<?
}
?>
</table>
Aanvullend bericht:
Het werkt nu!Laatst aangepast door ilja m : 21-06-2009 om 17:23 Reden: Automatisch samengevoegd.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic