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

Fermé
Piranha - 18 juin 2007 à 15:03
 Piranha - 20 juin 2007 à 14:12
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

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
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 mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
20 juin 2007 à 11:39
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
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
La version de ma base est :
Version du client MySQL: 4.1.10
0
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
20 juin 2007 à 13:27
essai
$sql= "INSERT INTO unetable VALUES('$place','$dd[0]','$dd[1]','$dd[2]')  ";
...
0
Un grand merci à toi naruto-94 ça fonctionne :)
0