[PHP] Récupération de donnés

Piranha -  
 Piranha -
Bonjour,

J'ai réalisé un petit script qui est sensé récupérer des informations sur une autre page en les inscrivant dans une table de la base de donné.
Visiblement le script fonctionne (pas d'erreur), mais ne fait pas ce que je lui demande : il ce lance récupère les informations mais ne les inscrit pas dans la base de donné.

Voici le code:

<?php

$place = 0;
//récuperation de la liste des users
$result = mysql_query("SELECT uid, value, username FROM username
      WHERE bya_value.uid=users.user_id AND value<>" " and BanPseudo<1 and fid=18");
  
while ($challengeur = mysql_fetch_array($result, MYSQL_NUM)) {

// recherche les pages du site externe
$url1 = "http://www.siteexterne.com/my_profile/?PID=";
$url = $url1. $challengeur[1];
$nom = $challengeur[2];
$pid = $challengeur[1];

// recherche des infos les pages
$a = file_get_contents($url);
$rank1 = explode ("ctl00_FullColumn_Ranked1v1_Rank">",$a);//récupèration des infos
$rank2 = explode ("</span>", $rank1[1]);
$rank = $rank2[0];
$pseudo1 = explode ("ctl00_MainColumn_NickNameLabel">",$a);//récupèration des infos
$pseudo2 = explode ("</span>", $pseudo1[1]);
$pseudo = $pseudo2[0];
if ($rank > "0")
$tableau[$rank] = array ($nom, $pseudo, $rank);
}
ksort ($tableau);
foreach ($tableau as $dd)
{

$place++;
//Inscription dans la base
$sql= "INSERT INTO unetable (Place,Nom,Pseudo,Rank) 
VALUES ";
$sql .= "('$place'),('$dd[0]'),('$dd[1]'),('$dd[2]')";
mysql_query($sql);

}
?>


Le but recherché étant de mettre les informations comme si on les mettaient dans un tableau, mais sans faire apparaître de tableau et de récupérer directement les donnés dans une table.
On peut peut-être récupérer ces informations d'une autre manière car là c'est un peu détourné mais je ne vois pas trop comment faire...

Si vous avez des idées sur la manière d'enregistrer ces informations afin de les garder en mémoire dans la base de donné ou si vous comprenez pourquoi là ça ne s'enregistre pas, je suis preneur.

Merci de vos futur post
A voir également:

7 réponses

ton_y
 
salut

$rank1 = explode ("ctl00_FullColumn_Ranked1v1_Rank">",$a);//récupèration des infos
à remplacer par :
$rank1 = explode ("ctl00_FullColumn_Ranked1v1_Rank",$a);//récupèration des infos

$pseudo1 = explode ("ctl00_MainColumn_NickNameLabel">",$a);//récupèration des infos
à remplacer par :
$pseudo1 = explode ("ctl00_MainColumn_NickNameLabel",$a);//récupèration des infos


et ici il manque l'accolade ouvrante du if :

if ($rank > "0")
$tableau[$rank] = array ($nom, $pseudo, $rank);
}


ton_y@hotmail.fr
0
Piranha
 
J'ai modifié comme tu m'as dis le problème reste le même.

Je ne comprend pas pour l'accolade du if, elle y est mise.
0
naruto-94 Messages postés 865 Date d'inscription   Statut Membre Dernière intervention   188
 
salut
,
$sql= "INSERT INTO unetable VALUES(Place,Nom,Pseudo,Rank)  ";
$sql .= "('$place'),('$dd[0]'),('$dd[1]'),('$dd[2]')";
mysql_query($sql) 
or die('Erreur SQL !'.$sql.' 
'.mysql_error()); 


il faut placer VALUES devant la parenthese , essai voir !
0
Piranha
 
Le problème est bien au niveau de cette insertion sql :s

J'ai essayé et c'est pas mieux, nouveau message d'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 '('1'),
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Piranha
 
La version de ma base est :
Version du client MySQL: 4.1.10
0
naruto-94 Messages postés 865 Date d'inscription   Statut Membre Dernière intervention   188
 
essai
$sql= "INSERT INTO unetable VALUES('$place','$dd[0]','$dd[1]','$dd[2]')  ";
...
0
Piranha
 
Un grand merci à toi naruto-94 ça fonctionne :)
0