OVH Cloud OVH Cloud

Probleme de exit() ou die()

4 réponses
Avatar
[aicfr]
Bonjour,

Voici tt d'abord mon code:


<?PHP
$maintenant = time();
$resu=mysql_query("select id, DATE_FORMAT(date,'%d/%m/%Y'), libele from
sortie");
while($resu1=mysql_fetch_row($resu))
{

$jour = substr($resu1[1],0,2);
$mois = substr($resu1[1],3,2);
$annee = substr($resu1[1],6,4);
$timestamp = mktime(0,0,0,$mois,$jour,$annee);
$ecart_secondes = $timestamp-$maintenant;

$signe = substr($ecart_secondes,0,1);
print("<table width=92% border=0 cellspacing=0 cellpadding=0
align=center>");
if($signe <> "-"){
print("<tr><td>$resu1[1]: $resu1[2]</tr></td>");
die();
}
print("</table>");
}
mysql_close($connexion);
?>

Ce script permet de trouver la prochaine sortie d'une harmonie.
J'ai deux probleme:

- Comment peut on determiner si un nombre est negatif autrement que
par:
$signe = substr($ecart_secondes,0,1);
if($signe <> "-"){

- Et mon autre probleme: Je doit quitter le if et le while des que je
trouve le 1er nombre positif. Or avec die() ou exit(), cela me fait quitter
le script en en entier. Y a t il une solution ?

Cordialement,
aicfr

4 réponses

Avatar
Paul Delannoy
[aicfr] a écrit:
Bonjour,

[..zappe]


Ce script permet de trouver la prochaine sortie d'une harmonie.
J'ai deux probleme:

- Comment peut on determiner si un nombre est negatif autrement que
par:
$signe = substr($ecart_secondes,0,1);
if($signe <> "-"){


comme PHP sait pa smal de chose sur les types, ceci doit le faire :
if ($ecart_secondes < 0) {...

- Et mon autre probleme: Je doit quitter le if et le while des que je
trouve le 1er nombre positif. Or avec die() ou exit(), cela me fait quitter
le script en en entier. Y a t il une solution ?


break;

Avatar
Guillaume Bouchard
[aicfr] wrote:
- Comment peut on determiner si un nombre est negatif


if($nombre < 0 ?

- Et mon autre probleme: Je doit quitter le if et le while des que je
trouve le 1er nombre positif. Or avec die() ou exit(), cela me fait quitter
le script en en entier. Y a t il une solution ?


break;
www.php.net/break;

--
Guillaume.

Avatar
Stephane Thomas
[aicfr] wrote:
Bonjour,


- Comment peut on determiner si un nombre est negatif autrement que
par:
$signe = substr($ecart_secondes,0,1);
if($signe <> "-"){



C'est tordu...

if ($ecart_second < 0)

- Et mon autre probleme: Je doit quitter le if et le while des que je
trouve le 1er nombre positif. Or avec die() ou exit(), cela me fait quitter
le script en en entier. Y a t il une solution ?




http://fr2.php.net/manual/fr/control-structures.break.php



Stef

Avatar
dwojylac-nospam
[aicfr] wrote:

Bonjour,

Voici tt d'abord mon code:


<?PHP
$maintenant = time();
$resu=mysql_query("select id, DATE_FORMAT(date,'%d/%m/%Y'), libele from
sortie");
while($resu1=mysql_fetch_row($resu))
{
......

}
mysql_close($connexion);
?>

Ce script permet de trouver la prochaine sortie d'une harmonie.
J'ai deux probleme:

- Et mon autre probleme: Je doit quitter le if et le while des que je
trouve le 1er nombre positif. Or avec die() ou exit(), cela me fait quitter
le script en en entier. Y a t il une solution ?

Cordialement,
aicfr


Généralement c'est un pb d'algorithmique, et de clause d'arret d'une
boucle. Moi je travaillerais soit sur la requète, soit sur le while. Je
pense que exit, die et autres ne sont a utiliser qu'en cas d'erreur

sur la requete, tu dois pouvoir formater ta date $maintenant
$maintenantÚte("dmY"); dans le meme que ce qui est stocké dans ta
table ou un autre
et mettre une clause where sur le select
$resu=mysql_query("select id, DATE_FORMAT(date,'%d/%m/%Y') as ladate,
libele from sortie where ladate<$maintenant");
et même peut-être rajouter "order by" pour pouvoir avoir la date la plus
proche de maintenant

autre possibilité pas testée mais qui doit marcher, faire la boucle tant
que l'écart est positif

$ecart_secondes = 1;
while($resu1=mysql_fetch_row($resu) or $ecart_secondes >= 0){
...
--
Dominique
http://wojylac.free.fr