Ticket a grattez

Résolu
lpd11 Messages postés 18 Date d'inscription dimanche 21 janvier 2007 Statut Membre Dernière intervention 17 novembre 2009 - 1 nov. 2009 à 21:31
lpd11 Messages postés 18 Date d'inscription dimanche 21 janvier 2007 Statut Membre Dernière intervention 17 novembre 2009 - 17 nov. 2009 à 16:08
Bonjour a tous,

comme vous je suis un debutant en php mais ses dernier tant je me suis mis et j'ai réusis a faire un jeu de ticket a grattez le probleme c que je n'arrive pas a terminer pour pouvoir le mettre en ligne car il y a un php que j'arrive pas a faire et a trouver une reponse car apparament personne ne pose cette question.
j'ai fait mes tickets et ma base les ticket fonctionne tres bien je peu en grattez trois seulement le probleme c que dés que je déconnecte la section et je reconnecte il redonne toute les parties voici le code php que j'utilise quand je me connecte pour recharger par jour

<?php

require ("config.inc.php");

session_start();

if(!session_is_registered(login)) {
echo "<FORM name='ok' ACTION=erreur.php METHOD=POST>";
echo "</FORM>";
echo "<script>";
echo "document.ok.submit();";
echo "</script>";

exit;
}



else {


// CONNEXION MYSQL
$db_link = @mysql_connect($server,$user,$pass);
if(!$db_link) {echo "Connexion impossible."; exit;}

$sql_bdd = "nom de ma base"; c moi qui les retirer je veux pas me faire pirater meme si c pas les mots de pase c quand meme le nom de la base

// SELECTION DE L'ENREGISTREMENT CONTENANT L'ID EN COURS
$requete=mysql_db_query($sql_bdd,"select * from compte where login="$login"",$db_link) or die(mysql_error());
$date=mysql_result($requete,0,"date");
$jour=date("Y-m-d H:i:s");
if ("$jour"==$date) {
$requete=mysql_db_query($sql_bdd,"UPDATE compte SET date="$jour" WHERE login="$login"",$db_link) or die(mysql_error());
header ("location:index2.php");
}
else {
$requete=mysql_db_query($sql_bdd,"UPDATE compte SET partie3="3" WHERE login="$login"",$db_link) or die(mysql_error());
$requete=mysql_db_query($sql_bdd,"UPDATE compte SET partie2="3" WHERE login="$login"",$db_link) or die(mysql_error());
$requete=mysql_db_query($sql_bdd,"UPDATE compte SET partie1="3" WHERE login="$login"",$db_link) or die(mysql_error());
$requete=mysql_db_query($sql_bdd,"UPDATE compte SET date="$jour" WHERE login="$login"",$db_link) or die(mysql_error());
header ("location:index2.php");
}
}

?>

Merci de bien vouloir repondre si vous trouver se qui va pas dans se code.

Si vous trouver pas mais vous avez une solution pour que les parti se recharge seulement par jour avec un script faite moi par.

je possede un autre code que j'ai creer lui il permet de recharger toute les parties de tout les membres mais je n'arrive pas a le faire utiliser une seule fois par jour pour le membre qui se connecte en premier sa sera lui qui recharge tous le monde
Je sais que j 'en demande beaucoup mais vu que j'ai deja chercher presque 5 mois et que j'ai reusis a faire presque tout + 2 code script pour les jours qui fonctionne mais pas par jour je serai reconnaissant de votre aide pour que je puisse le mettre en ligne et passez l'adresse sur des sites. depuis le temp que je reve de faire un jeu comme prizee c'est pas un script qui va m'arreter quand même.
Merci d'avance a tous ceux qui vont repondre.

36 réponses

lpd11 Messages postés 18 Date d'inscription dimanche 21 janvier 2007 Statut Membre Dernière intervention 17 novembre 2009
13 nov. 2009 à 13:48
Bonjour

oui j'ai regarder l'exemple j'ai meme essayer mais sa marche pas je n'arrive pas pourtant je suis bien l'exemple mais il donne rajoute rien du tous dans la base

voila le code

<?php
require ("config.inc.php");
session_start();

if(!session_is_registered(login)) {
echo "<FORM name='ok' ACTION=erreur.php METHOD=POST>";
echo "</FORM>";
echo "<script>";
echo "document.ok.submit();";
echo "</script>";

exit;
}



else {
// CONNEXION MYSQL
$db_link = @mysql_connect($server,$user,$pass);

if(!$db_link) {echo "Connexion impossible."; exit;}

$sql_bdd = "lpd11";

// SELECTION DE L'ENREGISTREMENT CONTENANT L'ID EN COURS
$requete=mysql_db_query($sql_bdd,"select * from compte where kagpass >='0'",$db_link) or die(mysql_error());


$kagpass=mysql_result($requete,0,"kagpass");


$point_offert = $kagpass + 1;
$sql = mysql_query("SELECT * FROM compte where kagpass >='0'");
while($recuperation = mysql_fetch_array($sql, MYSQL_NUM))
{
$requete = mysql_query("UPDATE compte SET kagpass='".$recuperation[1]+$point_offert."' WHERE id='".$recuperation[0]."'");
}


header ("location: index2.php");



}
?>


le probleme du code c qui n'a aucune erreur car il passe bien a index2

le 2eme probleme c que je ne peu pas retirer les phrases

// SELECTION DE L'ENREGISTREMENT CONTENANT L'ID EN COURS
$requete=mysql_db_query($sql_bdd,"select * from compte where kagpass >='0'",$db_link) or die(mysql_error());


$kagpass=mysql_result($requete,0,"kagpass");

sinon pu rien ne marche

donc si vous trouver une solution ou l'erreur pouvait vous me faire le code complet car a chaque fois que j'essaie de replacer dans l'ordre je doit surement faire des erreurs.

si vous voulez pas ou sa ne marche pas c pas grave je ne rajouterai pas de kagpass par la je les rajouterai seulement a ceux qui ce connecte en passant par le jour partie qu'on avait regler avant.

Merci et bonne journée.
0
phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
13 nov. 2009 à 17:29
Je t'explique :
- Je ne connais pas la configuration de ta table et elle n'a pas l'air d'être la même que pour le précèdent script
- Donc dans la requête MYSQL SELECT j'ai choisi les champs 'id' et 'kagpass' ce qui donne :

$sql = mysql_query("SELECT id,kagpass FROM compte");


- Ensuite je récupère toutes les lignes de résultats, et dans la fonction 'mysql_fetch_array' j'ai indiqué le result_type 'MYQSL_NUM'(avec [0] qui correspondra à l'id et [1] qui correspondra à kagpass :

while($recuperation = mysql_fetch_array($sql, MYSQL_NUM))
{
...
}


- Dans la boucle while on va incrémenter le kagpass de tous le monde(correspond au SELECT)....$point_offert= 1 :

mysql_query("UPDATE compte SET kagpass='".$recuperation [1] +$point_offert."' WHERE id ='".$recuperation[0]."'");


En améliorant, un peu le script pour faire ressortir comment il fonctionne et ce qui va pas ça donne :

$sql = mysql_query("SELECT id,kagpass FROM compte") or die('La récupération n\'est pas possible !
').mysql_error().' '.__LINE__;
$res = mysql_num_rows($sql);
if($res>0)
{
while($recuperation = mysql_fetch_array($sql, MYSQL_NUM))
{
mysql_query("UPDATE compte SET kagpass='".$recuperation[1]+$point_offert."' WHERE id='".$recuperation[0]."'") or die ('Erreur lors de l\'ajout de point
').mysql_error().' '.__LINE__;
}
}
else
{
echo "Il n'y a pas de données!";
}



Test du chi2
0
lpd11 Messages postés 18 Date d'inscription dimanche 21 janvier 2007 Statut Membre Dernière intervention 17 novembre 2009
14 nov. 2009 à 19:44
bonjour
j'ai essayer votre code mais quand je l'active il m'écrit : Erreur lors de l'ajout de point

je pense que l'erreur viens de la :
mysql_query("UPDATE compte SET kagpass='".$recuperation[1]+$point_offert."' WHERE id='".$recuperation[0]."'") or die ('Erreur lors de l\'ajout de point
').mysql_error().' '.__LINE__;

pourtant j'ai ajouter la phrase la $point_offert = 1; avant la premiere phrase du code $sql=...
alors pourquoi il recupere il verifi mais il veut pas ajouter

merci

bonne journee
0
phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
14 nov. 2009 à 20:05
OK, mais quel type d'erreur ??

Test du chi2
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lpd11 Messages postés 18 Date d'inscription dimanche 21 janvier 2007 Statut Membre Dernière intervention 17 novembre 2009
14 nov. 2009 à 20:34
je sais pas la page est toute blanche seul la phrase Erreur lors de l'ajout de point
apparait a l'écran
0
phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
14 nov. 2009 à 20:38
A normale, déplace la parenthèse ) qui es avant .mysql_error() et ajoute la après __LINE__

Test du chi2
0
lpd11 Messages postés 18 Date d'inscription dimanche 21 janvier 2007 Statut Membre Dernière intervention 17 novembre 2009
14 nov. 2009 à 20:46
voila j'ai deplacer la parenthése maintenant j'obtient sa comme erreur a l'ecran

Erreur lors de l'ajout de point
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' WHERE id='1'' at line 1 41
0
phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
14 nov. 2009 à 21:00
Oulala, il y a le match, j'ai trop le temps de répondre lol...euh fait un débogage
echo $recuperation[0]; par exemple...je reviendrai après pour voir..

Test du chi2
0
lpd11 Messages postés 18 Date d'inscription dimanche 21 janvier 2007 Statut Membre Dernière intervention 17 novembre 2009
14 nov. 2009 à 21:06
ok je serai la jusqu'a mi-nuit environt sinon on voit demain

bon match
0
phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
15 nov. 2009 à 02:49
Salut, bon oui pas terrible le match mais 1-0 c'est déjà ça !

Revenons à notre affaire, c'est une erreur de syntaxe MYSQL !
- As-tu un champs 'id' dans ta table?
- Est-elle en majuscule ?

Si aucun problème pour les questions ci-dessus :
- ajoute :
$add = $recuperation[1]+$point_offert;
et mets
........kagpass='".$add."'..........

Test du chi2
0
lpd11 Messages postés 18 Date d'inscription dimanche 21 janvier 2007 Statut Membre Dernière intervention 17 novembre 2009
15 nov. 2009 à 19:56
bonjour

j'ai essayer de changer pour voir mais il avez aucune faute sauf qui me mettait un 1 pour tous les compte alors j'ai rajouter dans la phrase $point_offert 1; sa $point_offert $kagpass + 1; la sa marcher mais le probleme ces que quand je les activer le joueur 1 qui avait 2 kagpass en avez 3 normale mais le joueur 2 qui avait 6 kagpass c retrouver a 3 aussi il recuperer les infomation du compte que j'utilise pour lancer le code .

donc je pense que cette fois sa vien de la recupération par id.

merci
0
phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
17 nov. 2009 à 05:02
[quote=Toi tu]
quand je les activer le joueur 1 qui avait 2 kagpass en avez 3 normale mais le joueur 2 qui avait 6 kagpass c retrouver a 3 aussi il recuperer les infomation du compte que j'utilise pour lancer le code .
/quoteC'est normal !

[quote=Encore, toi tu]
je pense que cette fois sa vien de la recupération par id.
/quoteTu te trompe !

Dans ton cas il ne faut pas utiliser la fonction 'mysql_result()'...pourquoi? Eh ben pour la simple et bonne raison que 'mysql_result' travail sur une ligne particulière celle que tu indique ou à défault la première : Mysql_result(). Donc ici cela va travailler sur une seule ligne en l'occurence la première ligne(id= 1) dans ton cas...

Comment y remédier ? Utiliser une autre fonction pour récupérer tes résultats : mysql_fetch_array() entres autres...

A plus !

Test du chi2
0
lpd11 Messages postés 18 Date d'inscription dimanche 21 janvier 2007 Statut Membre Dernière intervention 17 novembre 2009
17 nov. 2009 à 11:12
Bonjour

j'ai essayer de changer de changer mais sa marche pas il m'indique une erreur

j'ai changer la phrase la
$kagpass=mysql_result($requete,0,"kagpass");

en
$kagpass=mysql_fetch_array()($requete,0,"kagpass");
et
apres en

$kagpass=mysql_fetch_array($requete,0,"kagpass");

mais il indique la meme erreur qui est

Warning: Wrong parameter count for mysql_fetch_array() in /mnt/141/sda/2/9/lpd11/Inuyashaland/donne1kagpassatous1.php on line 16

Warning: Cannot modify header information - headers already sent by (output started at /mnt/141/sda/2/9/lpd11/Inuyashaland/donne1kagpassatous1.php:16) in /mnt/141/sda/2/9/lpd11/Inuyashaland/donne1kagpassatous1.php on line 36


je croit que cette fois c encore plus compliquer que pour les jours.

merci
0
phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
17 nov. 2009 à 14:50
L'erreur vient de toi, pas du script en lui même, je t'ai mis le lien de la doc pour 'mysql_fetch_array', après si tu ne l'a lit pas pour savoir comment l'utilisé...



Test du chi2
0
phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
17 nov. 2009 à 15:21
A PLACER dans ton else :
$sql_bdd = "lpd11";
$db_link = mysql_connect($server,$user,$pass) or die('Impossible de se connecter à la base ! '.__LINE__);
mysql_select_db($sql_bdd, $db_link) or die('Impossible de sélectonner la base ! '.__LINE__);

$sql = mysql_query("SELECT id,kagpass FROM compte") or die('La récupération n\'est pas possible !
').mysql_error().' '.__LINE__;
$res = mysql_num_rows($sql);

if($res>0)
{
$point_offert 1; $nombre_dajout 0;

while($recuperation = mysql_fetch_array($sql, MYSQL_BOTH))
{
$add = $recuperation['kagpass']+$point_offert;
$update = mysql_query("UPDATE compte SET kagpass='".$add."' WHERE id='".$recuperation['id']."' ") or die ('Erreur lors de l\'ajout de point
').mysql_error().' '.__LINE__;
if($update==TRUE)
{
$nombre_dajout++;
}
}
echo "".$nombre_dajout." ont été effectués pour ".$res." données enregistrer !";
}
else
{
echo "Il n'y a pas de données dans la base!";
}

Voilà, j'ai pris quelques minutes pour te faire le code !


Test du chi2
0
lpd11 Messages postés 18 Date d'inscription dimanche 21 janvier 2007 Statut Membre Dernière intervention 17 novembre 2009
17 nov. 2009 à 16:08
Bonjour

Merci sa fonctionne correctement je les juste ameliore pour qui retourne de lui meme a la page que je voulais

je vous en remerci encore pour la rapidité car j'ai déja prevu sur mon site web ouverture du site de grattage pour le 26 novembre et pour le moment il me reste pu que les ticket secret a faire mais sa ces bon je sais les faire grace a la phrase verifie c juste trés long ai g pas trop de temp mais je pense que si g un autre probleme je vous recontacterai car vous avez l'air de vous y connaitre.

Bonne journée
0
Rejoignez-nous