Problème quand je passe de php4 à php5

Fermé
RDB77 Messages postés 66 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 4 avril 2008 - 25 févr. 2008 à 13:13
 le père - 26 févr. 2008 à 16:54
Bonjour,
C'est encore moi dsl :s je galère sur 2 problème sur 2 site différent du au passage de php4 a php5.
Le deuxieme problème est que je fait un random pour choisir au azare une personne de ma base de donner tout marché bien jusqu'à ce que je passe en php5 non seulement quand je fait le random la personne qui est choisit est toujours la même (au début j'ai cru que cette personne en question avait du bol mdr mais au bout de 5fois cela devient plus du bol)
j'ai essayer de voir si il y avait pas une autre fonction que je pouvais utilisé pour faire le random en php5 mais il y a rien de spécial.
De plus la page en question est devenu lente a l'exécution et m'affiche plein d'erreur a plusieurs ligne (dont certain n'existe pas) et me dit " une erreur est survenue ... ligne ... erreur: ':' attendu " au moins 5à10fois de suite en changeant de ligne a chaque fois
voici une parti du php de mon programme:

[code]
<?php
while ($tir=mysql_fetch_array($apptirage))
{
if($tir["tirage"]!="")
{
$sqljeu="SELECT idq FROM dates WHERE dateTirage='".$tir["dateTirage"]."'";
$appjeu=mysql_query($sqljeu) or die("Erreur : ".mysql_error()." sur ".$sqljeu);
while($jeu=mysql_fetch_array($appjeu))
{
$sqlgagnant="SELECT id_gagnant FROM gagnant WHERE id_quizz='".$jeu["idq"]."'";
$appgagnant=mysql_query($sqlgagnant) or die("Erreur : ".mysql_error()." sur ".$sqlgagnant);
$gagnant=mysql_fetch_array($appgagnant);
if(mysql_num_rows($appgagnant)!=0)
{
$idgagnant=$gagnant["id_gagnant"];
$sqlgagn="SELECT * FROM joueur WHERE j_id='".$idgagnant."'";
$appgagn=mysql_query($sqlgagn) or die("Erreur : ".mysql_error()." sur ".$sqlgagn);
$gagn=mysql_fetch_array($appgagn);
}
//puis on compte le nombre de gagnants
$sqltir2="SELECT idq FROM dates WHERE dateTirage='".$tir["dateTirage"]."'";
$apptir2=mysql_query($sqltir2) or die("Erreur : ".mysql_error()." sur ".$sqltir2);

$idq="";
$sqlgagnant="SELECT DISTINCT id_j FROM EtatJoueur WHERE id_q IN (";
while($tir2=mysql_fetch_array($apptir2))
{
$sqlgagnant.=$tir2["idq"].",";
//on enregistre quel est le 1er n° de jeu [pour pouvoir remplir la table Gagnants plus tard]
if($idq=="")
{
$idq=$tir2["idq"];
}
}
$sqlgagnant=substr($sqlgagnant,0,-1);
$sqlgagnant.=")";
$appgagnant=mysql_query($sqlgagnant) or die("Erreur : ".mysql_error()." sur ".$sqlgagnant);


}

?>
<tr>
<td><font face="arial" size="2"><?php echo $tir["tirage"] ?> (nbe gagnants : <?php echo mysql_num_rows($appgagnant); ?>)</font></td>
<td><font face="arial" size="2"><?php if ($idgagnant!=""){ echo $gagn["nom"]." ".$gagn["prenom"]."<br>".$gagn["adresse"]."<br>".$gagn["cpostal"]." ".$gagn["ville"]."<br>".$gagn["email"]; } else {?><input type="button" name="tirage" value="Tirage" onClick="tirage('<?php echo $tir["dateTirage"] ?>')"> <?php } ?></font></td>
</tr>
<?php }} ?>

/code

et voici la requete du $tir:
[code]
$sqltir="SELECT DISTINCT dateTirage, DATE_FORMAT(dateTirage,'%d/%m/%Y') tirage FROM dates WHERE dateTirage<=CURDATE() ORDER BY dateTirage DESC";
$apptirage=mysql_query($sqltir) or die("Erreur : ".mysql_error()." sur ".$sqltir);
/code
A voir également:

7 réponses

Ma vue doit baisser. Après plusieurs lectures, je ne trouve pas le random qui te pose un problème. peux-tu le mettre en gras, ou préciser où il se trouve ?
0
RDB77 Messages postés 66 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 4 avril 2008 7
25 févr. 2008 à 13:49
A mince dsl j'avais oublier l'essentiel en faite ils sont dans 2 autre feuille ( je sais meme pas pourquoi il en a mis 2 mais bon)

il y en a un dans tirage.php:
[code]
$sqltir="SELECT idq FROM dates WHERE dateTirage='".$tir."'";
$apptir=mysql_query($sqltir) or die("Erreur : ".mysql_error()." ");
$idq="";
$sqlgagnant="SELECT id_j FROM EtatJoueur WHERE id_q IN (";
while($tir=mysql_fetch_array($apptir))
{
$sqlgagnant.=$tir["idq"];
//on enregistre quel est le 1er n° de jeu [pour pouvoir remplir la table Gagnants plus tard]
if($idq=="")
{
$idq=$tir["idq"];
}
}
$sqlgagnant=substr($sqlgagnant,0,-1);
$sqlgagnant.=")";
$appgagnant=mysql_query($sqlgagnant) or die("Erreur : ".mysql_error()." sur ".$sqlgagnant);
//tirage au hasard de l'enregistrement du gagnant
$col=rand(1,mysql_num_rows($appgagnant));
//on récupère l'id du gagnant
$sqlidg="SELECT id_j FROM EtatJoueur LIMIT ".$col.",1";
$appidg=mysql_query($sqlidg) or die("Erreur : ".mysql_error()." sur ".$sqlidg);
$idg=mysql_fetch_array($appidg);

//on enregistre dans la table Gagnant
$insert="INSERT INTO gagnant VALUES ('".$idq."','".$idg["id_j"]."',CURDATE())";
mysql_query($insert) or die("Erreur : ".mysql_error()." sur ".$insert);

//on redirige sur gagnant.php
header("location:gagnant.php");
?>
/code

et un autre dans hasard.php
[code]
$sqlgagnant="SELECT DISTINCT id_j FROM EtatJoueur WHERE id_q='51' or id_q='52'";
$appgagnant=mysql_query($sqlgagnant) or die("Erreur : ".mysql_error()." sur ".$sqlgagnant);
$col=rand(1,mysql_num_rows($appgagnant));

?>

dsl même moi je suis embrouiller le problème c'est que la personne n'as pas mis de commentaire et pas laisser de doc donc faut que je revois tout pour savoir se qu'il a voulu faire :s.
0
Un peu trop compliqué pour une réponse immédiate, désolé. J'espère que quelqu'un d'autre pourra t'aider.
0
RDB77 Messages postés 66 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 4 avril 2008 7
25 févr. 2008 à 14:22
oui je compend ^^ merci quand meme d'avoir essayer et j'espere que quelqu'un trouvera quelque chose même si je trouve bizarre que sur php4 sa fonctionnait alors que sous php5 il veut pas.
0

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

Posez votre question
RDB77 Messages postés 66 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 4 avril 2008 7
26 févr. 2008 à 13:04
Y a t'il des fonction qui fonction en php4 mais pas en php5 et si oui savez vous quelles sont les equivalences.
Parce que le site que je debug fonctionnai tres bien en php4 mais la le tirage au sort me retourne toujours le même gagnant est ce que sa peu venir de la fonction rand() ou est ce autre chose?
0
Bonjour

Dans la mesure ou ton site n'utilise pas les objets, les différences entre php4 et php5 ne devraient pas venir du langage mais de la configuration du serveur (register_globals en particulier). Inutile de checher des équivalences de fonctions.
Ma doc n'indique pas de différence pour rand entre php4 et en php5.
Pour piéger ton problème, insère des 'echo' aux bons endroits comme nous l'avons fait hier
Par exemple ici, affiche le nombre aléatoire qui sert au choix.
S'il varie bien, affiche la liste dans laquelle tu viens 'piocher' avec ce nombre aléatoire, peut-être contient-elle un suel utilisateur
etc...
0
RDB77 Messages postés 66 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 4 avril 2008 7
26 févr. 2008 à 14:34
Ok j'ai commencé a mettre des echo un peu partout mais je suis pas arrive encore ou tu m'as dit je vais le faire de suite.
merci
0
bonne chasse et bonne chance :)
0