[RESOLU] Convertir requête PDO en mysql PHP normal

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Convertir requête PDO en mysql PHP normal

Re: Convertir requête PDO en mysql PHP normal

par Perine » 12 mars 2013, 12:05

Pourquoi transformer du PDO vers du MySQL ? C'est totalement débile, maintenant qu'on sait que l'extension MySQL sera supprimée en PHP5.6 ou PHP6.
Si ton serveur n'a pas PDO, installe PDO ou utilise mysqli. Si ni l'un ni l'autre est possible, remets-toi en question et change d'hébergeur coute que coute.

Re: Convertir requête PDO en mysql PHP normal

par xTG » 12 mars 2013, 10:14

Non mais attendez là...
Une requête PDO ou une requête Mysql ça n'existe pas !

Une requête c'est du SQL.
Après on dialogue avec le SGBD à travers une API telle que PDO ou bien les fonctions mysql_xxx, mysqli_xxx.

Partant du fait que PDO est plus sécurisé et a plus d'avenir que l'API mysql quelle est cette sombre idée de vouloir transformer ce code ??? :shock:

Si c'est en raison d'un serveur ne possédant pas PDO le plus simple reste de l'installer.
En dernier recourt je peux te proposer la librairie suivante qui émule une partie du fonctionnement de PDO :
https://github.com/xTG/PDO

Re: Convertir requête PDO en mysql PHP normal

par nico44530 » 11 mars 2013, 13:07

J'ai ajouté manuellement via phpmyadmin.
J'ai pas encore fais le formulaire d'ajout d'amis :?

Le compte Nicolas : id du membre : 1
Le compte Guillaume : id du membre : 2

Re: Convertir requête PDO en mysql PHP normal

par two3d » 11 mars 2013, 13:06

je patauge là sur ton site, je trouve pas de menu pour ajouter amis et je ne vois pas mon id membre, si tu peut m'aider stp

Re: Convertir requête PDO en mysql PHP normal

par nico44530 » 11 mars 2013, 12:25

Oui : http://www.web-astronomie.fr :

Identifiant : admin
mot de passe : nico181290

Identifiant : guigui56
mot de passe : nico181290
Pour tester au 2 membres :wink:

J'utilise notepad ++

Tu verra que sur le compte Guillaume, l'id est un 2 au lieu d'un 1

Re: Convertir requête PDO en mysql PHP normal

par two3d » 11 mars 2013, 12:23

tu travail en local ? tu utilise un éditeur de texte genre np++ ?

si t'es pas en local, je peut avoir l'adresse pour voir stp ?

Re: Convertir requête PDO en mysql PHP normal

par nico44530 » 11 mars 2013, 12:13

Le résultat affiché c'est toujours l'avatar du membre ayant l'id : "2"
Vu que le champs : id_ami est 2

Donc si je me connecte au membre avec l'id 2, je m'aurais dans mes propres amis ^^

C'est pas encore ça :(

Sinon j'ai plus simple, pourquoi ne pas simplement convertir la requête ci-dessous en mysql et php normal ?
Elle fonctionne très bien, mais il n'y a qu'en PDO qu'elle fonctionne, je ne sais pas comment la convertir :
<?php
						$dns = 'mysql:host=sql2.cluster1.easy-hebergement.net;dbname=webastronomiea';
						$utilisateur = 'webastronomiea';$motDePasse = 'nico181290';
						$connection = new PDO( $dns, $utilisateur, $motDePasse );
						$query = $connection->prepare('SELECT wa_communaute.pseudo, (id_membre + id_ami - :id) AS ami_id, date FROM wa_amis LEFT JOIN wa_communaute ON id = (id_membre + id_ami - :id) WHERE (id_membre = :id OR id_ami = :id) AND confirm = :conf ORDER BY date');
						$query->bindValue(':id',$id,PDO::PARAM_INT);       
						$query->bindValue(':conf','1',PDO::PARAM_STR);
						$query->execute();
						if ($query->rowCount() == 0) {
							echo '<p class="size11">Aucun amis pour l\'instant</p>';
						}
						while ($data = $query->fetch()) { ?>
						
							<li class="friend">
								<div class="friend-avatar">
									<a href="/<?php echo htmlentities(trim($data['pseudo'])); ?>"><img src="../img/upload/<?php echo htmlentities(trim($data['ami_id'])); ?>-mini.png" width="40" height="40" alt="" /></a>
								</div>
							</li>
						<?php } $query->CloseCursor(); ?>

Re: Convertir requête PDO en mysql PHP normal

par two3d » 11 mars 2013, 12:05

fait:

WHERE id_membre = ".$id." OR id_ami = ".$id." // $id défini l'id du membre connecté

ce qui veut dire:

si moi j'ajoute un ami, on aura l"INSERT suivant: id_membre = mon_id AND id_ami = lid_choisi
si l'ami m'ajoute en tant qu'ami, on aura un INSERT suivant: id_membre = son_id AND id_admin = mon_id

donc on recharge si id_membre ou id_amin correspond à mon id :wink:

Re: Convertir requête PDO en mysql PHP normal

par nico44530 » 11 mars 2013, 11:52

Dans la colonne

id_membre : je mets "1"
id_ami : je mets "2"
confirm : je mets "1"

Et j’exécute, ensuite ça s'affiche dans le tableau, mais rien sur le site.
J'ai juste le message qui dit que j'ai pas d'amis pour le moment

Re: Convertir requête PDO en mysql PHP normal

par two3d » 11 mars 2013, 11:48

tu na pas d'erreur ?

comment tu fait quand tu insère un ami ? quels son les valeurs que tu insères ?

Re: Convertir requête PDO en mysql PHP normal

par nico44530 » 11 mars 2013, 11:42

J'ai copié-collé.
Donc normalement il devrait y avoir un ami puisque dans phpmyadmin, j'ai mis "1" à confirm :(
Et ca dit que je n'ai pas encore d'amis

Re: Convertir requête PDO en mysql PHP normal

par two3d » 11 mars 2013, 11:36

pour les champ de type int, float, décimal (les numéros en générale), tu na pas besoin de mettre de guillement entre la variable quand tu fait une requete: id_ami='".$id."' devient alors id_ami=".$id."

c'est sans doute normal qu'il affiche car il faut d'abord vérifier si il à des amis avec mysql_num_rows:
<?php
$sql = connect_sql();
$req = mysql_query("SELECT * FROM wa_amis WHERE id_ami='".$id."'");
if(mysql_num_rows($req) == 0) {
	echo "vous n'avez pas encore d'ami";
} else {
	while($infos = mysql_fetch_assoc($req)) { ?>
	<li class="friend">
		<div class="friend-avatar">
			<?php echo $infos['id_ami']." ".($infos['confirm'] == 0 ? "non accepté" : "accepté"); ?>
			<?php echo "<hr />"; ?>
			<img src="../img/upload/<?php echo htmlentities(trim($infos['id_ami'])); ?>-mini.png" width="40" height="40" alt="" />
		</div>
	</li>
	<?php } 
}
mysql_close(); ?>
laisse tomber LEFT JOIN, j'en vois pas l'utilité :wink:

Re: Convertir requête PDO en mysql PHP normal

par nico44530 » 11 mars 2013, 11:19

Merci pour ton message,

J'ai fais ce que tu m'a écrit, et rien ne s'affiche :( Voila le code :
<?php
						$sql = connect_sql();
						$req = mysql_query("SELECT * FROM wa_amis WHERE id_ami='".$id."'");
							while($infos = mysql_fetch_assoc($req)) { ?>
							<li class="friend">
								<div class="friend-avatar">
									<?php echo $infos['id_ami']." ".($infos['confirm'] == 0 ? "non accepté" : "accepté"); ?>
									<?php echo "<hr />"; ?>
									<img src="../img/upload/<?php echo htmlentities(trim($infos['id_ami'])); ?>-mini.png" width="40" height="40" alt="" />
								</div>
							</li>
						<?php } mysql_close(); ?>
Dans la requête, y'a pas une possibilité avec LEFT JOIN ?
Je me suis peut-être trompé en le réadaptant ?

Re: Convertir requête PDO en mysql PHP normal

par two3d » 11 mars 2013, 11:07

si tu veux afficher tous les ami du membre, tu fait une requête comme suit:
<?php
$Req= mysql_query("SELECT * FROM wa_amis WHERE id_ami = ".$id_du_membre_connecte);
 ?>
<h1>Vos amis:</h1>
<?php
while($Infos = mysql_fetch_assoc($Req)) {
echo $Infos['id_ami']." ".($Infos['confirm'] == 0 ? "non accepté" : "accepté");
echo "<hr />";
}
si tu souhaite savoir si un id est ami d'un id, su fait:
<?php
if(mysql_num_rows(mysql_query("SELECT * FROM wa_ami WHERE id_ami = $variableid1 AND id_membre = $variableid2") == 1) {
 echo "trouvé";
} else {
echo "non trouvé";
}
si tu comprend pas quelque chose, demande moi, désolé de ne pas détailler mes requêtes

Re: Convertir requête PDO en mysql PHP normal

par nico44530 » 11 mars 2013, 10:46

J'ai 2 tables dans ma BDD :

- wa_communaute :
- 'id' int(11) Auto increment
- 'pseudo'
etc...

- wa_amis :
- 'id_membre' int(11) (l'id du membre qui ajoute l'ami)
- 'id_ami' int(11) (l'id de l'ami en question)
- 'confirm' enum('0', '1') (0 = Non réciproque ; 1 = réciproque)
- 'date' int(11)

Voila pour les tables, mon problème c'est que je n'arrive pas à créer la requête pour afficher la liste d'amis d'un membre connecté.
Donc j'ai inséré un enregistrement manuel avec phpmyadmin :

id_membre : '1' (l'id du membre qui ajoute l'ami)
id_ami : '2' (l'id de l'ami ajouté)
confirm : 1 (j'ai confirmé l'amitié)
date : 11/03/2013 09:14:12

A partir de ça, comment on fait pour créer une requête (non en PDO) qui affichera l'ami du membre connecté ?