Bonjour
J'utilise des goto pour relancer un script s'il n'y a pas de résultats.
Cela fonctionnait mais aujourd'hui alors que je ne me rappelle pas avoir fait une modif, la page plante. Si je supprime les goto le reste fonctionne. Je ne comprend pas ou est l'erreur. merci pour vos lumières.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98 //affichage d'une vidéo aléatoire $req2 = "select master from films order by master desc limit 1"; $res2 = mysql_query($req2) or die(mysql_error()); while ($max2 = mysql_fetch_assoc($res2)) { $Nmax = $max2['master']; } cherche_N: if (empty($numfiche)) { $num = mt_rand(1, $Nmax); $num = round($num, -1); } else $num = $numfiche; //on ouvre le repertoire des videos $dossiernom = opendir('DB_videos'); //on lit chaque dossier while ($dossier = readdir($dossiernom)) { //on ne traite pas les . et .. if (($dossier != '.') && ($dossier != '..') && ($dossier != '.DS_Store')) { // on ne garde que la partie M123 preg_match('#^[A-Z][0-9]{2,}#i', $dossier, $matches); //si le N° de master du dossier est égal au N° de master de la fiche affectation du dossier video if ($matches[0] == 'M' . $num) { $dossiervideo = 'DB_videos/' . $dossier; $lienvideo = "./$dossiervideo"; } } } if (is_dir($lienvideo)) { $sqlselectfilm = "SELECT *FROM films where master='$num'"; $res3 = mysql_query($sqlselectfilm) or die(mysql_error()); while ($film = mysql_fetch_assoc($res3)) { $idfilm = $film['idfilm']; $titre = $film['titre1']; $dir = opendir($dossiervideo); while ($file = readdir($dir)) { if ($file != "'.'" && $file != '..' && !is_dir($dossiervideo . '/' . $file)) { $filehasard = $file; } } IF (strlen($titre) > 25){ $points1 = "..."; } $filmhasard = "<br><a href='affich-master.php?fiche=$idfilm' title='$titre'> M" . $num . "-" . substr($titre, 0, 25) . "$points1 </A> "; } } else goto cherche_N; derniermaster: // verification du plus grand N° //on ouvre le repertoire des videos $dossiernom2 = opendir('DB_videos'); //on lit chaque dossier while ($lastdossier = readdir($dossiernom2)) { //on ne traite pas les . et .. if (($lastdossier != '.') && ($lastdossier != '..') && ($lastdossier != '.DS_Store')) { // on ne garde que la partie M123 preg_match('#^[A-Z][0-9]{2,}#i', $lastdossier, $lefilm); //si le N° de master du dossier est égal au N° de master de la fiche affectation du dossier video if ($lefilm[0] == 'M' . $Nmax) { $dossiervideo2 = 'DB_videos/' . $lastdossier; $lienvideo2 = "./$dossiervideo2/"; } } } if (is_dir($lienvideo2)) { $sqlselectfilm = "SELECT *FROM films where master='$Nmax'"; $res3 = mysql_query($sqlselectfilm) or die(mysql_error()); while ($film = mysql_fetch_assoc($res3)) { $idlastfilm = $film['idfilm']; $lasttitre = $film['titre1']; $dir = opendir($dossiervideo2); while ($lastfile = readdir($dir)) { if ($lastfile != "'.'" && $lastfile != '..' && !is_dir($dossiervideo . '/' . $lastfile)) { $dernierfichier = $lastfile; } } IF (strlen($lasttitre) >= 25){ $points2 = "..."; } $dernierfilm = "<br><a href='affich-master.php?fiche=$idlastfilm'title='$lasttitre'> M" . $Nmax . "-" . substr($lasttitre, 1,25) . "$points2</A>"; } } else { $Nmax = $Nmax - 1; goto derniermaster; }
Partager