Erreur mysql_fetch_object
Résolu
reminho69
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
reminho69 Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
reminho69 Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un code pour exporter le résultat d'une requête dans un fichier en .csv mais j'ai une erreur : mysql_fetch_object() : supplied is not a valid mysql result ressource in...
Et le problème vient de ma ligne :
while($row = mysql_fetch_object($req))
et voici la partie du code qui permet l'exportation :
//exportation
if (isset($_POST['exporter']))
{
// Titre des colonnes de votre fichier .CSV ou .XLS
$fichier = "Attestation n°; Référence Q2C; Nom opération; Ville; Code postal; Département; Nombre de téléchargement; Date d'ajout; Nom Adhérent";
$fichier .= "\n";
// Requête SQL
$req = mysql_query($requete);
// Enregistrement des résultats ligne par ligne
while($row = mysql_fetch_object($req))
{
$fichier .= "".$row->id_attestation.";".$row->ref_Q2C.";".$row->nom_operation.";".$row->ville.";".$row->code_postal.";".$row->departement.";".$row->nbre_telechargement.";".$row->dateajout.";".$row->le_demandeur."\n";
}
// Déclaration du type de contenu
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=requete.csv");
print $fichier;
exit;
}
$requete comporte bien ma requête sql et celle ci fonctionne je l'ai testé.
Help me please
J'ai un code pour exporter le résultat d'une requête dans un fichier en .csv mais j'ai une erreur : mysql_fetch_object() : supplied is not a valid mysql result ressource in...
Et le problème vient de ma ligne :
while($row = mysql_fetch_object($req))
et voici la partie du code qui permet l'exportation :
//exportation
if (isset($_POST['exporter']))
{
// Titre des colonnes de votre fichier .CSV ou .XLS
$fichier = "Attestation n°; Référence Q2C; Nom opération; Ville; Code postal; Département; Nombre de téléchargement; Date d'ajout; Nom Adhérent";
$fichier .= "\n";
// Requête SQL
$req = mysql_query($requete);
// Enregistrement des résultats ligne par ligne
while($row = mysql_fetch_object($req))
{
$fichier .= "".$row->id_attestation.";".$row->ref_Q2C.";".$row->nom_operation.";".$row->ville.";".$row->code_postal.";".$row->departement.";".$row->nbre_telechargement.";".$row->dateajout.";".$row->le_demandeur."\n";
}
// Déclaration du type de contenu
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=requete.csv");
print $fichier;
exit;
}
$requete comporte bien ma requête sql et celle ci fonctionne je l'ai testé.
Help me please
A voir également:
- Erreur mysql_fetch_object
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Java code erreur 1603 ✓ - Forum Windows
29 réponses
les sessions je les utilises ailleurs dans le site, pour les comptes utilisateurs etc
Quand on clic sur valider ça affiche le résultat de la requête dans un tableau en dessous. Et oui il est dans la même page.
Quand on clic sur valider ça affiche le résultat de la requête dans un tableau en dessous. Et oui il est dans la même page.
Les variables de session ne s'envolent pas comme ça...
Pour piéger ce qui se passe, peux-tu ajouter vers le début de ton script (mais après le démarrage des sessions...)
if (isset($_POST['exporter'])) {
echo '<pre>';
print_r ($_SESSION);
echo '</pre>';
}
Ça permettra de savoir si la variable est bien passée.
Pour piéger ce qui se passe, peux-tu ajouter vers le début de ton script (mais après le démarrage des sessions...)
if (isset($_POST['exporter'])) {
echo '<pre>';
print_r ($_SESSION);
echo '</pre>';
}
Ça permettra de savoir si la variable est bien passée.
j'ai trouvé une solution avec la méthode get et j'effectue le traitement sur une autre page.
Tout fonctionne en local et en ligne j'ai l'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 '\'Nord\'' at line 1"
;(
Tout fonctionne en local et en ligne j'ai l'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 '\'Nord\'' at line 1"
;(
Tu as abandonné la méthode précédente, c'est donc que tu acceptes qu'il se passe dans ton script des choses que tu ne comprends pas. C'est une très bonne méthode pour avoir des ennuis.
Ceci étant dit (je comprends que tu as envie d'avancer)), cette fois, c'est une erreur SQL
Affiche la requête, tu verras bien où est l'erreur.
Ceci étant dit (je comprends que tu as envie d'avancer)), cette fois, c'est une erreur SQL
Affiche la requête, tu verras bien où est l'erreur.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
le problème vient de la requête
SELECT id_attestation, ref_Q2C, nom_operation, dateajout, nbre_telechargement, ville, code_postal, departement, le_demandeur FROM videos, jos_comprofiler, jos_users WHERE jos_users.id=jos_comprofiler.id AND jos_users.username=videos.name_createur AND ville=\'Boulogne Sur Mer\'
il me met des \ donc ça bug, je sais pas d'où cela sors
code de l'url pour l'envoie :
<?php
<a href=\"exporter.php?requete=".$_SESSION['requete']."\">Exporter la requête</a><br /><br />"
?>
SELECT id_attestation, ref_Q2C, nom_operation, dateajout, nbre_telechargement, ville, code_postal, departement, le_demandeur FROM videos, jos_comprofiler, jos_users WHERE jos_users.id=jos_comprofiler.id AND jos_users.username=videos.name_createur AND ville=\'Boulogne Sur Mer\'
il me met des \ donc ça bug, je sais pas d'où cela sors
code de l'url pour l'envoie :
<?php
<a href=\"exporter.php?requete=".$_SESSION['requete']."\">Exporter la requête</a><br /><br />"
?>
C'est une question de configuration de ton PHP, tu as "magic_quotes" actif c'est à dire qu'il ajoute automatiquement des \ devant les apostrophes dans les GET (entre autres...)
Il faut faire strip_slashes pour retirer ces slashes quand tu récupères la requête par GET.
Mais si tu ne maîtrises pas ce genre de choses, tu risques d'avoir des surprises si tu as par exemple un nom de ville avec une apostrophe..
D'autre part, passer une requête en clair dans une URL, c'est inciter au piratage de ton site. Très tentant de taper soi-même des requêtes dans l'URL pour introduire des données que tu ne contrôles pas, pour effacer des tables ou pour les lister ...
Il faut faire strip_slashes pour retirer ces slashes quand tu récupères la requête par GET.
Mais si tu ne maîtrises pas ce genre de choses, tu risques d'avoir des surprises si tu as par exemple un nom de ville avec une apostrophe..
D'autre part, passer une requête en clair dans une URL, c'est inciter au piratage de ton site. Très tentant de taper soi-même des requêtes dans l'URL pour introduire des données que tu ne contrôles pas, pour effacer des tables ou pour les lister ...
Le faire par POST au lieu de GET ne changera pas grand chose à la confidentialité. La seule différence, c'est que ça ne saute pas aux yeux, mais quand on a remarqué la requête, c'est aussi facile à pièger.
Le moyen le plus raisonnablement fiable reste celui des sessions. Ou alors, code tes requêtes (avec un codage convenable, ça t'évitera les injections de slashes, d'ailleurs)
Le moyen le plus raisonnablement fiable reste celui des sessions. Ou alors, code tes requêtes (avec un codage convenable, ça t'évitera les injections de slashes, d'ailleurs)