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 :

Problème d'une fonction [ODBC]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de ideox
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2014
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Décembre 2014
    Messages : 47
    Par défaut Problème d'une fonction
    Bonsoir,
    Je rencontre un problème sur mon code qui est le suivant :
    Code php : 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
    39
    40
    41
    42
    43
    <?php
    	// Connexion à un moteur SQL Serveur
    	require_once('db_config.php');
     
    	// On définis les variables
    	$joueur = isset($_POST['Joueur']) ? trim($_POST['Joueur']) : '';
    	$errors1 = array();
    	$errors2 = array();
    	$success = false;
    	if(isset($_POST) && !empty($_POST)){
    	require_once('db.php');
     
    	// On vérifie l'éxistance du joueur ou non
    	$check = "SELECT Joueur FROM PS_DATABASE.dbo.table where Joueur LIKE '.$joueur.'";
    	$ck = odbc_prepare($GLOBALS['dbConn'],$check);
    				if(!odbc_execute($ck))
    				{
    					$errors1[] = "Ne peut vérifier votre inscription.";
    				}
    				if (empty($joueur)){
    		$errors1[] = 'Entrez votre nom de membre';
    	}
     
    	// Requête sql
    	if(count($errors1) == 0){
    		$sql = "INSERT INTO PS_DATABASE.dbo.table
    				(Joueur,Status) VALUES ('".$joueur."','1')";
    				$stmt = odbc_prepare($GLOBALS['dbConn'],$sql);
    				if(!odbc_execute($stmt))
    				{
    					$errors2[] = "Erreur d'execution de la requête dans la base de données.";
    				} else {
    			$success = " {$joueur} est activé ";
    			}
    		}
    	}
    	// Quelques fichiers importants pour le visuel
    	if($success === false){
    	require_once('register.view.php');
    	}else{
    	require_once('success.view.php');
    	}
    ?>

    Mon code est constitué d'un première partie qui est sensé vérifier si le texte entrer dans la forme post existe déjà ou non dans la table. Si oui -> erreur, si non on passe à la 2e étapes (on ajoute se nom dans la base de données).
    Sauf que le forme de vérifcaton ne fonctionne pas, je peux et j'ajoute autant de fois le même texte sans soucis ...
    un problème des if/esle ???
    Merci!

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Sur quelle ligne est le code "si le nom est déjà renseigné dans la table" ?

    Au passage on ne met pas dans une requête des données saisie par l'utilisateur sans les sécuriser.
    Tu utilises une requête préparée, c'est bien, sauf que tu as mis directement la valeur au lieu d'un paramètre.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti Avatar de ideox
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2014
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Décembre 2014
    Messages : 47
    Par défaut
    C'est à partir de // On vérifie l'existence du joueur ou non (L.12)

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    oui mais quelle ligne precisemment fait le test ?
    Tu dois bien avoir une condition pour dire "s'il en a un" avec l'erreur associée en dessous non ? Je ne vois rien de tout ça.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti Avatar de ideox
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2014
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Décembre 2014
    Messages : 47
    Par défaut
    J'ai donc rajouter cela :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $retour = odbc_execute($ck);
                if(!odbc_execute($ck))
                {
                   $errors[] = "Ne peut vérifier votre inscription.";
                }
                if (odbc_num_rows($retour)==0)
                {
                echo ("Pas la");
             }
          else
          {
          $sql = "INSERT INTO PS_DATABASE.dbo.Table
                (Joueur,Status) VALUES ('".$joueur."','1')";

    mais mon erreur est la suivante :
    odbc_num_rows() expects parameter 1 to be resource, boolean given
    Code entier :
    Code php : 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
    39
    40
    41
    42
    43
    44
    45
    <?php
       // Connexion à un moteur SQL Serveur
       require_once('db_config.php');
     
       // On définis les variables
       $joueur = isset($_POST['Joueur']) ? trim($_POST['Joueur']) : '';
       $errors = array();
       $success = false;
       if(isset($_POST) && !empty($_POST)){
       require_once('db.php');
     
       // On vérifie l'éxistance du joueur ou non
       $check = "SELECT Joueur FROM PS_DATABASE.dbo.Table where Joueur LIKE '$joueur'";
       $ck = odbc_prepare($GLOBALS['dbConn'],$check);
       $retour = odbc_execute($ck);
                if(!odbc_execute($ck))
                {
                   $errors[] = "Ne peut vérifier votre inscription.";
                }
                if (odbc_num_rows($retour)==0)
                {
                echo ("Pas la");
             }
          else
          {
          $sql = "INSERT INTO PS_DATABASE.dbo.Table
                (Joueur,Status) VALUES ('".$joueur."','1')";
                $stmt = odbc_prepare($GLOBALS['dbConn'],$sql);
                if(!odbc_execute($stmt))
                {
                   $errors[] = "Erreur d'execution de la requête dans la base de données.";
                }
                else
                {
             $success = " {$joueur} est activé ";
             }
          }
       }
       // Quelques fichiers importants pour le visuel
       if($success === false){
       require_once('register.view.php');
       }else{
       require_once('success.view.php');
       }
    ?>

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ne fais pas deux execute

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     $retour = odbc_execute($ck);
                if($retour == FALSE)
                {
                   $errors[] = "Ne peut vérifier votre inscription.";
                }
                elseif (odbc_num_rows($retour)==0)
                {
                echo ("Pas la");
                }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Problème avec une fonction
    Par mademoizel dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 24/06/2006, 10h51
  2. problème avec une fonction javaScript
    Par volthur dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/05/2006, 18h04
  3. Problème avec une fonction utilisateur !
    Par nalou dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 20/04/2006, 17h06
  4. Problème avec une fonction et un array
    Par Neal Morse dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/08/2005, 12h04
  5. Problème avec une fonction date.
    Par kmayoyota dans le forum ASP
    Réponses: 8
    Dernier message: 09/09/2004, 12h33

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