Hoe werken deze Mysql code's?

Status
Niet open voor verdere reacties.

Martijn31

Gebruiker
Lid geworden
6 sep 2009
Berichten
362
Hallo Helpmij, ik ben bezig met een punten systeem en als ze "10" punten ( voorbeeld ) hebben mogen ze Grabbelen op de website

Dan is de bedoeling dat ze 1 item krijgen voor die 10 punten maar het moet wel steeds een verschillende zijn
Bijvoorbeeld

[sql]mysql_query("INSERT INTO users_badges (userid,badgeid,badge) VALUES ('".$user->id."','GLJ','0')");
mysql_query("INSERT INTO users_badges (userid,badgeid,badge) VALUES ('".$user->id."','GLG,'0')");
mysql_query("INSERT INTO users_badges (userid,badgeid,badge) VALUES ('".$user->id."','GLS,'0')");
mysql_query("INSERT INTO users_badges (userid,badgeid,badge) VALUES ('".$user->id."','GLF,'0')");
mysql_query("INSERT INTO users_badges (userid,badgeid,badge) VALUES ('".$user->id."','GLX,'0')"); [/sql]

Dit staat in de code maar als ik dan de pagina bezoek geeft hij ze maar de opdracht om al deze badge's (plaatjes)
Te geven. Nu is mijn bedoelen dat hij 1 van deze plaatjes uitkiest ( automatisch ) en dan die query uitvoert
dus hij kiest willekeurig een plaatje bijv GLX en die voert hij uit De andere negeert hij dan

Hopelijk snappen jullie wat ik bedoel
In een grabbelton zitten ook altijd meerdere dingen maar je grabbelt er maar 1tje
Weet iemand die code?
Alvast bedankt
 
Gebruik gewoon ifs.

PHP:
if($thingy==1){
mysql_query("INSERT INTO users_badges (userid,badgeid,badge) VALUES ('".$user->id."','GLJ','0')");
}else if($thingy==2){
mysql_query("INSERT INTO users_badges (userid,badgeid,badge) VALUES ('".$user->id."','GLG,'0')");
}else if($thingy==3){
mysql_query("INSERT INTO users_badges (userid,badgeid,badge) VALUES ('".$user->id."','GLS,'0')"); 
}else if($thingy==4){
mysql_query("INSERT INTO users_badges (userid,badgeid,badge) VALUES ('".$user->id."','GLF,'0')"); 
}else{
mysql_query("INSERT INTO users_badges (userid,badgeid,badge) VALUES ('".$user->id."','GLX,'0')");
};

of om de code korter te houden:

PHP:
if($thingy==1){
$badge = "GLJ";
}else if($thingy==2){
$badge = "GLG";
enz.
mysql_query("INSERT INTO users_badges (userid,badgeid,badge) VALUES ('".$user->id."','".$badge."','0')");
 
Laatst bewerkt:
En dan geeft hij een willekeurige badge?
Hoe werkt de echo dan bijv echo Gefeliciteert u heeft badge (badgename) ontvangen
Alvast bedankt
 
En dan geeft hij een willekeurige badge?
Hoe werkt de echo dan bijv echo Gefeliciteert u heeft badge (badgename) ontvangen
Alvast bedankt

O nee, ik wist niet dat het willekeurig moest zijn :P

Dan zou dit moeten werken:

PHP:
$input = array("GLJ", "GLG", "GLS", "CLF", "GLX");
$rand_keys = array_rand($input, 1);
mysql_query("INSERT INTO users_badges (userid,badgeid,badge) VALUES ('".$user->id."','".$input[$rand_keys[0]]."','0')");
en dan kan je 'm echoen:
PHP:
echo "Gefeliciteerd, u heeft" . $input[$rand_keys[0]] . "ontvangen.";
 
Laatst bewerkt:
Oke bedankt maar de Echo ( het antwoord als mensen hun punten hebben verzilvert ) hoe werkt die dan?
Iets van Echo Gefeliciteert je (naam van willekeurige badge ) is succesvol bij jou aangekomen
weet je die ook?
Bedankt :P
 
Oke bedankt maar de Echo ( het antwoord als mensen hun punten hebben verzilvert ) hoe werkt die dan?
Iets van Echo Gefeliciteert je (naam van willekeurige badge ) is succesvol bij jou aangekomen
weet je die ook?
Bedankt :P

Ik heb de post veranderd :)
 
Oke en dan heb ik nog een vraag
ik wil een puntensysteempje dat als mensen inloggen ze 10 punten krijgen
dit slechts 1 malig per dag dus niet dat als ze de pagina herladen ze weer 10 punten krijgen
weet jij die code ook ik ben daar niet zo goed in
Alvast bedankt
 
Heey de code werkt niet hij schrijft wel punten af maar de code werkt niet hij geeft niets

de code is nu:

[sql]
<?php

$row = mysql_fetch_assoc(mysql_query("SELECT * FROM cms_users WHERE id='".$user->id."'"));
$belcr = $row["belcr"];

if ($belcr <= "9") {
echo "Je hebt niet genoeg BelCredits.";
}
if ($belcr >= "10") {
mysql_query("UPDATE cms_users SET belcr = belcr - 10 WHERE name =

'". $user->name."' LIMIT 1") or die(mysql_error());
$input = array("GLJ", "GLG", "GLS", "CLF", "GLX");
$rand_keys = array_rand($input, 1);
mysql_query("INSERT INTO users_badges (userid,badgeid,badge) VALUES

('".$user->name."','".$input[$rand_keys[0]]."','0')");


echo "Gefeliciteerd, u heeft" . $input[$rand_keys[0]] . "ontvangen.";

}
?>
[/sql]
 
Heey de code werkt niet hij schrijft wel punten af maar de code werkt niet hij geeft niets

de code is nu:

[sql]
<?php

$row = mysql_fetch_assoc(mysql_query("SELECT * FROM cms_users WHERE id='".$user->id."'"));
$belcr = $row["belcr"];

if ($belcr <= "9") {
echo "Je hebt niet genoeg BelCredits.";
}
if ($belcr >= "10") {
mysql_query("UPDATE cms_users SET belcr = belcr - 10 WHERE name =

'". $user->name."' LIMIT 1") or die(mysql_error());
$input = array("GLJ", "GLG", "GLS", "CLF", "GLX");
$rand_keys = array_rand($input, 1);
mysql_query("INSERT INTO users_badges (userid,badgeid,badge) VALUES

('".$user->name."','".$input[$rand_keys[0]]."','0')");


echo "Gefeliciteerd, u heeft" . $input[$rand_keys[0]] . "ontvangen.";

}
?>
[/sql]
word de badge uberhaupt toegevoegd?
 
Nee, hij voegt niks toe en de echo wordt Gefeliciteert u heeft een ontvangen Hij zegt ook niet wat ik heb ontvangen ofzo
maar hij schrijft wel punten af mischien zit er nog ergends een fout?
 
Nee, hij voegt niks toe en de echo wordt Gefeliciteert u heeft een ontvangen Hij zegt ook niet wat ik heb ontvangen ofzo
maar hij schrijft wel punten af mischien zit er nog ergends een fout?

wat gebeurd er als je
PHP:
$rand_keys = array_rand($input, 1);
veranderd in
PHP:
$rand_keys = array_rand($input, 2);
?
 
Dan werkt het wel :D

Sorry dat ik zo lang niet meer heb gereageert ik was een tijdje met wat anders bezig.
Alles werkt nu alleen nu zegt hij: Gefeliciteert u heeft: GLK ontvangen maar niemand snapt wat dat betekend
weet jij ook de code dat hij GLK verandert in de naam die ik wil bijv wolf? Dan zegt hij ipv GLK Gefeliciteert u heeft een wolf ontvangen Alvast bedankt.
 
Dan moet je een conversie array maken:

PHP:
$namen = array (
'GLK' => 'Wolf',
'GLF' => 'Konijn' );

echo "Gefeliciteerd, u heeft" . $namen[ $input[$rand_keys[0]] ] . "ontvangen.";

Zoiets.
 
Oke bedankt dat werkt ook. Alleen nu zit ik nog met 1 klein foutje. Namelijk
PHP:
$input = array("1115","1107","1099","1061","1127","1078","1065","1082","1089","1040");
en dan pakt hij het laatste stukje niet dit stukje "1040"); en de naam:
PHP:
[mysql] '1040' => 'Rat);
die werkt ook niet die hoort bij die 1040 dus het einde pakt hij niet. Zit daat een fout ofzo?
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan