IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

goto fait planter le script


Sujet :

Langage PHP

  1. #21
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 103
    Points : 4 449
    Points
    4 449
    Par défaut
    ce qui compte c'est l'intégrité de la base de donnée

    si fichier est supprimé, tu ne vas pas pouvoir maj la base de donnée (present=false)
    si fichier present sur disque mais pas dans bd, tu as pas d'infos pour inserer dans bd

    ---------
    mais 1 fois par mois, scan du disque vers bd pour voir si + de film sur disque que sur bd
    $moi= ( !== ) ? : ;

  2. #22
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 099
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 099
    Points : 8 208
    Points
    8 208
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par papajoker Voir le message
    ce qui compte c'est l'intégrité de la base de donnée
    Oui, mais pas que.

    si fichier est supprimé, tu ne vas pas pouvoir maj la base de donnée (present=false)
    si fichier present sur disque mais pas dans bd, tu a pas infos pour inserer dans bd
    Je ne comprends pas le problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $videos = (array)liste_des_fichiers('\\lesvidéos') ;
    un select * from film
    puis boucle sur résultat select {
     $present= in_array($datarequete, $videos) ;
     if ($present != $daterequete[present]) UPTATE film ...
    }
    => On ne tape pas inutilement sur le DD
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #23
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 099
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 099
    Points : 8 208
    Points
    8 208
    Billets dans le blog
    17
    Par défaut
    mais 1 fois par mois, scan du disque vers bd pour voir si + de film sur disque que sur bd
    Yep, ça s'impose.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  4. #24
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 103
    Points : 4 449
    Points
    4 449
    Par défaut
    ok seb , en gros tu mets en cache la liste des fichiers

    mais 1000 readdir() ou 1000 file_exists() ...

    mais on vas bien de la bd vers le disque dur

    je comprenais que tu boucles sur $videos
    $moi= ( !== ) ? : ;

  5. #25
    Membre actif

    Homme Profil pro
    Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Inscrit en
    Juillet 2006
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 404
    Points : 241
    Points
    241
    Par défaut
    je reviens avec mes goto, désolé.

    j'ai utilisé les conseils précédents pour le dernier fichier pas de soucis ça fonctionne.
    Mais pour le
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM film WHERE present=1 ORDER BY rand() LIMIT 1
    J'ai une erreur mysql
    Incorrect key file for table '/tmp/#sql_6a3_0.MYI'; try to repair it
    qui après avoir fouillé un peu cela semble être la conséquence d'un manque de place sur le disque pour créer la table temporaire.
    J'ai donc remis une couche avec mes goto
    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
    //affichage video au hasard
    retour:
    $num = mt_rand(1, $last);
        $num = round($num, -1);
    $sqlrand = "SELECT * FROM films WHERE master=$num";
    $result = mysql_query($sqlrand) OR DIE("ERREUR fichier rand " . mysql_error());
    $randarray=mysql_fetch_array($result);
    if($randarray['present']==1){
    }
     else {
        goto retour;
    }
     
    $idrand = $randarray['idfilm'];
    $rand = $randarray['master'];
    $titrerand = $randarray['titre1'];
    $nomrand = mysql_real_escape_string($randarray['nom_dossier']);
    En local sur MAMP ça fonctionne sur le serveur, ça a fonctionné une fois et depuis plus rien
    page blanche

  6. #26
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 103
    Points : 4 449
    Points
    4 449
    Par défaut
    Je te saute ta boucle avec plaisir, mais je doute que cela va résoudre ton problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    //affichage video au hasard
    do {
        $num = mt_rand(1, $last);
        $num = round($num); // -1 ???? pas ca le plantage ??????
        $sqlrand = "SELECT * FROM films WHERE master=$num AND present=1";
        $result = mysql_query($sqlrand) OR DIE("ERREUR fichier rand " . mysql_error());
    } while (mysql_num_rows($result)<1);
    $randarray=mysql_fetch_array($result);
    $moi= ( !== ) ? : ;

  7. #27
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 382
    Points : 10 410
    Points
    10 410
    Par défaut
    Citation Envoyé par rvm31 Voir le message
    je reviens avec mes goto, désolé.

    j'ai utilisé les conseils précédents pour le dernier fichier pas de soucis ça fonctionne.
    Mais pour le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM film WHERE present=1 ORDER BY rand() LIMIT 1
    J'ai une erreur mysql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Incorrect key file for table '/tmp/#sql_6a3_0.MYI'; try to repair it
    qui après avoir fouillé un peu cela semble être la conséquence d'un manque de place sur le disque pour créer la table temporaire
    Ta table est énorme ? Bah tu peux bien faire une recherche aléatoire autrement, par exemple en étoffant ta clause where de quelques AND dont la valeur serait pseudo aléatoire et éventuellement définis par une précédente requête, enfin un truc dans le genre (faudrait connaître les champs de ta table pour dire si c'est facilement réalisable).

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 6
    Dernier message: 29/07/2010, 10h49
  2. include qui fait planter un script
    Par DiverSIG dans le forum Langage
    Réponses: 9
    Dernier message: 27/08/2009, 14h03
  3. [AJAX] Script qui fait planter IE6
    Par bassimgouzi dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/08/2008, 19h19
  4. Réponses: 12
    Dernier message: 16/03/2004, 14h21
  5. fonction qui en fait planter une autre
    Par ickis dans le forum C
    Réponses: 5
    Dernier message: 18/08/2003, 21h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo