image aléatoire par jour

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : image aléatoire par jour

par Pieterjan » 30 oct. 2005, 22:43

ici:
$sql="UPDATE imgjr SET jour='date('d')', moi='date('m')', url='". $dossier . $rand1 ."' WHERE temoin='temoin'"; 
si tu regardes bien, à chaque fois, tu dis a MySQL d'enregistrer 'date('d')', comme une valeur en tant que tel (ce qui ne correspond bien sur jamais a un jour ou a un mois). Pour éviter ces problèmes, assignes le jour et le mois à une variable, que tu intègres ensuite dans ta base de données.
voici, dans ta version, un corrigé:
$sql="UPDATE imgjr SET jour='".date('d')."', moi='".date('m')."', url='". $dossier . $rand1 ."' WHERE temoin='temoin'"; 
Ou dans une écriture plus compréhensible:
$jour=date('d');
$mois=date('m');
$lien=$dossier.$rand1;

$sql="UPDATE imgjr SET jour='$jour', moi='$mois', url='$lien' WHERE temoin='temoin'";
Ca sert a rien de vouloir faire compliqué trop vite
:roll:

par guismoman33 » 30 oct. 2005, 21:25

$largeur = 80 ;
$extension= ".jpg";


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/" ;
 }
   $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); 
  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."\">";
}
 ?>
alors 2 trucs vont pas :

donc comme prévue s'affiche $infos mais à chaque fois que je met actualiser sa change alors que sa devrait pas changer, à part si sa le fait automatiquement et que sa joue pas sur l'affichage journalière de l'image sa je le c'est pas!

2ieme chose qui va pas
rien ne s'enregistre dans ma table et une image avec une croix dedans s'affiche mais il n'y pas l'$url qui s'affiche!
je crois que le truc qui fait que sa va pas c'est l'enregistrement dans ma table

par Truc » 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

par guismoman33 » 30 oct. 2005, 15:11

je voit toujours pas ou sa bloque désolée d'être un débutant

par Cyrano » 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.

par Pieterjan » 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.

par guismoman33 » 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)

par Cyrano » 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'");

par guismoman33 » 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

par Truc » 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()

par guismoman33 » 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

par Truc » 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 ?

par guismoman33 » 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?

par Truc » 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); 

par guismoman33 » 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