PhillAd
Messages postés13Date d'inscriptionsamedi 8 octobre 2005StatutMembreDernière intervention27 juin 2007
-
18 juin 2007 à 14:49
amezghal
Messages postés385Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention21 août 2015
-
20 juin 2007 à 14:16
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 ("", $rank1[1]);
$rank = $rank2[0];
$pseudo1 = explode ("ctl00_MainColumn_NickNameLabel">",$a);//récupèration des infos
$pseudo2 = explode ("", $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
amezghal
Messages postés385Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention21 août 20155 20 juin 2007 à 14:16
salut
c'est bien ça que j'ai proposé au début ;)
<hr size="2" width="100%" />Au début, on essaye de trouver une solution qui marche, et puis on cherche la meilleure solution.
PhillAd
Messages postés13Date d'inscriptionsamedi 8 octobre 2005StatutMembreDernière intervention27 juin 2007 20 juin 2007 à 06:40
Hello,
Petite erreur de ma part il me dit qu'il a un problème à la ligne 35 et 36, ces lignes correspondent à celle ci:
34 }
35 ksort ($tableau);
36 foreach ($tableau as $dd)
37 {
J'ai remplacer aussi:
$rank1 = explode ("ctl00_FullColumn_Ranked1v1_Rank">",$a);//récupèration des infos
par :
$rank1 = explode ("ctl00_FullColumn_Ranked1v1_Rank",$a);//récupèration des infos
$pseudo1 = explode ("ctl00_MainColumn_NickNameLabel">",$a);//récupèration des infos
par :
$pseudo1 = explode ("ctl00_MainColumn_NickNameLabel",$a);//récupèration des infos
PhillAd
Messages postés13Date d'inscriptionsamedi 8 octobre 2005StatutMembreDernière intervention27 juin 2007 20 juin 2007 à 12:22
Hello,
J'ai modifié le code, le problème viens à l'insertion de la base mysql. Lorsque je laisse tel qu'elle c'est à dire quand je met :
$sql= "INSERT INTO unetable (Place,Nom,Pseudo,Rank)
VALUES ";
$sql .= "('$place'),('$dd[0]'),('$dd[1]'),('$dd[2]')";
mysql_query($sql);
rien ne ce passe (pas d'enregistrement dans la bdd) et j'ai droit à ce genre de chose quand je l'execute:
INSERT INTO unetable (Place,Nom,Pseudo,Rank) VALUES ('1'),('DONNE'),('DONNE'),('DONNE')
Column count doesn't match value count at row 1
et si je change, par exemple si je met:
$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());
j'ai droit à cette erreur:
Erreur SQL !INSERT INTO unetable VALUES(Place,Nom,Pseudo,Rank) ('1'),('DONNE'),('DONNE'),('DONNE') 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'),('DONNE'),('DONNE'),('DONNE')' at line 1