Inssertions d'images hors bases de données
Roulieuh
-
thunder413 Messages postés 167 Date d'inscription Statut Membre Dernière intervention -
thunder413 Messages postés 167 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis en train de réaliser un projet informatique pour mon école. Je suis débutante totalement dans le monde PHP myadmin et je ne trouves pas de réponse assez explicite à mon problème. En fait j'ai une base de donnée d'élève avec Non prénom, classe ... Et j'aimerais rajouter à chacun leur photo pour que quand dans le programme php je fasse l'appelle des données la photo apparaisse. Quand je rentre les identifiants d'un des élèves, son nom prénom classe apparait bien, mais pas la photo... J'ai vu que le plus simple pour ne pas surcharger la base de donnée est de mettre un lien vers l'image mais je ne sais pas du tout comment faire, pour l'instant j'ai créé en plus de nom classe, et les iD propre à l'élevé, image en varchar (255) et j'ai mis ./images/DUMASg.jpg comme valeur pour mon premier élève. DUMASg.jpg étant le nom de la photo que j'ai stocké dans un dossier images sur filezila. J'ai mis un
<p id="ficheEleve"> <?php echo ($donnees[0]." ".$donnees[1]); ?> <br/>
<?php echo $donnees[2]; ?> <br/> <br/>
<img src="<? echo $donnees["image"]; ?>" alt="DUMASg" />
Modules : </p>
Comme code, mais sur ma page internet plus rien ne s'affiche à par les entêtes et autres de fond.. Je pense ne pas avoir réellement saisie ce qu'il fallait faire.. Un petit coup de main serait la bienvenu :)
Merci d'avance.
je suis en train de réaliser un projet informatique pour mon école. Je suis débutante totalement dans le monde PHP myadmin et je ne trouves pas de réponse assez explicite à mon problème. En fait j'ai une base de donnée d'élève avec Non prénom, classe ... Et j'aimerais rajouter à chacun leur photo pour que quand dans le programme php je fasse l'appelle des données la photo apparaisse. Quand je rentre les identifiants d'un des élèves, son nom prénom classe apparait bien, mais pas la photo... J'ai vu que le plus simple pour ne pas surcharger la base de donnée est de mettre un lien vers l'image mais je ne sais pas du tout comment faire, pour l'instant j'ai créé en plus de nom classe, et les iD propre à l'élevé, image en varchar (255) et j'ai mis ./images/DUMASg.jpg comme valeur pour mon premier élève. DUMASg.jpg étant le nom de la photo que j'ai stocké dans un dossier images sur filezila. J'ai mis un
<p id="ficheEleve"> <?php echo ($donnees[0]." ".$donnees[1]); ?> <br/>
<?php echo $donnees[2]; ?> <br/> <br/>
<img src="<? echo $donnees["image"]; ?>" alt="DUMASg" />
Modules : </p>
Comme code, mais sur ma page internet plus rien ne s'affiche à par les entêtes et autres de fond.. Je pense ne pas avoir réellement saisie ce qu'il fallait faire.. Un petit coup de main serait la bienvenu :)
Merci d'avance.
A voir également:
- Inssertions d'images hors bases de données
- Fuite données maif - Guide
- Apparaitre hors ligne instagram - Guide
- Gps hors ligne - Guide
- Supprimer les données de navigation - Guide
- Fenêtre hors écran windows 11 - Guide
15 réponses
Salut,
Ta technique est pas mauvaise. Je te conseil d'enregistrer la photo de l'élève en lui mettant comme nom l'id de l'élève, ce qui donnera part exemple 1.jpg pour le premier élève de la BDD.
Ensuite pour générer cette photo, tu doit juste faire un <img src="./images/<?php echo $donnees["idEleve"].".jpg"; ?>" />
Bonne chance ;)
Ta technique est pas mauvaise. Je te conseil d'enregistrer la photo de l'élève en lui mettant comme nom l'id de l'élève, ce qui donnera part exemple 1.jpg pour le premier élève de la BDD.
Ensuite pour générer cette photo, tu doit juste faire un <img src="./images/<?php echo $donnees["idEleve"].".jpg"; ?>" />
Bonne chance ;)
salut,
il se peut que ta requete ne s'est pas bien executer tu peut essayer de mettre
mysql_query("ta requete")or die(mysql_error()) sinon si c'est deja fait poste la partie executant la requete ensuite on vera
CORDIALEMENT
il se peut que ta requete ne s'est pas bien executer tu peut essayer de mettre
mysql_query("ta requete")or die(mysql_error()) sinon si c'est deja fait poste la partie executant la requete ensuite on vera
CORDIALEMENT
Merci d'avoir répondu aussi rapidement, mais ça ne fonctionne toujours pas. J'ai fait ceci :
mysql_connect($host, $user, $passwd) or die("erreur de connexion au serveur");
mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");
$fiche = mysql_query("SELECT ETUDIANT.NOM, ETUDIANT.PRENOM, GROUPE_TP.NOM FROM CLASSE JOIN GROUPE_TD ON CLASSE.ID_CLASSE = GROUPE_TD.ID_CLASSE JOIN GROUPE_TP ON GROUPE_TP.ID_TD = GROUPE_TD.ID_TD JOIN ETUDIANT ON ETUDIANT.ID_TP = GROUPE_TP.ID_TP WHERE ID_ETUDIANT ='".$_SESSION['identifiant']."'");
$donnees = mysql_fetch_row($fiche);
?>
<p id="ficheEleve"> <?php echo ($donnees[0]." ".$donnees[1]); ?> <br/>
<?php echo $donnees[2]; ?> <br/> <br/>
<img src="./images/<?php echo $donnees["idETUDIANT"].".jpg"; ?>" />
Modules : </p>
Tout s'affiche de nouveau, mais toujours pas l'image...
mysql_connect($host, $user, $passwd) or die("erreur de connexion au serveur");
mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");
$fiche = mysql_query("SELECT ETUDIANT.NOM, ETUDIANT.PRENOM, GROUPE_TP.NOM FROM CLASSE JOIN GROUPE_TD ON CLASSE.ID_CLASSE = GROUPE_TD.ID_CLASSE JOIN GROUPE_TP ON GROUPE_TP.ID_TD = GROUPE_TD.ID_TD JOIN ETUDIANT ON ETUDIANT.ID_TP = GROUPE_TP.ID_TP WHERE ID_ETUDIANT ='".$_SESSION['identifiant']."'");
$donnees = mysql_fetch_row($fiche);
?>
<p id="ficheEleve"> <?php echo ($donnees[0]." ".$donnees[1]); ?> <br/>
<?php echo $donnees[2]; ?> <br/> <br/>
<img src="./images/<?php echo $donnees["idETUDIANT"].".jpg"; ?>" />
Modules : </p>
Tout s'affiche de nouveau, mais toujours pas l'image...
C'est bon ça marche sans problèmes :D Merci beaucoup! Par contre j'aurais une autre question, voila sur le site que je créais j'ai besoin de récupérer l'heure donc je prends celle du serveur qui est cadré sur Berlin (j'ai vérifié). Le seul hic, c'est qu'il ne prend pas en compte l'heure d'été... Avez vous une idée de comment je pourrais faire automatiquement le changement? J'ai lu beaucoup de choses, mais il y a surtout de la doc sur NTP et si j'ai bien compris ça permet de régler l'heure d'une machine pas un serveur...
Merci d'avance
Merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
tu peut essayer gmdate() ceci
<?php $timestamp = time()+date("Z"); echo gmdate("Y/m/d H:i:s",$timestamp); ?> <code> date("Z") retourne le décalage horaire et gmdate similaire a date sauf quel retourne le temps en GMT ou regarde du cote de <code>date_default_timezone_set('Europe/Paris');
J'ai déjà essayé avec date_default_timezone_set('Europe/Paris'); ça ne prend pas en compte l'heure d'été!
Par contre j'ai testé l'autre solution et je pense ne pas trop avoir compris son fonctionnement parce que ça ne fait pas ce que ça devrait faire.. Soit j'ai la même heure (donc il manque toujours 1H..) Soit ça m'enlève carrément 2h..
Je fais des tests encore.. C'est pas concluant pour l'instant! J'ai trouvé un code permettant de regarder dans quel interval de dâte on est, il suffirait de l'adapter en rajouter un plus 1 à l'heure dans la période d'heure d'été, mais il y a surement plus simple...
voici le code que j'ai trouvé :
<?php
/**
* Checks wether a date is between an interval
*
* Usage:
*
* // check if today is older than 2008/12/31
* var_dump(currentDayIsInInterval('2008/12/31'));
* // check if today is younger than 2008/12/31
* var_dump(currentDayIsInInterval(null,'2008/12/31'));
* // check if today is between 2008/12/01 and 2008/12/31
* var_dump(currentDayIsInInterval('2008/12/01','2008/12/31'));
*
* Will trigger errors if date is in wrong format, notices if $begin > $end
*
* @param string $begin Date string as YYYY/mm/dd
* @param string $end Date string as YYYY/mm/dd
* @return bool
*/
function currentDayIsInInterval($begin = '',$end = '')
{
$preg_exp = '"[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]"';
$preg_error = 'Wrong parameter passed to function '.__FUNCTION__.' : Invalide date
format. Please use YYYY/mm/dd.';
$interval_error = 'First parameter in '.__FUNCTION__.' should be smaller than
second.';
if(empty($begin))
{
$begin = 0;
}
else
{
if(preg_match($preg_exp,$begin))
{
$begin = (int)str_replace('/','',$begin);
}
else
{
trigger_error($preg_error,E_USER_ERROR);
}
}
if(empty($end))
{
$end = 99999999;
}
else
{
if(preg_match($preg_exp,$end))
{
$end = (int)str_replace('/','',$end);
}
else
{
trigger_error($preg_error,E_USER_ERROR);
}
}
if($end < $begin)
{
trigger_error($interval_error,E_USER_WARNING);
}
$time = time();
$now = (int)(date('Y',$time).date('m',$time).date('j',$time));
if($now > $end or $now < $begin)
{
return false;
}
return true;
}
?>
Si une autre idée te viens elle est la bienvenue :)
Miicii
Par contre j'ai testé l'autre solution et je pense ne pas trop avoir compris son fonctionnement parce que ça ne fait pas ce que ça devrait faire.. Soit j'ai la même heure (donc il manque toujours 1H..) Soit ça m'enlève carrément 2h..
Je fais des tests encore.. C'est pas concluant pour l'instant! J'ai trouvé un code permettant de regarder dans quel interval de dâte on est, il suffirait de l'adapter en rajouter un plus 1 à l'heure dans la période d'heure d'été, mais il y a surement plus simple...
voici le code que j'ai trouvé :
<?php
/**
* Checks wether a date is between an interval
*
* Usage:
*
* // check if today is older than 2008/12/31
* var_dump(currentDayIsInInterval('2008/12/31'));
* // check if today is younger than 2008/12/31
* var_dump(currentDayIsInInterval(null,'2008/12/31'));
* // check if today is between 2008/12/01 and 2008/12/31
* var_dump(currentDayIsInInterval('2008/12/01','2008/12/31'));
*
* Will trigger errors if date is in wrong format, notices if $begin > $end
*
* @param string $begin Date string as YYYY/mm/dd
* @param string $end Date string as YYYY/mm/dd
* @return bool
*/
function currentDayIsInInterval($begin = '',$end = '')
{
$preg_exp = '"[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]"';
$preg_error = 'Wrong parameter passed to function '.__FUNCTION__.' : Invalide date
format. Please use YYYY/mm/dd.';
$interval_error = 'First parameter in '.__FUNCTION__.' should be smaller than
second.';
if(empty($begin))
{
$begin = 0;
}
else
{
if(preg_match($preg_exp,$begin))
{
$begin = (int)str_replace('/','',$begin);
}
else
{
trigger_error($preg_error,E_USER_ERROR);
}
}
if(empty($end))
{
$end = 99999999;
}
else
{
if(preg_match($preg_exp,$end))
{
$end = (int)str_replace('/','',$end);
}
else
{
trigger_error($preg_error,E_USER_ERROR);
}
}
if($end < $begin)
{
trigger_error($interval_error,E_USER_WARNING);
}
$time = time();
$now = (int)(date('Y',$time).date('m',$time).date('j',$time));
if($now > $end or $now < $begin)
{
return false;
}
return true;
}
?>
Si une autre idée te viens elle est la bienvenue :)
Miicii
bonjour voila plus simple mais tu doit disposer d'au moins de php 5.1
<?php $date = new DateTime("now"); // 'now' n'est pas nécéssaire, c'est la valeur par défaut echo $date->format(DateTime::ISO8601).'<br>'; //l'heure du fuseau horraire actuel $tz = new DateTimeZone('Europe/Paris');//on passe sur paris $date->setTimezone($tz);//on definit le zone paris //si ceci ne marche pas decommente cette ligne $date->modify("+2 hour"); echo $date->format("d/m/y H:i"); // 2008-05-27T14:30:46-0400 ?>
Sinon j'ai essayé comme cela dans un premier temps afin de juste rajouter 1h instantanément, mais cela ne fonctionne pas non plus.. :
<?php
function sql_date_shift($date, $shift)
{
return date("d-m-Y H:i:s" , strtotime($shift, strtotime($date)));
}
$date = date("d-m-Y");
$shift "+1 hours";
echo sql_date_shift($date, $shift);
?>
<?php
function sql_date_shift($date, $shift)
{
return date("d-m-Y H:i:s" , strtotime($shift, strtotime($date)));
}
$date = date("d-m-Y");
$shift "+1 hours";
echo sql_date_shift($date, $shift);
?>
tape dans une page.php phpinfo(); pour savoir quel version de php tu as
sinon tu peut decommenter la ligne que j'ai preciser dans la code
sinon tu peut decommenter la ligne que j'ai preciser dans la code
en tous cas c'est pas logique moi avec ca
j'ai ca
<?php $date = new DateTime("now"); // 'now' n'est pas nécéssaire, c'est la valeur par défaut echo $date->format(DateTime::ISO8601).'<br>'; //l'heure du fuseau horraire actuel $tz = new DateTimeZone('Europe/Paris');//on passe sur paris $date->setTimezone($tz);//on definit le zone paris $date->modify("+2 hour"); echo $date->format("d/m/y H:i"); // 2008-05-27T14:30:46-0400 ?>
j'ai ca
2010-06-03T09:49:26+0200 03/06/10 11:49
sinon il se peut que la version php5 n'est pas activer tu peut creer un fichier .htaccess et tu y met AddHandler x-httpd-php5 .php
AddType application/x-httpd-php5 .php
tu doit mettre le fichier .htaccess a la racine de ton site
AddType application/x-httpd-php5 .php
tu doit mettre le fichier .htaccess a la racine de ton site
Denouveau moi XD
Ben ça ne marche toujours pas.. Dsl pour le temps de réponse, mais j'ai dû m'occuper d'un autre projet en meca... Bref j'ai essayé un autre code :
<?php
$france=1;
function dimanche($date)
while (date("D", $date ) !='Sun')
{
$date = mktime(0,0,0,date("m",$date), date("d",$date)-1, date("Y",$date));
}
return $date;
}
function ete($decalage)
{
$debut = dimanche(mktime(0,0,0,03,31,date("Y"))); // 31-03-$annee
$fin = dimanche(mktime(0,0,0,10,31,date("Y"))); // 31-10-$annee
if (time()>=mktime(2+$decalage,0,0,date("m",$debut), date("d",$debut), date("Y",$debut)))
{
if (time()<mktime(3+$decalage,0,0,date("m",$fin), date("d",$fin), date("Y",$fin)))
{
$decalage+=1;
}
}
return $decalage;
}
$france=ete($france);
echo "Il est ";
echo gmdate("H:i", time() + $france*3600);
echo " en France";
?>
Il devrait marché et pourtant, ... il me dit qu'il veut un date_default_timezone_set(''); or quand je lui mets apparemment le code n'est absolument pas pris en compte...
Une idée?
Ben ça ne marche toujours pas.. Dsl pour le temps de réponse, mais j'ai dû m'occuper d'un autre projet en meca... Bref j'ai essayé un autre code :
<?php
$france=1;
function dimanche($date)
while (date("D", $date ) !='Sun')
{
$date = mktime(0,0,0,date("m",$date), date("d",$date)-1, date("Y",$date));
}
return $date;
}
function ete($decalage)
{
$debut = dimanche(mktime(0,0,0,03,31,date("Y"))); // 31-03-$annee
$fin = dimanche(mktime(0,0,0,10,31,date("Y"))); // 31-10-$annee
if (time()>=mktime(2+$decalage,0,0,date("m",$debut), date("d",$debut), date("Y",$debut)))
{
if (time()<mktime(3+$decalage,0,0,date("m",$fin), date("d",$fin), date("Y",$fin)))
{
$decalage+=1;
}
}
return $decalage;
}
$france=ete($france);
echo "Il est ";
echo gmdate("H:i", time() + $france*3600);
echo " en France";
?>
Il devrait marché et pourtant, ... il me dit qu'il veut un date_default_timezone_set(''); or quand je lui mets apparemment le code n'est absolument pas pris en compte...
Une idée?
salut,
j'ai tester et ca marche ton problème venait que tu forcer ton script a afficher la date GMT avec gmdate() alors que tu doit seulement utiliser date();
Note: quelque soit le timestamp passer a gmdate() celle-ci retourne toujours la date/heure GMT par apport a celui-ci
j'espere que c'est résolu :)
CORDIALEMENT
j'ai tester et ca marche ton problème venait que tu forcer ton script a afficher la date GMT avec gmdate() alors que tu doit seulement utiliser date();
Note: quelque soit le timestamp passer a gmdate() celle-ci retourne toujours la date/heure GMT par apport a celui-ci
j'espere que c'est résolu :)
CORDIALEMENT
Effectivement ça fonctionne, l'heure s'affiche mais cette fois ci avec un décalage horaire de 2h au lieu de 1.. ça n'en finis plus.. XD
Merci en tout les cas pour la patience et tes réponses :)
Merci en tout les cas pour la patience et tes réponses :)
Je pense d'ailleurs savoir pourquoi ^^
Le fuseau horaire avec la version PH5.1 prend en compte le décalage d'été si j'ai bien compris ce que j'ai lu.. Au final pas besoin de mettre tout ce code, mais juste :
<?php
date_default_timezone_set('Europe/Paris');
$france=1;
echo "Il est ";
echo date("H:i", time() + $france*3600);
echo " en France";
?>
Le fuseau horaire avec la version PH5.1 prend en compte le décalage d'été si j'ai bien compris ce que j'ai lu.. Au final pas besoin de mettre tout ce code, mais juste :
<?php
date_default_timezone_set('Europe/Paris');
$france=1;
echo "Il est ";
echo date("H:i", time() + $france*3600);
echo " en France";
?>