IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

faire 2 requetes à la suite [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 119
    Points : 41
    Points
    41
    Par défaut faire 2 requetes à la suite
    Salut à tous,

    J'ai besoin de faire 2 requetes l'une apres l'autre, j'ai tenté ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    $query=mysql_query("select id_client, webmail, ticket, facture from collaborateur where login='$logstr' and password='$pswstr' and valide='Y'");						
    $data = mysql_fetch_array($query);
     
    if($data[0]==''){ 
     
    $query2=mysql_query("select id, acces_webmail, acces_ticket, acces_facture from client where login='$logstr' and password='$pswstr' and valide='Y'");
    $data = mysql_fetch_array($query2);
     
    }elseif($data[0]==''){echo "<span class='rougeG'>";
    		echo "Login ou Password incorrect. Merci de vous identifier";
    		echo "</span>";
    		$ok ="0";
    }else{
    session_start(); 
    $_SESSION['id_user'] = $data[0]; 
    }
    Mais bizarrement en local ce semble fonctionner mais pas sur mon serveur en ligne, avez-vous un meilleur moyen pour tester ça ?

    Merci de votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    1/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if($data[0]==''){ 
     
    ...
     
    }elseif($data[0]=='')
    Y'a comme un défaut, non ?

    le else doit être de trop...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['id_user'] = $data[0];
    OK. Mais comment tu différencies alors si c'est un client ou un collaborateur ? re

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 119
    Points : 41
    Points
    41
    Par défaut
    Je pense pas vu que la seconde requete prend le dessus sur la 1ere. Je teste la 1ere requete si data est vide je cree une seconde requete avec data. Sinon je vois pas trop comment faire pour pouvoir tester la 1ere table plus la seconde.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    De la même manière qu'il y a une variable $query2, ça serait plus clair avec une $data2 (ou n'importe quel nom approprié différent de $data).
    Christophe

    Pensez à mettre quand c'est le cas.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 119
    Points : 41
    Points
    41
    Par défaut
    Voila ce que j'ai tenté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    $query=mysql_query("select id, acces_webmail, acces_ticket, acces_facture from client where login='$logstr' and password='$pswstr' and valide='Y'");
    $data = mysql_fetch_row($query);
    $val1 = $data[0];
    $queryb=mysql_query("select id_client, webmail, ticket, facture from collaborateur where login='$logstr' and password='$pswstr' and valide='Y'");						
    $datab = mysql_fetch_row($queryb);
    $val2 = $datab[0];
     
    if($val1="")
    {echo "<span class='rougeG'>";
    		echo "Login ou Password incorrect. Merci de vous identifier";
    		echo "</span>";
    		$ok ="0";
    }
    elseif($val2=""){echo "<span class='rougeG'>";
    		echo "Login ou Password incorrect. Merci de vous identifier";
    		echo "</span>";
    		$ok ="0";
    }else{ mon code qui va bien }
    Cela fonctionne bien pour l'une des 2 requêtes mais pas pour l'autre

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Voir la différence entre une affectation et une comparaison...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <?php
    session_start(); 
    // (ICI, je suppose qu'on récupère $logstr et $pswstr...)
    	$logstr = $_POST['logstr'];
    	$pswstr = $_POST['pswstr'];
    // on PROTEGE les requetes contre injection SQL
    	$logstr = mysq_real_escape_string($logstr);
    	$pswstr = mysq_real_escape_string($pswstr);
    // initialisation des variables de sessions
    	$_SESSION['id_user'] = '';
    	$_SESSION['statut_user'] = '';
    if( !empty($logstr) && !empty($pswstr) )
    {
    	// 1/ on cherche d'abord dans les collaborateurs
    	$collaborateur_query = mysql_query("SELECT id_client FROM collaborateur WHERE login='$logstr' AND password='$pswstr' AND valide='Y'");						
    	$collaborateur_nombre = mysql_num_rows($collaborateur_query);
     
    	if($collaborateur_nombre==1){
    		// OK, on en a trouvé un
    		$collaborateur_row = mysql_fetch_array($collaborateur_query);
    		$_SESSION['id_user'] = $collaborateur_row['id_client'];
    		$_SESSION['statut_user'] = 'collaborateur';
    	} else {
    		// sinon, on cherche dans les clients
    		$client_query = mysql_query("SELECT id FROM client WHERE login='$logstr' AND password='$pswstr' AND valide='Y'");
    		$client_nombre = mysql_num_rows($client_query);
    		if($client_nombre==1){
    			$client_row = mysql_fetch_array($client_query);
    			$_SESSION['id_user'] = $client_row['id'];
    			$_SESSION['statut_user'] = 'client';
    		}
    	}
    }
    if( empty($_SESSION['id_user']) ){
    	echo "<span class='rougeG'>Login ou Password incorrect. Merci de vous identifier</span>";
    	// ré-affichage ou lien de retour au formuaire
    	// ...........
    }

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 119
    Points : 41
    Points
    41
    Par défaut
    Un grand merci à toi je vais tester ça rapidement !!!!

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 119
    Points : 41
    Points
    41
    Par défaut
    nickel ca fonctionne un grand merci à toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 12
    Dernier message: 16/09/2010, 19h17
  2. En difficulté pour faire une requete
    Par Fonzy17 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 21/03/2005, 10h56
  3. [SQL] problème pour faire ma requete
    Par seb.briet dans le forum Langage SQL
    Réponses: 4
    Dernier message: 29/12/2004, 16h51
  4. [http] comment faire une requete http
    Par Slimer dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 28/07/2004, 11h48
  5. Réponses: 2
    Dernier message: 03/05/2004, 12h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo