PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 07-03-2010 13:52:57

Gamika
Membre
Inscription : 07-03-2010
Messages : 6

Problème lors de mouvement de données

Bonjour,

je suis ultra noob en matière de php/mysql pour dire ya une semaine je ne savais pas que sa existait.

Tout ça pour dire que j'ai plus ou moins écrit ce script je dis "plus ou moins" parce que j'ai pas tout écrit (j'ai tout écrit sauf la fonction), bref j'ai un problème, ben sa marche pas je sais pas pourquoi transfert rien dans ma base de donnée sa inscrit erreur 2 :colere2: .

Je sais que je que je fait est à la limite du légal mais bon si c'est pas moi qui le fait sa sera un autre big_smile.

je vois pas trop ou est l'erreur ... help please smile

voici mon code :

<?php
extract($_POST);

function allocine($allocine)
{
$absent = Array(
'titre_film' => 'inconnu',
'realisateur' => 'inconnu',
'acteur' => 'inconnu',
'long_metrage' => 'inconnu',
'synopsis' => 'inconnu',
'affiche' => './img/image_introuvable_films.jpg',
'duree' => 'inconnue',
'titre_vo' => 'inconnu',
'sortie_cinema' => 'inconnue',
'age' => 'inconnu',
'annee_de_production' => 'inconnue'
);


$recup = file_get_contents('http://www.allocine.fr/film/fichefilm_gen_cfilm='.$allocine.'.html');


// on récupère le titre
 preg_match_all('#<div class="titlebar">\s*<h1>(.*)</h1>.*</div>#isU', $recup, $titre_film);
 $sortie['titre_film'] = (empty($titre_film)) ? $absent['titre_film'] : utf8_decode(trim($titre_film[1][0]));


// on récupère le nom du/des réalisateur(s)
preg_match('#R[^"]+alis[^"]+ par <span class="bold">(.*?)</span>#is', $recup, $realisateur);
$sortie['realisateur'] = (empty($realisateur)) ? $absent['realisateur'] : utf8_decode(trim(str_replace("'", '"', $realisateur[1])));
$sortie['realisateur'] = str_replace('<a href="', '<a href="http://www.allocine.fr', $sortie['realisateur']);


// on récupère le nom des acteurs
preg_match('#Avec (.*?), <a class="underline" href="/film/casting_gen_cfilm=[^"]+.html">plus</a>#is', $recup, $acteur);
$sortie['acteur'] = (empty($acteur)) ? $absent['acteur'] : utf8_decode(trim(str_replace("'", '"', $acteur[1])));
$sortie['acteur'] = str_replace('<a href="', '<a href="http://www.allocine.fr', $sortie['acteur']);


// on récupère le long-métrage du film
preg_match('#Long-m[^"]+trage(.*?)\.#is', $recup, $long_metrage);
$sortie['long_metrage'] = (empty($long_metrage)) ? $absent['long_metrage'] : strip_tags(utf8_decode(trim(str_replace("\t", '', $long_metrage[1]))));
$sortie['long_metrage'] = str_replace("\r", '', trim($sortie['long_metrage']));


// on récupere le synopsis
preg_match('#<p><span class="bold">Synopsis : </span>(.*?)</p>#is', $recup, $synopsis);
$sortie['synopsis'] = (empty($synopsis)) ? $absent['synopsis'] : utf8_decode(trim($synopsis[1]));


// on récupere l'url de l'affiche
preg_match('#<a href="/film/fichefilm-[^"]+/affiches/">[^"]+<img src=\'http://images.allocine.fr/r_160_214/(.*?)\'[^"]+alt="[^"]+"[^"]+title="[^"]+"[^"]+/>#is', $recup , $affiche);
$sortie['affiche'] = ($affiche[1] == '[url]http://images.allocine.fr/r_160_214/b_1_cfd7e1/commons/emptymedia/AffichetteAllocine.gif[/url]') ? $absent['affiche'] : '[url]http://images.allocine.fr/r_160_214/[/url]'.$affiche[1];


// on récupere la durée
preg_match('#Dur[^"]+e :(.*?)Ann[^"]+e de production :#is', $recup, $duree);
$sortie['duree'] = (empty($duree)) ? $absent['duree'] : utf8_decode(trim($duree[1]));


// on récupère le titre original
preg_match('#Titre original : <span class="purehtml"><em>(.*?)</em></span>#is', $recup, $titre_vo);
$sortie['titre_vo'] = (empty($titre_vo)) ? $absent['titre_vo'] : utf8_decode(trim($titre_vo[1]));


// on récupere la date de sortie au cinéma
preg_match("#<a href='/film/agenda\.html\?week=(.*?)'>(.*?)</a>#is", $recup, $sortie_cinema);
$sortie['sortie_cinema'] = (empty($sortie_cinema)) ? $absent['sortie_cinema'] : utf8_decode(trim($sortie_cinema[1]));

if($sortie['sortie_cinema'] != 'inconnue') $sortie['sortie_salle_lien'] = '[url]http://www.allocine.fr/film/agenda.html?week=[/url]'.$sortie_cinema[1];
else $sortie['sortie_salle_lien'] = 'inconnue';
if($sortie['sortie_cinema'] != 'inconnue') $sortie['sortie_salle'] = utf8_decode(trim($sortie_cinema[2]));
else $sortie['sortie_salle'] = 'inconnue';


// on récupère les restriction d'âge si il y a ...
preg_match('#<span class="insist">(.*?)</span>#is', $recup, $age);
$sortie['age'] = (empty($age)) ? $absent['age'] : utf8_decode(trim($age[1]));


// on récupère l'année de production
preg_match('#Ann..?e de production :.*<a href=["\'][^>]+["\']>([0-9]+)</a>#isU', $recup, $annee_de_production);
$sortie['annee_de_production'] = (empty($annee_de_production)) ? $absent['annee_de_production'] : utf8_decode(trim($annee_de_production[1]));

return $sortie;
;
}
$sortie = allocine($id_film);

$user="root";
$host="localhost";
$password="";
$database="down";

$cnx=mysqli_connect($host,$user,$password);
mysqli_select_db($cnx,$database);
   
$req = "INSERT INTO film (id_film,titre_film,realisateur,acteur,affiche,duree,
synopsis,titre_vo,age,annee_de_production,sortie_cinema,upload,qualite,genre)


VALUES( '".$id_film."',
    '"
.$sortie['titre_film']."',
    '"
.$sortie['realisateur']."',
    '"
.$sortie['acteur']."',
    '"
.$sortie['affiche']."',
    '"
.$sortie['duree']."',
    '"
.$sortie['synopsis']."',
    '"
.$sortie['titre_vo']."',
    '"
.$sortie['age']."',
    '"
.$sortie['annee_de_production']."',
    '"
.$sortie['sortie_cinema']."',
    '"
.$upload."',
    '"
.$qualite."',
    '"
.$genre."'
  )
"
;

     
     
$result = mysqli_query($cnx,$req)
    or die("Erreur2");

?>

Dernière modification par Gamika (07-03-2010 14:55:34)

Hors ligne

#2 07-03-2010 14:02:43

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Problème lors de mouvement de données

bon, y a pas grand chose qui doit fonctionner roll

dabord : extract($_POST);  beuuuuuuuuuuuuuuuuuuuuuuuurk !!!!!!!!!!!!!!!!

ensuite :
$sortie = allocine($id_film);

ta fonction allocine ne retourne rien


bon, tu fais un peu de ménage et tu reviens wink


a++

Hors ligne

#3 07-03-2010 14:16:14

Gamika
Membre
Inscription : 07-03-2010
Messages : 6

Re : Problème lors de mouvement de données

merci deja pour une reponse si rapide big_smile

Ben tout fonctionne sauf l'execution de la requete roll
tu peut m'expliquer pourquoi "beuuuuuuuuuuuuuuuuuuuuuuuurk !!!!!!!!!!!!!!!!" pour mon "extract" ??! sa marche très bien.

Ensuite sa veu dire quoi ma fonction retourne rien ? Elle fonctionne très bien aussi hmm

je vois pas ou est le soucis ... cool

je veu bien faire le menage mais bon ... je fais quoi ?:|

Merci ^^

Hors ligne

#4 07-03-2010 14:20:46

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Problème lors de mouvement de données

oui, d'accord, scuse moi, c'est tellement mal mis en page que je n'avais pas vu wink

je vois une erreur

INSERT INTO (14 champs décris) values ( 13 champs mis a jour)
a++

Hors ligne

#5 07-03-2010 14:35:30

Gamika
Membre
Inscription : 07-03-2010
Messages : 6

Re : Problème lors de mouvement de données

Ha ! Merci ^^ j'avais pas fais gaff big_smile

ho niveau de la mise en page ya des regles ? roll

bon après modification ... ben rien la même chose ... erreur 2

Hors ligne

#6 07-03-2010 15:07:31

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Problème lors de mouvement de données

Met cette ligne
$result = mysqli_query($cnx,$req) or die("Erreur " .mysql_error());

et donne moi le message exact
a++

Hors ligne

#7 07-03-2010 15:19:30

Gamika
Membre
Inscription : 07-03-2010
Messages : 6

Re : Problème lors de mouvement de données

Après modication selon tes instructions le resultat, aussi surprenant que sa puisse être, est le suivant :

Erreur

Hors ligne

#8 07-03-2010 17:10:20

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : Problème lors de mouvement de données

Bu mysqli est utilisée je dirais plutôt
mysqli_error(cnx) .....

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#9 07-03-2010 17:30:32

Gamika
Membre
Inscription : 07-03-2010
Messages : 6

Re : Problème lors de mouvement de données

Après modification indiquer par moogli j'ai une erreur qui me dis ça :

Erreur You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'expédition spéléologique de " The Descent ", Sarah émerge seule des grottes des ' at line 11

Hors ligne

#10 07-03-2010 18:31:27

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Problème lors de mouvement de données

addslashes() sur les variables que tu ajoutes à la requête. ^_-

Hors ligne

#11 07-03-2010 18:43:36

Gamika
Membre
Inscription : 07-03-2010
Messages : 6

Re : Problème lors de mouvement de données

Ho merci ça marche !!! merci bcp ! en si peu de temps avoir des réponce clair MERCI  big_smile


J'aimerais bien marquer [resolu] mais je c'est pas comment on fait ^^

Dernière modification par Gamika (07-03-2010 18:45:36)

Hors ligne

Pied de page des forums