MYSQL requête avec PDO
Fermé
Luc
-
20 déc. 2011 à 10:50
maka54 Messages postés 698 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 - 3 janv. 2012 à 19:45
maka54 Messages postés 698 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 - 3 janv. 2012 à 19:45
A voir également:
- MYSQL requête avec PDO
- Mysql community server - Télécharger - Bases de données
- Il y a eu un problème avec cette requête. nous travaillons à sa résolution aussi vite que nous le pouvons. - Forum Facebook
- Mysql a répondu : documentation connexion impossible : paramètres incorrects. - Forum Bases de données
- La requête graphql n’est pas autorisée facebook - Forum Facebook
- Le paquet « mysql-server » n'a pas de version susceptible d'être installée ✓ - Forum Debian
15 réponses
Melooo
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
84
20 déc. 2011 à 10:54
20 déc. 2011 à 10:54
Salut,
Si tu ne veux pas utiliser PDO, pourquoi ne pas faire appel à ta base de données comme ceci :
Sinon, pour ta requête regarde ce lien :
https://www.php.net/manual/fr/pdo.exec.php
Si tu ne veux pas utiliser PDO, pourquoi ne pas faire appel à ta base de données comme ceci :
// code local $dblogin="login"; $dbpass="pass"; $dbhost="host"; $dbname="db_name"; mysql_connect($dbhost, $dblogin,$dbpass) or die("erreur de connexion au serveur"); mysql_select_db($dbname) or die("erreur de connexion a la base de donnees"); ?>
Sinon, pour ta requête regarde ce lien :
https://www.php.net/manual/fr/pdo.exec.php
Merci beaucoup Melooo,
Ta façon à l'air d'être beaucoup plus simple.. mais PDO, sincèrement, est il vraiment utile?? Et du fait que je l'ai activé sur MAMP ne va t-il pas m'empecher de procéder comme tu viens de me le dire plus haut?
Merci à toi ;)
Ta façon à l'air d'être beaucoup plus simple.. mais PDO, sincèrement, est il vraiment utile?? Et du fait que je l'ai activé sur MAMP ne va t-il pas m'empecher de procéder comme tu viens de me le dire plus haut?
Merci à toi ;)
Melooo
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
84
20 déc. 2011 à 11:17
20 déc. 2011 à 11:17
Pour être tout à fait franche, je me suis jamais penchée sur le cas "PDO".
Donc je te conseille de lire ceci :
http://www.siteduzero.com/tutoriel-3-34790-pdo-interface-d-acces-aux-bdd.html#ss_part_1
qui répertorie les avantages de PDO...
Essayes de faire comme je viens de te l'expliquer et tu verra bien si tu as une erreur ;) sinon tu devras désactiver PDO
Donc je te conseille de lire ceci :
http://www.siteduzero.com/tutoriel-3-34790-pdo-interface-d-acces-aux-bdd.html#ss_part_1
qui répertorie les avantages de PDO...
Essayes de faire comme je viens de te l'expliquer et tu verra bien si tu as une erreur ;) sinon tu devras désactiver PDO
Anoen
Messages postés
196
Date d'inscription
mardi 10 novembre 2009
Statut
Membre
Dernière intervention
11 septembre 2013
25
20 déc. 2011 à 11:19
20 déc. 2011 à 11:19
En fait ce que t'as donné Melooo va être prochainement abandonné. On préconise PDO.
Pour effectuer ta requête avec PDO, tu dois utiliser
$result = $bdd->query('TA_REQUETE');
Ensuite pour compter, il te suffit de faire un foreach combiné à la fonction count();
Pour effectuer ta requête avec PDO, tu dois utiliser
$result = $bdd->query('TA_REQUETE');
Ensuite pour compter, il te suffit de faire un foreach combiné à la fonction count();
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci Anoen à toi aussi,
le problème c'est que j'ai déjà créer un foreach avant et j'ai essayé de faire à peu près comme tu m'as dis mais je ss assez novice et ça ne fonctionne pas.
:(
le problème c'est que j'ai déjà créer un foreach avant et j'ai essayé de faire à peu près comme tu m'as dis mais je ss assez novice et ça ne fonctionne pas.
<?php include('bdd.php'); function resultat_recherche($search) { $ou =""; $search = preg_split('/[\s]+/',$search); $total_resultat = count($search); foreach($search as $key=>$searches) { $ou .= "titre LIKE '%$searches%'"; if($key !=($total_resultat-1)) { $ou .=" AND "; } } $result = $bdd->query("SELECT * FROM cinefilms WHERE $ou"); $rows = count($result); if($rows) { echo "tout est ok"; }else echo "c'est la merde"; } ?>
:(
maka54
Messages postés
698
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
4 décembre 2016
80
20 déc. 2011 à 14:30
20 déc. 2011 à 14:30
echo "tout est ok"; }else echo "c'est la merde";
}else quoi ??
tu n'as aucune condition ouverte avant
Melooo
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
84
Modifié par Melooo le 20/12/2011 à 14:39
Modifié par Melooo le 20/12/2011 à 14:39
Si la :
Ajoute peut être les accolades après le else
Quelle erreur as-tu ?
if($rows) { echo "tout est ok"; }else echo "c'est la merde";
Ajoute peut être les accolades après le else
Quelle erreur as-tu ?
maka54
Messages postés
698
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
4 décembre 2016
80
20 déc. 2011 à 14:43
20 déc. 2011 à 14:43
en effet, je suis pas tres bien réveillé ....
Bah si:
if($rows) // si la variable existe..
{
echo "tout est ok"; // alors on affiche ce message
}else echo "c'est la merde"; //a l'inverse celui-ci
J'utilise ce système depuis que j'ai appris le MySQL et ça a toujours très bien fonctionné... c'est juste pour vérifier en fait
if($rows) // si la variable existe..
{
echo "tout est ok"; // alors on affiche ce message
}else echo "c'est la merde"; //a l'inverse celui-ci
J'utilise ce système depuis que j'ai appris le MySQL et ça a toujours très bien fonctionné... c'est juste pour vérifier en fait
maka54
Messages postés
698
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
4 décembre 2016
80
20 déc. 2011 à 14:45
20 déc. 2011 à 14:45
ajoute
après
et regarde ce qu'il est écrit
print_r($result->errorInfo());
après
$result = $bdd->query("SELECT * FROM cinefilms WHERE $ou");
et regarde ce qu'il est écrit
Cela ne m'affiche rien :/
Et pour rep à Melooo
Là ça m'affiche "c'est la merde" ^^
Et pour rep à Melooo
$query = mysql_query("SELECT * FROM look WHERE $ou"); $rows = mysql_num_rows($query); if($rows) // mettre la variable adaptée { echo "tout est ok"; }else echo "c'est la merde";
Là ça m'affiche "c'est la merde" ^^
Melooo
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
84
20 déc. 2011 à 15:13
20 déc. 2011 à 15:13
mysql_num_rows compte le nombre de lignes que dégage ta requête...
essayes plutôt :
essayes plutôt :
if($rows >= 1) // mettre la variable adaptée { echo "tout est ok"; }else echo "c'est la merde";
Toujours "la merde" Melooo
Le problème vient de mysql_num_rows incompatible avec PDO...
La seule chose que je vois avec PDO c'est que des inconvénients lol
Un petit problème comme ça est entrain de se transformer en quelque chose d'irréalisable :'(
Le problème vient de mysql_num_rows incompatible avec PDO...
La seule chose que je vois avec PDO c'est que des inconvénients lol
Un petit problème comme ça est entrain de se transformer en quelque chose d'irréalisable :'(
Melooo
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
84
20 déc. 2011 à 15:33
20 déc. 2011 à 15:33
Alors j'ai jamais vu le PDO alors pas sur de ce que je vais te dire :
$query= 'SELECT * FROM look WHERE $ou'; $req = $dbh->query($query); $result = $req->fetchAll(); echo '<p>Cette requête retourne '.count($result)." enregistrements.</p>\n";
Melooo
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
84
20 déc. 2011 à 15:43
20 déc. 2011 à 15:43
Ce que je t'ai fourni doit fonctionner,
essayer d'afficher ta requête pour voir si elle est bien construire ;)
essayer d'afficher ta requête pour voir si elle est bien construire ;)
Je vais laisser tomber, je vais aller directement sur le site ou j'ai appris le mysql et PDO, j'espère qu'ils vont réussir à me répondre ;)
Bye et merci à tous
Bye et merci à tous
<?php include('bdd.php'); function resultat_recherche($search) { $ou =""; $search = preg_split('/[\s]+/',$search); $total_resultat = count($search); foreach($search as $key=>$searches) { $ou .= "titre LIKE '%$searches%'"; if($key !=($total_resultat-1)) { $ou .=" AND "; } } $query= 'SELECT * FROM look WHERE $ou'; $req = $dbh->query($query); $result = $req->fetchAll(); { echo '<p>Cette requête retourne '.count($result)." enregistrements.</p>\n"; } } ?>
Resultat page blanche...
Melooo
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
84
20 déc. 2011 à 15:53
20 déc. 2011 à 15:53
La construction de ton where ne doit pas être bonne... vérifie en affichant ta requete
maka54
Messages postés
698
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
4 décembre 2016
80
Modifié par maka54 le 20/12/2011 à 16:02
Modifié par maka54 le 20/12/2011 à 16:02
echo $query;
et test ta requête directement dans phpmyadmin
si çà marche, tu test ce code :
$query= 'ta requete sql'; $rs = $bdd->prepare($query); $error = $rs->execute(array()); if (!$error) { print_r($rs->errorInfo()); }else{ $rows = $rs->fetchAll(); print_r($rows); }
au passage, faut savoir : soit $dbh, soit $bdd, mais c'est ta variable de connexion à pdo qu'il faut mettre
Anoen
Messages postés
196
Date d'inscription
mardi 10 novembre 2009
Statut
Membre
Dernière intervention
11 septembre 2013
25
2 janv. 2012 à 15:40
2 janv. 2012 à 15:40
Je sais que je réponds un peu tard ^^'
Mais effectivement ta requête n'est pas bonne :
devrait plutôt être :
Mais effectivement ta requête n'est pas bonne :
'SELECT * FROM look WHERE $ou';
devrait plutôt être :
'SELECT * FROM look WHERE nomduchamp='.$ou;
maka54
Messages postés
698
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
4 décembre 2016
80
3 janv. 2012 à 19:45
3 janv. 2012 à 19:45
foreach($search as $key=>$searches) { $ou .= "titre LIKE '%$searches%'"; if($key !=($total_resultat-1)) { $ou .=" AND "; } }