image aléatoire par jour

Eléphanteau du PHP | 47 Messages

20 oct. 2005, 20:27

Bonjour alors voila j'ai fait mon petit programme pour faire une image aléatoire mais maintenant je veut que la photo change que une fois par jour comment faire!aidez moi
hIm It'S good music

Invité
Invité n'ayant pas de compte PHPfrance

20 oct. 2005, 22:54

tu fais avec une base de donnee dont tu inseres tes donnees + la date, et ds ta rekette tu mets select where date=date, je m'explik, chak image aura une date, alor si aujourdhui c le 21/10/2005 il va afficher limage attribuee a cette date

Eléphanteau du PHP | 47 Messages

21 oct. 2005, 21:02

mysql_pconnect($serveur, $utilisateur , $motDePasse);
mysql_select_db($base);
$infos = mysql_query("SELECT * FROM imgjr WHERE temoin='temoin'");
$infos = mysql_fetch_array($infos);

//exploiter la var tableau pour recuperrer les infos des colones url, jour et moi
$jour = $infos['jour'];
$url = $infos['url'];
$moi = $infos['moi'];

//si le jour est pas identique alors...
if (date('d') != $jour)
{
 $rand = rand (1,2);
if ($rand == 1)
{
$rand1 = rand (1,23);
$dossier = "imggroupe/" ;
}
else
 {
 $rand1 = rand (1,72) ;
 $dossier = "imgville/" ;
 }
 $largeur = 80 ;
 $extension= ".jpg";
 
 
 
 echo "<img align=middle border=1 width=".$largeur." src=\"gallery/".$dossier.$rand1.$extension."\">";
  UPDATE imgjr SET jour='date('d')', moi='date('m')' url='<"img align=middle border=1 width=".$largeur." src=\"gallery/".$dossier.$rand1.$extension."\">";' WHERE temoin='temoin'
 }

else
 
echo "$url";

 ?>
voila moi jai fait sa mais j'ai des grosse couille dedans aidez moi
hIm It'S good music

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

21 oct. 2005, 21:34

j'ai des grosse couille dedans aidez moi
Normal c'est quoi ce truc
 echo "<img align=middle border=1 width=".$largeur." src="gallery/".$dossier.$rand1.$extension."">";
  UPDATE imgjr SET jour='date('d')', moi='date('m')' url='<"img align=middle border=1 width=".$largeur." src="gallery/".$dossier.$rand1.$extension."">";' WHERE temoin='temoin' 
une demi-pseudo requete de mise a jour et un affichage d'image en meme temps :?: :!:

autre point, tu ne lis que le 1er résultat de la requete:
$infos = mysql_fetch_array($infos); 

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 47 Messages

21 oct. 2005, 21:42

temoin url jour moi
temoin

sa c le tableau de ma table

donc jexploite pas que mon premier truc jexploite la seul ligne qui elles era changer tu voie?
aide moi comment jpourai faire pour l'image et tout?
hIm It'S good music

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

21 oct. 2005, 22:32

aie aie, je viens de déchiffrer tout ca :wink:

deja met la requete de mise a jour (update) dans un mysql_query(), mieux encore avant ça mettre d'abord dans une variable $sql="UPDATE ...", pour verifier le résultat obtenu en l'affichant puis l'exécuter avec mysql_query().

a quoi te sert $moi (qui je pense devrai etre le mois donc $mois)

sinon quel est le probleme ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 47 Messages

22 oct. 2005, 11:35

enfaite je pensait mettre une condition aussi pour le mois mais je la mettrai pas mais elle me pose pas de difficulter celle la!
<?mysql_pconnect($serveur, $utilisateur , $motDePasse);
mysql_select_db($base);
$infos = mysql_query("SELECT * FROM imgjr WHERE temoin='temoin'");
$infos = mysql_fetch_array($infos);

//exploiter la var tableau pour recuperrer les infos des colones url, jour et moi
$jour = $infos['jour'];
$url = $infos['url'];
$moi = $infos['moi'];

//si le jour est pas identique alors...
if (date('d') != $jour)
{
 $rand = rand (1,2);
if ($rand == 1)
{
$rand1 = rand (1,23);
$dossier = "imggroupe/" ;
}
else
 {
 $rand1 = rand (1,72) ;
 $dossier = "imgville/" ;
 }
 $largeur = 80 ;
 $extension= ".jpg";
 
 
 
 
  UPDATE imgjr SET jour='date('d')', moi='date('m')' url='.$dossier.$rand1.' WHERE temoin='temoin'
  echo "<img align=middle border=1 width=".$largeur." src=\"gallery/".$url.$extension."\">";
 }

else
 {
echo "<img align=middle border=1 width=".$largeur." src=\"gallery/".$url.$extension."\">";
}
 ?>

et quand j'arrive sur ma page sa me dit:
Parse error: parse error, unexpected T_STRING in /var/www/free.fr/2/8/guismoman33/HIM/aleatoire.php on line 37

la ligne 37 c'est:
UPDATE imgjr SET jour='date('d')', moi='date('m')' url='.$dossier.$rand1.' WHERE temoin='temoin'
donc voila je comprend pas pourquoi le mettre dans une variable et tout
hIm It'S good music

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

22 oct. 2005, 13:12

le message d'erreur est tout a fait normal... tu as du texte (Update ...) en plein mileu du code qui ne veut absolument rien dire comme ça.
deja met la requete de mise a jour (update) dans un mysql_query()
Tu l'a fait pour la requete de séléction (SELECT) fait en autant

un peu de documentation sinon sur mysql_query()

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 47 Messages

30 oct. 2005, 13:11

mysql_pconnect($serveur, $utilisateur , $motDePasse);
mysql_select_db($base);
$infos = mysql_query("SELECT * FROM imgjr WHERE temoin='temoin'");
$infos = mysql_fetch_array($infos);

//exploiter la var tableau pour recuperrer les infos des colones url, jour et moi
$jour = $infos['jour'];
$url = $infos['url'];
$moi = $infos['moi'];

//si le jour est pas identique alors...
if (date('d') != $jour)
{
 $rand = rand (1,2);
if ($rand == 1)
{
$rand1 = rand (1,23);
$dossier = "imggroupe/" ;
}
else
 {
 $rand1 = rand (1,72) ;
 $dossier = "imgville/" ;
 }
 $largeur = 80 ;
 $extension= ".jpg";
 
 
 
 
  $infos = mysql_query(UPDATE imgjr SET jour='date('d')', moi='date('m')' url='.$dossier.$rand1.' WHERE temoin='temoin');
  $infos = mysql_fetch_array($infos);
  $url = $infos['url'];
  echo "<img align=middle border=1 width=".$largeur." src=\"gallery/".$url.$extension."\">";
 }

else
 {
echo "<img align=middle border=1 width=".$largeur." src=\"gallery/".$url.$extension."\">";
}
 ?>

voila mon code j'ai mis sa dans un mysql_query() mais sa marche toujours pas


message d'erreur:

Parse error: parse error, unexpected T_STRING in /var/www/sdb/2/8/guismoman33/HIM/aleatoire.php on line 37
hIm It'S good music

Mammouth du PHP | 19672 Messages

30 oct. 2005, 13:15

Normal: le requête SQL est une chaîne de caractères: il faut donc la séparer avec des guillemets :
$infos = mysql_query("UPDATE imgjr SET jour='date('d')', moi='date('m')' url='". $dossier . $rand1 ."' WHERE temoin='temoin'");
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 47 Messages

30 oct. 2005, 13:19

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/sdb/2/8/guismoman33/HIM/aleatoire.php on line 38

il parait que j'ai une erreur maintenant sur cette ligne:
$infos = mysql_fetch_array($infos)
hIm It'S good music

Eléphant du PHP | 55 Messages

30 oct. 2005, 14:54

Normal.
C'est la que ça coince:
$infos = mysql_query(UPDATE imgjr SET jour='date('d')', moi='date('m')' url='.$dossier.$rand1.' WHERE temoin='temoin');
  $infos = mysql_fetch_array($infos);
  $url = $infos['url']; 
UPDATE sert a mettre a jour les données, et ne renvoie que le nombre d'enregistrements modifiés. Il est donc impossible qu'il s'y trouve un champ 'url' dedans.
Mais qu'importe..

Mammouth du PHP | 19672 Messages

30 oct. 2005, 14:55

Et si tu réfléchissais trente secondes au lieu de sauter sur le forum au moindre warning ???

Fais afficher ta requête avec echo(), copie la requête et teste la directement dans phpMyAdmin : tu auras un retour d'information ou un message d'erreur. Corrige dans ce cas ta requête SQL pour obtenir le résultat voulu.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 47 Messages

30 oct. 2005, 15:11

je voit toujours pas ou sa bloque désolée d'être un débutant
hIm It'S good music

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

30 oct. 2005, 16:35

fait tout simplement ceci
$sql="UPDATE imgjr SET jour='date('d')', moi='date('m')', url='". $dossier . $rand1 ."' WHERE temoin='temoin'";
echo $sql; // regarde ce qui est affiché compare a ce que tu voudrai avoir et arrange en fonction de cela 
$infos = mysql_query($sql);
au passage j'ai ajouté une virgule entre ".. date('m')', url ..."

De plus on ne fait effectivement pas de mysql_fetch_array() sur une requete de type UPDATE, l'exécution (mysql_query() )suffit

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute