Page 1 sur 2

image aléatoire par jour

Posté : 20 oct. 2005, 20:27
par guismoman33
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

Posté : 20 oct. 2005, 22:54
par Invité
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

Posté : 21 oct. 2005, 21:02
par guismoman33
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

Posté : 21 oct. 2005, 21:34
par Truc
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); 

Posté : 21 oct. 2005, 21:42
par guismoman33
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?

Posté : 21 oct. 2005, 22:32
par Truc
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 ?

Posté : 22 oct. 2005, 11:35
par guismoman33
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

Posté : 22 oct. 2005, 13:12
par Truc
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()

Posté : 30 oct. 2005, 13:11
par guismoman33
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

Posté : 30 oct. 2005, 13:15
par Cyrano
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'");

Posté : 30 oct. 2005, 13:19
par guismoman33
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)

Posté : 30 oct. 2005, 14:54
par Pieterjan
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.

Posté : 30 oct. 2005, 14:55
par Cyrano
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.

Posté : 30 oct. 2005, 15:11
par guismoman33
je voit toujours pas ou sa bloque désolée d'être un débutant

Posté : 30 oct. 2005, 16:35
par Truc
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