Heey ik ben net begonnen met mysql maar ik kom er nu al niet uit neem nou hier een ratingscript van deze site staat bij poll en stem systeemen nou heb ik daarvan ook de tabel gemaakt
Waarschijnlijk is dat lycos fout maar wat moet er dan staan ??
Hij staat hier online : http://members.lycos.nl/prassje/rating.php
En hij geeft deze error : 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 '' at line 1
[code]$result = mysql_query(SELECT FROM rating WHERE id=$_GET[1]); rn$row = mysql_fetch_array($result);[code] rnWss zit de fout dan in uw query.rnIk weet dat ze niet zo mooi is opgelost,maar ik denk dat ze wel werkt
mysql_query(UPDATE rating SET aantal=aantal+1, cijfer=cijfer+ . $cijfer . WHERE id= . $_GET['1'] . ) or die(mysql_error());rnrnhier zit de fout ]rnrnals je nauwkeurige script dan is dat beterrnrn[code]phprn$aantal = $aantal + 1;rncijfer = $cijfer + 1;rn$get = $_GET['1'];rnmysql_query(UPDATE rating SET aantal = '.$aantal.', cijfer='.$cijfer.' WHERE id='.$get.' ) or die(mysql_error());rn[code]rnrnWat ik het aangepast... ik heb die aantal+1 en cijfer+ uit de query gehaald omdat daar ook wel is problemen mee ontstaan. En het tweede wat ik gedaan heb waardoor waarschijnlijk de error ontstond is die . aan het eind vervangen. Omdat er niets tussenstond gaat MySQL flippen. Ik vind dit heel raar van MySQL maar bij mij is dat zo.rn
$get = $_GET['1'];rnrnornrnJongens, neem het volgende van mij aanrnrnKopieer 'kale' $_POST-, $_GET-, $_SERVER-, $_SESSION-, $_COOKIE-, etc. variabelen [b]niet[b] naar een andere variabele.rnrnVoorbeeldrnrn[code]phprnrn echo 'Hallo, ik heet ' . $_GET['naam'];rnrn en nietrnrn $sNaam = $_GET['naam'];rnrn echo 'Hallo, ik heet ' . $sNaam;rnrn[code]rnrnis volstrekt onnodig!rnrnVerder houden we nummers buiten quotes. Dat geldt in PHP, MySQL, etc.rnrnDusrnrn[code]phprnrn $sMijnSQL (string), $iAantal (integer), $fCijfer (float)rnrn $sMijnSQL = UPDATE rating SET aantal = . $iAantal . , cijfer = . $fCijfer . WHERE id = . $_GET['id'];rnrn if ( !mysql_query( $sMijnSQL ) )rn {rnrn echo 'Er is een fout opgetreden tijdens het uitvoeren van ' . $sMijnSQL . '. MySQL retourneerde ' . mysql_errno() . ' ' . mysql_error() . '.';rnrn }rnrn Let op de afhandeling van de fouten. Gebruik niet or die(), maar een ifelse-constructiern[code]rnrnVolgens mij is het niet mogelijk om met bijv. $_GET[0] het eerste element uit de $_GET-array op te halen.
Henri ik ben het niet met je eens. Als je van $_GET een duidelijke variabele maakt dan werkt dat naar mijn mening heel gemakkelijk. Dit doe ik altijd in het begin van een verwerking. rnrnJongens, neem dus van mij het volgende aanrnrnKopieer 'kale' $_POST-, $_GET-, $_SERVER-, $_SESSION-, $_COOKIE-, etc. variabelen [b]WEL[b] naar een andere variabele. Dit kan bepaalde dingen vergemakkelijken bv errors opzoeken en in query's zit je dan niet te klooien met die single-quotes.rn
@Wijnand, waarom die singlequotes Variabelen heb je toch altijd buiten de quotes, dus daar heb je toch geen last van ...rnrnVerderrnrnIk heb altijd geleerd dat het onnodig is om dat te doen. Als jij je variabelen (ook $_POST, $_GET, etc.) goede namen geeft, is het kopieren niet nodig.
nee maar de meeste beginners wel. En ik zelf heb er hele positieve ervaringen mee om alles in duidelijke en korte var's te zetten. Maar goed, iedereen doet het toch anders.
Heeyz ik heb er van allemaal wat bij gedaan maar nu zegt die dit 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 '= + 1;8 = 8 + 1; 8 WHERE id=' at line 1 rnrnEn dit is de code [code] rnmysql database gevens, deze veranderen. rnmysql_connect(localhost,prassje,); rnmysql_select_db(prassje_nl_db); rnrngegevens uit de database ophalen rn$result = mysql_query(SELECT FROM rating WHERE id=$_GET[1]); rn$row = mysql_fetch_array($result); rn$cookie = gestemd . $_GET['id']; rn$cookieSET = $_COOKIE[$cookie]; rnrnals er gestemd is rnif (isset($_POST['cijfer'])) { rn het aantal stemmen met 1 verhogen en het cijfer dat gegeven word optellen bij de rest rn mysql_query(UPDATE rating SET $aantal = $aantal + 1;$cijfer = $cijfer + 1;rn . $cijfer . WHERE id= . $_GET['1'] . ) or die(mysql_error()); rn cookie voor een maand zetten rn Setcookie($cookie, gestemd.$_POST['cijfer'], Time()+36002431); rn header(locationrating.phpid= . $_GET['id'] . ); rn}rn rnhtml rnheadtitleRatingtitlehead rnbody rnRate echo $row['naam']; brrnrnif ($row['aantal'] = 1) {rn echo Er ;rn if ($row['aantal'] 2){rn echo heeft b . $row['aantal'] . b persoon gestemd;rn } elseif ($row['aantal'] = 2) {rn echo hebben b . $row['aantal'] . b personen gestemd;rn }rn}rnrntable rn rnkijken of de cookie al gezet is of niet rnif(!isset($cookieSET)) { rnrntr rntd rnform method=post action=rnselect name=cijfer onchange=javascriptthis.form.submit(); rnoption value=Cijferoption rnoption value=11option rnoption value=22option rnoption value=33option rnoption value=44option rnoption value=55option rnoption value=66option rnoption value=77option rnoption value=88option rnoption value=99option rnoption value=1010option rnselect rnform rntdrntrrnrn}rn rntrrntdrn rnis er nog geen cijfer gegeven rnif ($row['aantal'] 1) { rn echo Er is nog geen cijfer gegeven; rn} else {rn is er wel al een cijfer gevenrn het gemiddelde berekennen door het totaal te delen door het aantalrn $total = $row['cijfer'] $row['aantal'];rn $total = round($total,1);rn echo Aantal sterren;rn uitrekennen hoeveel sterren het artikel, script of wat dan ook krijgtrn if ($total = 2.5) {rn echo img src=1.gif;rn } elseif ($total = 3.5) {rn echo img src=1h.gif;rn } elseif ($total = 4.5) {rn echo img src=2.gif;rn } elseif ($total = 5.5) {rn echo img src=2h.gif;rn } elseif ($total = 6.5) {rn echo img src=3.gif;rn } elseif ($total = 7.5) {rn echo img src=3h.gif;rn } elseif ($total = 8.5) {rn echo img src=4.gif;rn } elseif ($total = 9.5) {rn echo img src=4h.gif;rn } elseif ($total = 10.5) {rn echo img src=5.gif;rn }rn}rnrntdrntrrntablernbodyrn[code] rnrnWat nu
nope zal niet werkenrnrnmysql_query(UPDATE rating SET $aantal = $aantal + 1;$cijfer = $cijfer + 1;rn . $cijfer . WHERE id= . $_GET['1'] . ) rnrnje kan niet zeggen $aantal = $aantal +1 in de query doen. Dat moet dus in PHP zeg maar.rnrnuhh.. ik ben nu druk maar als ik zometeen even tijd heb dan zal ik een duidelijk antwoordscript schrijven. Of iemand anders moet het eerder gedaan hebben.
Er staat een ; (puntkomma) in de query, maak daar eens een , (komma) van.rnrnVoor de rest klopt er volgens mij niet veel van die query...rn$cijfer=$cijfer+1.$cijfer rnrnmysql_query(UPDATE rating SET $aantal = $aantal + 1, $cijfer = $cijfer + 1, . $cijfer . WHERE id= . $_GET['1'] . ) or die(mysql_error()); rnrnWaarom staat er trouwens nog een $cijfer net voor het WHERE blokje
@Prass, je kunt beter eerst goed PHP leren. Je script doet soms gewoon zeer aan m'n ogen, maar blijkbaar interesseert het je geen lor wat ik zeg. Ook prima.