Script lukt niet? (Php & mysql)

Status
Niet open voor verdere reacties.

erik11

Gebruiker
Lid geworden
26 mei 2008
Berichten
25
He hallo daar!

Allemaal de beste wensen voor 2009!

Maar ik heb vandaag een script geschreven in php, die gebruikt maakt van mysql.
Ik heb zo'n advertentie plan gemaakt waarmee bezoekers banners en link op hun website plaatsen en ze zo credits verdienen. Nou, is dit bijvoorbeeld zo'n link: localhost/get_credits.php?name=test

Nou heb ik in mysql een tabel genoemd adver, met drie rijen, name,type en credits.
Nou moet, als een bezoeker op die link klikt er 1 credit in de mysql database bijkomen. De naam van de persoon is dit voorbeeld test, in de rij met de naam test moet dan 1 credit bijkomen.

Het klint dus als een rekensom, $_GET[credits] + 1 heb ik geprobeert, maar hij blijft maar op 1 staan in de database.

Dit is mijn hele script:

PHP:
<?php

$con = mysql_connect("localhost","root","pass");

mysql_select_db("ringtonio", $con);
if(!$con)
{
die('Kan niet verbinden: ' . mysql_error());
}

$query = mysql_query("SELECT * FROM adver WHERE name = '$_GET'");
if(!$query)
{
die('Kan niet verbinden: ' . mysql_error());
}

while($row = mysql_fetch_array($query));
{
mysql_query("UPDATE adver SET credits= $row[credits]+ 1 WHERE name= '$_GET[name]'");
}

header("Location: http://ringtonio.nl.tp");

?>

Het komt er dus op neer dat php 1 credit bij elke klik in de mysql database moet zetten.

Ik hoop dat jullie me kunnen helpen! Mvg Erik
 
Laatst bewerkt:
probeer het is los van elkaar:
PHP:
while($row = mysql_fetch_array($query));
{
$credits = $row[credits] + 1;
mysql_query("UPDATE adver SET credits= $credits WHERE name= '$_GET[name]'");
}
 
probeer het is los van elkaar:
PHP:
while($row = mysql_fetch_array($query));
{
$credits = $row[credits] + 1;
mysql_query("UPDATE adver SET credits= $credits WHERE name= '$_GET[name]'");
}

Heb ik al gedaan, zelfde resultaat.

Ik kan met een gewone php code wel rekenen, ik krijg het antwoord in beeld.

PHP:
<?php

$som = 5 + 1 ;
echo("$som");

?>


Dan krijg ik op de pagina netjes 6 in beeld.
Ik heb ook al de volgende code geprobeert:

PHP:
<?php

$con = mysql_connect("localhost","root","****");

mysql_select_db("ringtonio", $con);
if(!$con)
{
die('Kan niet verbinden: ' . mysql_error());
}

$query = mysql_query("SELECT * FROM adver WHERE name = '$_GET'");
if(!$query)
{
die('Kan niet verbinden: ' . mysql_error());
}

while($row = mysql_fetch_array($query));
{
$gtal1 = 3;
$gtal2 = 1;
$rekensom = "$gtal1 + $gtal2";
mysql_query("UPDATE adver SET credits= '$rekensom' WHERE name= '$_GET[name]'");
}

header("Location: http://ringtonio.nl.tp");

?>

Maar hij neemt gewoon letterlijk 3+1 over. Dat zie ik met phpmyadmin dan in mijn database staan.

Is het mischien niet mogelijk te rekenen in een mysql query?
Als dat zo is, vind ik dat wel raar want in gewoon php werkt het wel.

Groet, erik
 
Laatst bewerkt:
while($row = mysql_fetch_array($query));
{
$gtal1 = 3;
$gtal2 = 1;
$rekensom = "$gtal1 + $gtal2";
mysql_query("UPDATE adver SET credits= '$rekensom' WHERE name= '$_GET[name]'");
}

header("Location: http://ringtonio.nl.tp");

Niet getest!, maar ik denk dat het niet
$rekensom = "$gtal1 + $gtal2";
maar
$rekensom = $gtal1 + $gtal2;
(aanhalingstekens weg)
moet zijn.
 
Niet getest!, maar ik denk dat het niet
$rekensom = "$gtal1 + $gtal2";
maar
$rekensom = $gtal1 + $gtal2;
(aanhalingstekens weg)
moet zijn.

Ok, de som heb ik geprobeert en dat lukte!

Maarja, dat is niet mijn doel, als je de begin post hebt gelezen.
Hij moet dus de credits die in de mysql database staan optellen +1.

dus dan word de code

PHP:
$gtal1 = $row[credits];
$gtal2 = 1;
$rekensom = $gtal1 + $gtal2;
mysql_query("UPDATE adver SET credits= '$rekensom' WHERE name= '$_GET[name]'");

Maar hij blijft nu steeds op 1 staan.

Groet Erik
 
$gtal1 = $row[credits];
$gtal2 = 1;
$rekensom = $gtal1 + $gtal2;
mysql_query("UPDATE adver SET credits= '$rekensom' WHERE name= '$_GET[name]'");

Plaats eens een "echo" en kijk of $gtal1 wel hebt.

$gtal1 = $row[credits];
echo "getal 1 is: $gtal1";
$gtal2 = 1;
$rekensom = $gtal1 + $gtal2;
mysql_query("UPDATE adver SET credits= '$rekensom' WHERE name= '$_GET[name]'");
 
Moet
PHP:
$row[credits]
niet
PHP:
$row['credits']
zijn?
 
Je kunt ook MySQL laten rekenen in plaats van PHP.

Als je er nu eens:

PHP:
while($row = mysql_fetch_array($query)){
  mysql_query("UPDATE adver SET credits = credits + 1 WHERE name = '" . $_GET['name'] . "'");
}
 
Je kunt ook MySQL laten rekenen in plaats van PHP.

Als je er nu eens:

PHP:
while($row = mysql_fetch_array($query)){
  mysql_query("UPDATE adver SET credits = credits + 1 WHERE name = '" . $_GET['name'] . "'");
}

Dank u wel! Het werkt nu!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan