Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/02/2011, 11h55   #1
Invité de passage
 
Inscription : juillet 2004
Messages : 12
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 12
Points : 2
Points : 2
Envoyer un message via MSN à kornkiller
Par défaut Récupérer la valeur d'un champ spécifique dans une table

Bonjour, étant débutant en PHP et MySQL je galère un peu...

En fait, je souhaite récupérer la valeur d'un champ dans une table...Voici mon code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
session_start();
require('config.php');
require_once('include/functions.php');
require_once('include/user_functions.php');
require_once('include/islogged.php');
 
db_connect();
 
$sql = "SELECT scan FROM pm_users WHERE id=2";
$result = mysql_query($sql)  or die(mysql_error());
echo $sql;
echo $result;
En faisant, l'echo de ma variable $sql il me renvoie "SELECT scan FROM pm_users WHERE id=2"

Alors qu'avec $result il renvoie : "Resource id #13"

Je ne comprend pas... Théoriquement, il devrait me renvoyer cette chaine de caractère : "/uploads/scans/poussin.png"

Avez-vous une idée, où se trouve mon erreur... Merci de votre réponse
kornkiller est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 13h07   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Il te manque des étapes, revois la documentation
http://php.net/manual/fr/function.mysql-query.php
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 13h18   #3
Invité de passage
 
Inscription : juillet 2004
Messages : 12
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 12
Points : 2
Points : 2
Envoyer un message via MSN à kornkiller
Par défaut alors...

J'ai en partie résolu mon soucis, voilà mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
session_start();
require('config.php');
require_once('include/functions.php');
 
db_connect();
$sql = "SELECT scan FROM pm_users WHERE id=2";
if($result = mysql_query($sql)){
	while ($ligne = mysql_fetch_row($result)){
		$scan = $ligne[0];
		echo $scan;
		unlink($scan);}}
else
	echo "Erreur";
En faisant ceci, aucun soucis puisque mon code ci-dessus se trouve à la racine du site (test.php). La Photo à supprimer se trouve dans ce dossier : "/uploads/scans/"

Mon soucis actuellement est qu'il faut que j'intègre ce code dans un .php présent dans un dossier "admin", donc j'ai modifié le code comme ceci, où _URL = la racine de mon site :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
session_start();
require('config.php');
require_once('include/functions.php');
 
db_connect();
$sql = "SELECT scan FROM pm_users WHERE id=2";
if($result = mysql_query($sql)){
	while ($ligne = mysql_fetch_row($result)){
		$scan = _URL."/".$ligne[0];
		echo $scan;
		unlink($scan);}}
else
	echo "Erreur";
Le echo renvoie bien le bon chemin. Mais en utilisant ce code dans le fichier test.php (à la racine du site), il ne supprime pas mon fichier...

Quelle est mon erreur??
kornkiller est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 14h09   #4
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 586
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : août 2010
Messages : 586
Points : 859
Points : 859
Utilises des adresses relatives !!! si ton script est à la racine (test.php) :
Code :
unlink("uploads/scans/tonimage")
fait un echo de $scan et veilles à ce qu'il n'y ait pas deux slash d'affilé (//) ni de slash au début de $scan.
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 14h17   #5
Invité de passage
 
Inscription : juillet 2004
Messages : 12
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 12
Points : 2
Points : 2
Envoyer un message via MSN à kornkiller
Citation:
Envoyé par vorace Voir le message
Utilises des adresses relatives !!! si ton script est à la racine (test.php) :
Code :
unlink("uploads/scans/tonimage")
fait un echo de $scan et veilles à ce qu'il n'y ait pas deux slash d'affilé (//) ni de slash au début de $scan.
Salut !

En faisant comme tu me dis, tout fonctionne bien (bon j'utilise ma variable $scan, ca reviens au même)...

Mais en mettant mon code dans mon .php présent dans le répertoire "admin", le code ne fonctionne plus... Je pense que c'est logique puisqu'il va aller chercher l'image dans le dossier : "/admin/uploads/scans/monimage.png" qui n'existe pas...

Donc j'ai opté pour la solution de mettre dans la variable $scan tout l'URL... Ce qui renvoie bien la bonne adresse via l'echo mais ne supprime pas mon fichier via le unlink...

Edit : je n'ai pas 2 slashs j'ai vérifié
Merci
kornkiller est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 14h40   #6
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 586
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : août 2010
Messages : 586
Points : 859
Points : 859
avec la fonction unlink tu ne dois pas utiliser d'adresse absolue mais une adresse relative au script qui appel la fonction, donc si ton dossier admin est à la racine lui aussi et que ton fichier à supprimer est dans uploads/scan (uploads est à la racine lui aussi) tu dois mettre unlink("../uploads/scan/tonimage") .
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2011, 00h28   #7
Invité de passage
 
Inscription : juillet 2004
Messages : 12
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 12
Points : 2
Points : 2
Envoyer un message via MSN à kornkiller
Citation:
Envoyé par vorace Voir le message
avec la fonction unlink tu ne dois pas utiliser d'adresse absolue mais une adresse relative au script qui appel la fonction, donc si ton dossier admin est à la racine lui aussi et que ton fichier à supprimer est dans uploads/scan (scan est à la racine lui aussi) tu dois mettre unlink("../uploads/scan/tonimage") .
Parfait !! voila ce que j'ai mis :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
session_start();
require('config.php');
require_once('include/functions.php');
 
db_connect();
$sql = "SELECT scan FROM pm_users WHERE id=2";
if($result = mysql_query($sql)){
	while ($ligne = mysql_fetch_row($result)){
		$scan = "../".$ligne[0];
		echo $scan;
		unlink($scan);}}
else
	echo "Erreur";
Tout fonctionne nikel, je vérifierai avec l'histoire des droits d'écritures mais pour le moment ça fonctionne !!

Merci
kornkiller est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h56.


 
 
 
 
Partenaires

Hébergement Web