Problème de SELECT * INSERT INTO
Résoluclé de 12 Messages postés 139 Date d'inscription samedi 19 juin 2010 Statut Membre Dernière intervention 3 novembre 2024 - 3 nov. 2024 à 09:46
- Regarder conn: la grande escroquerie
- Touche insert - Guide
- Disk boot failure insert system disk and press enter - Guide
- Touche inser sur elite book hp - Forum PC portable
- Reboot and select proper boot device or insert boot media in selected boot device and press a key - Forum Matériel & Système
- Please select boot device - Forum Windows
5 réponses
9 oct. 2024 à 07:21
bonjour
commence par mettre des quotes autour de l'année
$myreq = "select * from adherents where annee = '$exer' into outfile 'C:\\temp\\CSV.csv'";
et si ca ne marche toujours pas, fais un echi de ta variable $myreq pour voir à quoi elle ressemble puis teste la directement dans ta bdd via phpmyadmin par exemple.
n'hésite pas non plus à afficher les eventuelles erreurs après l'exécution de la requête via
echo("Error description: " . mysqli_error($conn)); }
9 oct. 2024 à 08:34
bonjour,
si tu supprimes la cause into, la page affiche bien tes enregistrements?
9 oct. 2024 à 13:28
Oui... tout est nickel tant que je ne tente pas le into outfile. C'est pour cela que je me suis même surpris a supprimer le while.
9 oct. 2024 à 15:02
Tu as bien vérifié que le fichier n'existait pas avant d'exécuter la requête?
Le fichier est donc créé par la requête, mais est vide?
9 oct. 2024 à 13:26
Oui... tout est nickel tant que je ne tente pas le into outfile
9 oct. 2024 à 13:52
Bonjour,
Une suggestion. Il est fort probable que php ne puisse pas écrire par défaut hors du contexte du serveur web et de sa racine /, et même les dossiers du serveur web devraient par sécurité être interdits en écriture. Tu peux au moins vérifier avec un nom de fichier
into outfile 'CSV.csv'
que tu pourrais retrouver dans le même répertoire que le source php.
Après pour régler les droits d'accès aux répertoires cela doit se faire dans ton serveur web (apache ?).
9 oct. 2024 à 15:01
Je pense que c'est la db qui écrit dans le fichier, par le php.
11 oct. 2024 à 22:45
J'ai essayé en vain... mais j'ai trouvé une solution de rem^placement avec fwrite qui fonctionne très bien. Création de fichier en SPV dans la racine. Il ne me reste plus qu'à trouver comment rapatrier automatiquement ce document pour transmettre un site fonctionnel.
Merci pour l'aide, l'ami
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionModifié le 11 oct. 2024 à 22:02
Voili, voila! J'ai trouvé comment détourner ce fichu outfile.
J'ai créé un fichier sauvegarde.doc puis avec fwrite je complète mon fichier.
Pour le moment j'ai une seule ligne (la dernière) qui s'écrit mais je vais peaufiner.la requête pour avoir toutes mes lignes et séparation en SPV.
Le fichier sera plus facile à rapatrier.
$file = "./sauvegarde.doc";
$fh = fopen($file, 'r+');
while ($row = mysqli_fetch_array($result))
{
$donnees="ID".$row[0].", ". $row[2]." ,".$row[3].", ".$row[4]." , ".$row[5]." ,".$row[6].", ".$row[7].", ".$row[8].", ".$row[9].", ".$row[10]." ,".$row[11].", ".$row[12].", ".$row[13]."/n";
fwrite($fh, $donnees);
}
fclose($fh);
3 nov. 2024 à 09:46
Version finale qui fonctionne très bien :
<?php $conn=mysqli_connect($DBserveur, $DBlogin, $DBpassword,$DBbase); $lines = file("https://pmcc.wf/fichier-2024.csv"); // Affiche toutes les lignes du tableau comme code HTML foreach ($lines as $line_num => $line) { $myfile= explode(';', htmlspecialchars($line)); $prenom= $myfile[0]; $nom= $myfile[1]; $adhes= $myfile[2]; $don= $myfile[3]; ///le nom est obligatoire /////// if (strlen($nom)>2) { $myreq="INSERT INTO `adherents`(prenom, nom, annee, adhesion) VALUES ('$prenom','$nom','2324', '$adhes')"; //On vérifie la connexion if($conn->connect_error) { die('Erreur : ' .$conn->connect_error); } $exec=mysqli_query($conn,$myreq); } } // Utilisation de drapeau $trimmed = file('somefile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); ?>
C'est peut être scolaire et on doit trouver mieux; mais c'est ma solution pour ce input outfile qui ne doit écrire que dans le fichier parent...si on a l'autorisation pour ce faire.
Merci à tous
10 oct. 2024 à 19:15
Non, j'ai tenté tes conseils... Aucune erreur sur la condition
echo("Error description: " . mysqli_error($conn)); }
et $exe fonctionne bien (int)
10 oct. 2024 à 19:22
je vais chercher encore un peu puis je ferai des sauvegardes directement sur la table...
Connais tu la syntaxe pour sauvegarder les données d'une table (le contraire de DROP).
Mais ce n'est pas le but du jeu car je compte déléguer au président de l'association (qui est plus nul que moi en informatique) une version quasi automatique
Merci quand même
10 oct. 2024 à 20:37
le description error reste à nul. mais ma requête s'affiche... je continue à creuser. Merci quand même de t'être penchée sur mon problème. Si je trouve je mets la solution dans mon post