Version complète: sur le forum Webmaster Hub : Un requete Insert Into dans une Boucle While
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net
onico0
Bonjour à tous !!

Je suis vraiment déséspérer, je bloque depuis des heures avec un code qui ne marche pas.

Ce code permet en principe de :

Ce connecter à une base.
Ce connecter à une Table1.
Récupérer et traiter les données de la Table1 dans une boucle.
Dans cette boucle insérer plusieurs données dans une Table2.
Ce deconnecter de mysql à la fin.

Donc voici mon code, il ne marche pas :

Code : PHP
CODE

<?php
//LISTE LES URL
mysql_connect('localhost', 'onico0', 'javaismisunpass');
mysql_select_db("gratos");
$reponse = mysql_query("SELECT url FROM Table1");
while ($donnees = mysql_fetch_array($reponse))
{
$url = $donnees['url'];

//CAPTAGE DE LA BALISE TITLE
$file = fopen ($url, "r");
if (!$file) {
echo "<p>Impossible de lire la page.\n";
exit;
}
while (!feof ($file)) {
$line = fgets ($file, 1024);

if (eregi ("<title>(.*)</title>", $line, $out)) {
$title = htmlentities($out[1]);

break;
}
}
fclose($file);
//title ok


//RECUP DES METATAG
$tags = get_meta_tags($url);
if(!$title){$title=htmlentities($tags['title']);} // Titre
$langue=htmlentities($tags['language']); // langue
$description=htmlentities($tags['description']); // DESCRIPTION
$keywords=htmlentities($tags['keywords']); // motsclés


if($title==false) { echo "Pas de balise title"; }
elseif ($langue==false)
{echo "Pas de balise langue";}
elseif ($description==false)
{echo "Pas de balise description";}
elseif ($keywords==false)
{echo "Pas de balise keywords";}

else { //INSERTION DANS LA BDD
$point = 1;

echo $title;
echo '<br>';
echo $langue;
echo '<br>';
echo $description;
echo '<br>';
echo $keywords;
echo '<br>';
echo $url;
mysql_query("INSERT INTO `Table2` ( `id` , `url` , `titre` , `description` , `keyword` , `point` , `notfound` )
VALUES ( '', '$url', '$title', '$description', '$keywords', 1, 'non' );"); // /!\ c'est ici que sa ne marche pas


} //fin du else final

} //fin boucle Table1

mysql_close();


?>



Je n'ai aucun message d'erreur, mon prob c'est que les données ne sont pas insérer pourtant je les vois en fesant un echo.

Merci d'avance.

et voici la stucture de ma base de donnée:


Field name Type Allow nulls? Key Default value Extras
id int(11) Non Primary auto_increment
url text Non None
titre text Non None
description text Non None
keyword text Non None
point int(11) Non None 1
notfound text Non None

thx
Portekoi
Bonjour,

Et si tu affcihes ta requete et que tu la colles dans phpmyadmin, ca donne quoi?


Portekoi
onico0
CITATION(Portekoi @ dimanche 07 mai 2006, 13h53)
Bonjour,

Et si tu affcihes ta requete et que tu la colles dans phpmyadmin, ca donne quoi?
Portekoi
*



Je suis dans l'impossibilité de le faire car ce script nécéssite de lire des meta tag et mysql n'en est pas capable, de plus je n'utilise pas phpmyadmin mais Webmin.
Portekoi
Bonjour,

Ca n'a rien à voir. Ne peux tu pas faire ceci :

CODE
echo "INSERT INTO `Table2` ( `id` , `url` , `titre` , `description` , `keyword` , `point` , `notfound` )
VALUES ( '', '$url', '$title', '$description', '$keywords', 1, 'non' );";


Qu'est qui t'en empêche?


Portekoi
onico0
Justement c'est ça ma question , mon script devrais fonctionner parfaitement mais les données ne s'ajoutes pas et aucune erreur.

J'ai essayer d'ajouter une entrée via webmin en respectant les même caractèristiques de mon script et l'ajout ce faire sans problème.

Est ce qu'on peu travailler sur une table 2 en étant dans une boucle de données 1? Sinon comment extraire mes données de ma boucle 1 pour les mettre dans ma table 2.
Portekoi
Re,

Si tu ne fais pas ce que je te demande, je ne vois pas comment t'aider plus.

Donc bon courage smile.gif


Portekoi
onico0
CITATION(Portekoi @ dimanche 07 mai 2006, 14h30)
Re,

Si tu ne fais pas ce que je te demande, je ne vois pas comment t'aider plus.

Donc bon courage smile.gif
Portekoi
*


Si tu comprend pas que je te dis que j'ai pas phpmyadmin et que la req nécéssite d'avoir des données en provenance de meta tag t'es pas les meilleur modo du monde.

Ne te sent pas obliger de répondre aux appel à l'aide de tous tes visiteurs, contente toi d'aider ceux que tu sais aider wink.gif
TheRec
Bonjour,

Ce ne sont pas seuelement "ses" visiteurs, le Hub est une communauté d'entraide...il essaie de t'aider et tu ne semble pas disposer à accepter son aide...

Bref, passons à ton problème... après ta requête INSERT, as-tu essayé d'afficher le dernier message d'erreur généré par MySQL ?
Sinon, utilise ce code juste après la requête INSERT :
CODE
    echo mysql_errorno()." : ".mysql_error();
Portekoi
CITATION(onico0 @ dimanche 07 mai 2006, 14h37)
Si tu comprend pas que je te dis que j'ai pas phpmyadmin et que la req nécéssite d'avoir des données en provenance de meta tag t'es pas les meilleur modo du monde.

Ne te sent pas obliger de répondre aux appel à l'aide de tous tes visiteurs, contente toi d'aider ceux que tu sais aider wink.gif
*


Ta requete plante dans... un script php.

Je te demande de faire un echo de ta requete dans... un script php.

Qu'est ce que tu ne comprends pas dans ma demande?

Si ta requete ne se fait pas dans ton script mais fonctionne dans ton SGBDR, as t on avis, d'ou viens le problème?

Donc affiche ta requete ou, comme TheRec te le demande, affiche un mysql_error()...


Portekoi
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.