script werkt niet

Status
Niet open voor verdere reacties.

supergreatboy

Nieuwe gebruiker
Lid geworden
4 jul 2006
Berichten
2
hallo, ik heb hier een script voor een site waarbij gebruikers punten kunnen krijgen die ze met een andere site hebben verdiend.
het is de bedoeling dat alle namen van sigil.outwar.com/crew........ in de database komen.
dan moet je de punten kunnen toekennen en updaten, ik heb hier met een vriend van me naar gekeken maar ik kan niet vinden wat er mis is.


<?php

require ( 'db.php' );
// Reward amount
$reward = 5;

// Grabs the crew page from OW
$file = (string)file_get_contents("http://sigil.outwar.com/crewprofile.php?id=235795");

// This finds all matches with the tassadars string
preg_match_all('/.The Tassadars (\d{2})\+.<\/td>.*?<td><a href=".+?">(.+?)<\/a><\/td>/is',$file,$matches);

// Loop through every user and give them their points
for($i=0;$i<sizeof($matches[2]);$i++)


{

$link = mysql_connect($host, $username, $pass, $database);
$user = $matches[2][$i];
$details = (mysql_query("SELECT * FROM 'points' WHERE 'name' = $user"));
$new_points = $details['mbpoints']+$reward;
mysql_query("UPDATE 'points' SET 'mbpoints' = $new_points WHERE 'name' = $user");

echo "$i. $reward points awarded to $user<br>";

}

?>
 
mysql_conncet ():
resource mysql_connect ( [string server [, string username [, string password [, bool new_link [, int client_flags]]]]] )

Wat jij doet is
mysql_connect(host, username, pass, database)
Maar volgens de php.net handleiding, is paramenter 4 geen database, maar iets heel anders.

Dit is de code die je inplaats van moet gebruiken:
PHP:
mysql_connect ( $host, $username, $pass ) or die ( mysql_error () );
mysql_select_db ( $database ) or die ( mysql_error () );

Merk op de or die ( mysql_error () ). Als de query niet goed gaat, wordt hiermee de error weergeven. Dit werkt ook bij mysql_query (). Doen dus !

PHP:
mysql_query("UPDATE 'points' SET 'mbpoints' = $new_points WHERE 'name' = $user");
De query klopt niet. Tabelnamen zet je (optioneel) tussen `, en niet '. Waardes zet je (behalve als het integers zijn) ook tussen '. Kolomnamen hoeven niet tussen ', alleen als het eens reserveerd woord is.
PHP:
mysql_query("UPDATE `points` SET mbpoints = $new_points WHERE name = '$user'");

Ik heb een vaag vermoeden dat die loop ook niet helemaal klopt. Waarom gebruik je alleen $matches[ 2 ], en niet de hele array $matches.

Maar goed, ik wil nog steeds errors zien. Zet dit eens bovenaan je script:
PHP:
error_reporting ( E_ALL );
 
hallo,

sorry dat ik even niet heb gekeken bij de antwoorden

er zijn geen errors meer, het probleem is opgelost... dankzij jullie
er zat alleen nog een klein foutje in met het toevoegen van punten, deze werden vervangen ipv toegevoegd, dit heb ik zelf nog kunnen verhelpen..

dank jullie wel


topic can close
 
Lag het probleem nou aan de mysql_connect () ?

En @ darkmdmn:
Jouw signature zegt dat variablen buiten de quotes moeten. Stel nou dat ik met eval () werk (voor een regexp oid.) ? ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan