Auteur Sujet: Erreur Mysql Dans "select .. Into ..." ?  (Lu 1159 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne arthus

  • Débutant
  • *
  • Messages: 93
Erreur Mysql Dans "select .. Into ..." ?
« le: 05 mai 2003 à 12:39:38 »
Pour récuperer des compteurs (hit) dans une table sans récuperer la table j'utilise une requette select into ... puis je recupère le fichier (fonctions header() puis readfile()). Seulement j'ai l'erreur suivante pour le site hébergé chez phpnet (reproduite avec phpmyadmin).

requête SQL :  

SELECT ident, hit
INTO OUTFILE "/home/adresse_tmp/id client phpnet/www/chemin du fichier/fichier.csv"
FIELDS TERMINATED BY ';'
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
FROM geo

MySQL a répondu:
Access denied for user: 'antoinebba5@212.43.245.122' (Using password: YES).

Les paramètres mysql sont corrects car les requêtes sql fonctionnent sauf celle du sujet.

Merci si quelqu'un à une solution ou une explication, je n'arrive pas à trouver une explication ou une solution de rechange.

Pour info début du chemin du fichier est crée par l'utilisation de getenv("DOCUMENT_ROOT"); qui me retoure : "/home/adresse_tmp/id client phpnet/www/..."

Je voudrais éviter une boucle while avec écriture dans une fichier ligne à ligne.


Arthus

Hors ligne kevin

  • vip
  • Habitué
  • **
  • Messages: 228
Erreur Mysql Dans "select .. Into ..." ?
« Réponse #1 le: 05 mai 2003 à 13:42:34 »
la reponse est tres tres simple....

tu n'a pas les droits pour faire un into outfile ...
print map{chr(2.875*$_**4-32.25*$_**3+117.13*$_**2-142.75*$_+130)}(1..5)

Hors ligne arthus

  • Débutant
  • *
  • Messages: 93
Erreur Mysql Dans "select .. Into ..." ?
« Réponse #2 le: 05 mai 2003 à 17:58:36 »
Merci pour l'info.
Ne n'ai donc pas les droits. Mais alors quel peut être pour moi le moyen le plus efficace de recuperer 2 champs d'une table dans un fichier de type csv.

Faut il faire une boucle et pour chaque enregistrement écrire le résultat dans un fichier pour lequel f'ai les droits?

A mon avis je prefèrerais une commande globale pour eviter une trop forte consommation CPU mais existe t'elle avec les droits ?.

Merci pour votre aide avant d'entreprendre le développement.
Arthus

Hors ligne CrazyTeacher

  • Connaisseur
  • ***
  • Messages: 331
    • http://www.koi29.info
Erreur Mysql Dans "select .. Into ..." ?
« Réponse #3 le: 06 mai 2003 à 11:18:06 »
pourquoi ne pas ouvrir le fichier csv, puis

$crlf = "\r\n";   // Windows
$ligne = explode( $crlf, $texte) ; // convertit en tableau de lignes

$n = count($ligne);
for ( $i=0; $i < $n; $i++ )
{
    $tab = explode( ";", $ligne[$i] );    //eclate la ligne  si le séparateur est un pt virgule
..............puis le traitement ...............

}
puisque c'est un fichier csv, les cellules sont forcément ordonnées
donc tu récupères la composante du tableau $tab[xxx) de ton choix

 
Une chose qui convainc n'est pas vraie pour autant. Elle est seulement convaincante. Remarque destinée aux ânes.  /*La Volonté de Puissance*/ Nietzsche

"Parler pour ne rien dire et ne rien dire en parlant est le principe de ceux qui feraient mieux de la fermer avant de l'ouvrir ! "     Pierre Dac

koi29.info