Comparaison de requete SQL
Résolu/Fermé
smoutsmout
Messages postés
160
Date d'inscription
lundi 26 mai 2008
Statut
Membre
Dernière intervention
9 janvier 2009
-
8 janv. 2009 à 14:24
smoutsmout Messages postés 160 Date d'inscription lundi 26 mai 2008 Statut Membre Dernière intervention 9 janvier 2009 - 8 janv. 2009 à 18:01
smoutsmout Messages postés 160 Date d'inscription lundi 26 mai 2008 Statut Membre Dernière intervention 9 janvier 2009 - 8 janv. 2009 à 18:01
A voir également:
- Comparaison de requete SQL
- Comparaison million milliard - Accueil - Technologies
- Erreur lors de l'envoi de la requête facebook marketplace - Forum Facebook
- Sql lister les tables ✓ - Forum Programmation
- Blob sql ✓ - Forum Webmastering
- Logiciel comparaison photo gratuit - Télécharger - Photo & Graphisme
32 réponses
HostOfSeraphim
Messages postés
6750
Date d'inscription
jeudi 2 février 2006
Statut
Contributeur
Dernière intervention
31 juillet 2016
1 608
8 janv. 2009 à 14:27
8 janv. 2009 à 14:27
Tu fais un select basé sur ces 3 champs : si tu as 0 ligne en retour, c'est que l'enregistrement existe déjà. Sinon, tu peux lancer la requête d'insertion.
smoutsmout
Messages postés
160
Date d'inscription
lundi 26 mai 2008
Statut
Membre
Dernière intervention
9 janvier 2009
8 janv. 2009 à 14:33
8 janv. 2009 à 14:33
D'accord.
Et comment je fais pour savoir si il y a un résultat ?
Ca peut paraitre débile comme question mais je suis pas trop douée,lol.
Et comment je fais pour savoir si il y a un résultat ?
Ca peut paraitre débile comme question mais je suis pas trop douée,lol.
smoutsmout
Messages postés
160
Date d'inscription
lundi 26 mai 2008
Statut
Membre
Dernière intervention
9 janvier 2009
8 janv. 2009 à 14:51
8 janv. 2009 à 14:51
Personne pour me dire comment je sais si ma requête a un résultat ?
Benno
Messages postés
151
Date d'inscription
jeudi 1 mars 2007
Statut
Membre
Dernière intervention
13 avril 2009
112
8 janv. 2009 à 14:55
8 janv. 2009 à 14:55
Tu peux faire simplement le test après avoir affecté le résultat de ta requète dans
$resultat:
if(mssql_num_rows($resultat) == 0) { //Enregistrement présent dans la base }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
smoutsmout
Messages postés
160
Date d'inscription
lundi 26 mai 2008
Statut
Membre
Dernière intervention
9 janvier 2009
8 janv. 2009 à 15:04
8 janv. 2009 à 15:04
ok merci, je vais tester ca.
smoutsmout
Messages postés
160
Date d'inscription
lundi 26 mai 2008
Statut
Membre
Dernière intervention
9 janvier 2009
8 janv. 2009 à 15:21
8 janv. 2009 à 15:21
J'ai fait ca.
Dans le formulaire je saisi des champs qui n'exixtent pas dans la base donc il devrait ajouter l'enregistrement.
Je n'ais pas de message d'erreur mais il ne se passe rien dans ma base de données.
<?php
//script de connexion à la base sous SQLServer
include("connexion.inc");
//connexion à la base de données
$con=mssql_connect($host,$user,$pass)or die ("Probleme de connexion au serveur");
mssql_select_db($BDD,$con)or die ("Problème d'accès à la base de données bdd_test_pilotes");
//récupération des données formulaire
$table="pilotes";
$nom=""; if(!empty($_POST["fnom"]))
$pays=$_POST["fnom"];
$prenom=""; if(!empty($_POST["fprenom"]))
$pays=$_POST["fprenom"];
$date=""; if(!empty($_POST["fdate"]))
$pays=$_POST["fdate"];
// Recherche le numero du pays
$query = "SELECT nom, prenom, date_naissance FROM $table WHERE nom='$nom, prenom=$prenom, date_naissance=$date'";
if(($nom!='')&&($prenom!='')&&($date!=''))
{
$result = mssql_query($query);
if (mssql_num_rows($result) == 0)
{
$query1 = "insert into $table (code, nom, prenom, date_naissance) values ('000002', $nom, $prenom, $date)";
}
else
{
echo "Enregistrement déjà présent dans la base de données.";
}
}
@mssql_close(); // Fermeture de la connexion
?>
Ou est le probleme ?
Dans le formulaire je saisi des champs qui n'exixtent pas dans la base donc il devrait ajouter l'enregistrement.
Je n'ais pas de message d'erreur mais il ne se passe rien dans ma base de données.
<?php
//script de connexion à la base sous SQLServer
include("connexion.inc");
//connexion à la base de données
$con=mssql_connect($host,$user,$pass)or die ("Probleme de connexion au serveur");
mssql_select_db($BDD,$con)or die ("Problème d'accès à la base de données bdd_test_pilotes");
//récupération des données formulaire
$table="pilotes";
$nom=""; if(!empty($_POST["fnom"]))
$pays=$_POST["fnom"];
$prenom=""; if(!empty($_POST["fprenom"]))
$pays=$_POST["fprenom"];
$date=""; if(!empty($_POST["fdate"]))
$pays=$_POST["fdate"];
// Recherche le numero du pays
$query = "SELECT nom, prenom, date_naissance FROM $table WHERE nom='$nom, prenom=$prenom, date_naissance=$date'";
if(($nom!='')&&($prenom!='')&&($date!=''))
{
$result = mssql_query($query);
if (mssql_num_rows($result) == 0)
{
$query1 = "insert into $table (code, nom, prenom, date_naissance) values ('000002', $nom, $prenom, $date)";
}
else
{
echo "Enregistrement déjà présent dans la base de données.";
}
}
@mssql_close(); // Fermeture de la connexion
?>
Ou est le probleme ?
Benno
Messages postés
151
Date d'inscription
jeudi 1 mars 2007
Statut
Membre
Dernière intervention
13 avril 2009
112
8 janv. 2009 à 15:28
8 janv. 2009 à 15:28
$table="pilotes"; $nom=""; if(!empty($_POST["fnom"])) $pays=$_POST["fnom"]; $prenom=""; if(!empty($_POST["fprenom"])) $pays=$_POST["fprenom"]; $date=""; if(!empty($_POST["fdate"])) $pays=$_POST["fdate"];
Ton code d'affectation des données du formulaire (ci-dessus) n'est pas clair du tout : pourquoi affectes-tu à la suite 3 valeurs différentes à la suite à $pays?? Et pourquoi cette variable s'appelle-t-elle pays? :-)
Je te suggère donc pour que cela fonctionne:
$table="pilotes"; $nom=""; if(!empty($_POST["fnom"])) $nom=$_POST["fnom"]; $prenom=""; if(!empty($_POST["fprenom"])) $prenom=$_POST["fprenom"]; $date=""; if(!empty($_POST["fdate"])) $date=$_POST["fdate"];
smoutsmout
Messages postés
160
Date d'inscription
lundi 26 mai 2008
Statut
Membre
Dernière intervention
9 janvier 2009
8 janv. 2009 à 15:32
8 janv. 2009 à 15:32
oups sorry.
le truc c'est pas ca, c'était pas la bonne sauvegarde.
c'est ca en fait :
$table="pilotes";
$nom=""; if(!empty($_POST["fnom"]))
$nom=$_POST["fnom"];
$prenom=""; if(!empty($_POST["fprenom"]))
$prenom=$_POST["fprenom"];
$date=""; if(!empty($_POST["fdate"]))
$date=$_POST["fdate"];
c'est sur que c'était pas logique lol.
le truc c'est pas ca, c'était pas la bonne sauvegarde.
c'est ca en fait :
$table="pilotes";
$nom=""; if(!empty($_POST["fnom"]))
$nom=$_POST["fnom"];
$prenom=""; if(!empty($_POST["fprenom"]))
$prenom=$_POST["fprenom"];
$date=""; if(!empty($_POST["fdate"]))
$date=$_POST["fdate"];
c'est sur que c'était pas logique lol.
Bonjour
Les apostrophes doivent être autour de chaque valeur de champ :
de plus, ce test if(($nom!='')&&($prenom!='')&&($date!='')) est absurde : c'est toi qui as mis de valeurs dans les variables $nom, $prenom, etc...
Ne crois pas qu'elles sont modifiées par la requête.
Ce qu'il faut c'est vérifier si la requête te renvoie au moins une ligne de résultat, ce qui doit pouvoir se faire par un SELECT COUNT(*) from $table etc...
Les apostrophes doivent être autour de chaque valeur de champ :
$query = "SELECT nom, prenom, date_naissance FROM $table WHERE nom='$nom', prenom='$prenom', date_naissance='$date'";
de plus, ce test if(($nom!='')&&($prenom!='')&&($date!='')) est absurde : c'est toi qui as mis de valeurs dans les variables $nom, $prenom, etc...
Ne crois pas qu'elles sont modifiées par la requête.
Ce qu'il faut c'est vérifier si la requête te renvoie au moins une ligne de résultat, ce qui doit pouvoir se faire par un SELECT COUNT(*) from $table etc...
D'ailleurs, il y a une erreur de syntaxe, les conditions doivent être reliées par des AND
$query = "SELECT nom, prenom, date_naissance FROM $table WHERE nom='$nom' AND prenom='$prenom' AND date_naissance='$date'";
smoutsmout
Messages postés
160
Date d'inscription
lundi 26 mai 2008
Statut
Membre
Dernière intervention
9 janvier 2009
8 janv. 2009 à 15:47
8 janv. 2009 à 15:47
Je veux bien te croire si tu dis que c'est absurde, je sais pas a quoi ca sert ca.
J'ai repris le code d'une autre appli pour faire ca, comme y avait ca et je ne savais pas à quoi ca sert j'ai préféré pas y toucher.
Donc si je te suis bien, dans $query, je doit mettre la requete select count(*)
c'est ca ?
J'ai repris le code d'une autre appli pour faire ca, comme y avait ca et je ne savais pas à quoi ca sert j'ai préféré pas y toucher.
Donc si je te suis bien, dans $query, je doit mettre la requete select count(*)
c'est ca ?
Pardon, je crois bien que j'avais lu ton script un peu trop vite. Il n'est pas absurde.
Oublie tout ce que j'ai dit, sauf la remarque sur les apostrophes message 9
Les apostrophes doivent être autour de chaque valeur de champ :
mais il faut aussi exécuter ta requête $query1 si tu veux qu'elle fasse quelque chose dans ta base !
i
Oublie tout ce que j'ai dit, sauf la remarque sur les apostrophes message 9
Les apostrophes doivent être autour de chaque valeur de champ :
$query = "SELECT nom, prenom, date_naissance FROM $table WHERE nom='$nom', prenom='$prenom', date_naissance='$date'";
mais il faut aussi exécuter ta requête $query1 si tu veux qu'elle fasse quelque chose dans ta base !
i
f (mssql_num_rows($result) == 0) { $query1 = "insert into $table (code, nom, prenom, date_naissance) values ('000002', $nom, $prenom, $date)"; mssql_query($query1); }
niahoo
Messages postés
247
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
23 mai 2010
19
8 janv. 2009 à 16:06
8 janv. 2009 à 16:06
$query = "SELECT nom, prenom, date_naissance FROM ".$table." WHERE nom='".$nom."' AND prenom='".$prenom".' AND date_naissance='".$date."'"; $rs=mssql_query($query, $con); if(mssql_num_rows($rs)!=0) { echo("Utilisateur déja enregistré"); } else { mssql_query("INSERT INTO ".$table." (nom, prenom, date_naissance) VALUES ('".$nom."', '".$prenom."', '".$date."')", $con); }
si ton champ code est en auto increment ou serial, tu ne dois pas le mettre dan ta requête
décidément, je n'y arriverai pas... Il faut bien les AND aussi
$query = "SELECT nom, prenom, date_naissance FROM $table WHERE nom='$nom' AND prenom='$prenom' AND date_naissance='$date'";
$query = "SELECT nom, prenom, date_naissance FROM $table WHERE nom='$nom' AND prenom='$prenom' AND date_naissance='$date'";
smoutsmout
Messages postés
160
Date d'inscription
lundi 26 mai 2008
Statut
Membre
Dernière intervention
9 janvier 2009
8 janv. 2009 à 16:13
8 janv. 2009 à 16:13
j'ai bien mis les apostrophes.
et j'ai rajouté la ligne que tu m'a dit.
Mais il ne se passe rien dans la base.
et j'ai pas de message d'erreur c'est déjà bien. hi
et j'ai rajouté la ligne que tu m'a dit.
Mais il ne se passe rien dans la base.
et j'ai pas de message d'erreur c'est déjà bien. hi
niahoo
Messages postés
247
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
23 mai 2010
19
8 janv. 2009 à 16:17
8 janv. 2009 à 16:17
t'as essayé ce que je t'ai donné ?
smoutsmout
Messages postés
160
Date d'inscription
lundi 26 mai 2008
Statut
Membre
Dernière intervention
9 janvier 2009
8 janv. 2009 à 16:24
8 janv. 2009 à 16:24
toto : J'ai bien rajouté les and aussi tkt, lol. ca fait rien.
niahoo : dsl ta solution ne marche pas non plus
C'est le néant aucune action, la requete insert ne s'effectue pas
mystère....lol
niahoo : dsl ta solution ne marche pas non plus
C'est le néant aucune action, la requete insert ne s'effectue pas
mystère....lol
smoutsmout
Messages postés
160
Date d'inscription
lundi 26 mai 2008
Statut
Membre
Dernière intervention
9 janvier 2009
8 janv. 2009 à 16:38
8 janv. 2009 à 16:38
Je vois vraiment pas de quoi ca peut venir.
niahoo
Messages postés
247
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
23 mai 2010
19
8 janv. 2009 à 16:40
8 janv. 2009 à 16:40
essaie de lui rajouter des signalemens, comme ça:
$query = "SELECT nom, prenom, date_naissance FROM ".$table." WHERE nom='".$nom."' AND prenom='".$prenom".' AND date_naissance='".$date."'"; $rs=mssql_query($query, $con); if(mssql_num_rows($rs)!=0) { echo("Utilisateur déja enregistré"); } else { if(!mssql_query("INSERT INTO ".$table." (nom, prenom, date_naissance) VALUES ('".$nom."', '".$prenom."', '".$date."')", $con)) { echo("samarshpa"); } else { echo("c bon"); } }
smoutsmout
Messages postés
160
Date d'inscription
lundi 26 mai 2008
Statut
Membre
Dernière intervention
9 janvier 2009
8 janv. 2009 à 16:49
8 janv. 2009 à 16:49
je vais devenir folle avec ce truc !!!
il ne se passe strictement rien.
Je doit faire un truc de travers c'est pas possible.
il ne se passe strictement rien.
Je doit faire un truc de travers c'est pas possible.