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 :

Probleme PHP et MySQL


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 17
    Points : 13
    Points
    13
    Par défaut Probleme PHP et MySQL
    Salut à tous

    Je programme avec PHP5
    Je définis dans la table virements_prives le champ "num_mat_vrmt"
    comme étant un varchar(20).

    Mais quand je transmet une valeur alpha-numérique il prend cette valeur
    comme nom du champ et la requete echoue forcement.

    Mais quand j'execute la requete directement dans phpmyadmin ça passe
    et dans le code non!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE virements_prives SET id_vrmt='163718', num_mat_vrmt='907012', montant_vrmt='100000', date_vrmt='2010-08-28', date_gene_vrmt='0000-00-00', code_soc_vrmt='67', ident_vrmt='1' WHERE id_vrmt=163718
    UPDATE virements_prives SET id_vrmt='163674', num_mat_vrmt='267910222', montant_vrmt='123000', date_vrmt='2010-08-28', date_gene_vrmt='2009-12-24', code_soc_vrmt='2679', ident_vrmt='1' WHERE id_vrmt=163674
    Database query failed: Unknown column '903644F' in 'where clause'

    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Ca n'est pas très clair mais si tu utilises l'extension mysql_xxxx tu ne peux pas executer plusieurs requêtes d'un coup.

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 17
    Points : 13
    Points
    13
    Par défaut probleme php et Mysql
    le champ "num_mat_vrmt" quand la valeur correspondante est une chaine de caractere il retourne cette erreur, mais quand elle est numeric pas de probleme

    Quand la valeur est alpha-numeric la requete prend la valeur comme nom du
    champ, c'est à dire au lieu de "num_mat_vrmt" elle prend par exemple "3445L"
    si c'était ça la valeur à insèrer

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    A quoi ressemble ton code PHP ?

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Je veux mettre en jour une base de données en envoyant le données par lot.

    Le code du formulaire:
    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
    39
    40
    41
    42
     
    if($salaries){
    							echo '<form method="POST" action="createsalaireprive.php" >';
    							$societe	=	Societe::find_by_code($_GET['societe']);
    							$date		= 	date('Y-m-d');
    							foreach ($salaries as $salarie) {
     
    								echo'<tr>';
                                    echo '<td ><input type="text" disabled="true" name="nom_sal[]" value="'.$salarie->nom_sal.'"/></td>';
     
    								$num = $salarie->num_mat_domicil;
    								if($num){
    									$vire = VirementPrive::find_by_mat($num);
     
    									if($vire){
    										if($date	-	$vire->date_vrmt	<	30  ){
    											echo '<td ><input type="text"  disabled="true" name="num_mat[]" value="'.$salarie->num_mat_sal.'"/></td>';
    											echo '<td ><input type="text"  disabled="true" name="montant[]" value="'.$vire->montant_vrmt.'"/> </td>';
    										}
     
    										else{
    											echo '<td ><input type="text"  name="num_mat[]" value="'.$salarie->num_mat_sal.'"/></td>';
    											echo '<td ><input type="text"  name="montant[]" /> </td>';
    										}
    									}
    								}
    								else{
    										echo '<td ><input type="text"  name="num_mat[]" value="'.$salarie->num_mat_sal.'"/></td>';
    										echo '<td ><input type="text"  name="montant[]" /> </td>';
    									}
     
                                    //echo '<td ><input type="hidden"  name="code_soc'.$i.'" value="'.$societe->code_societe.'" /> </td>';
    								echo '<td ><input type="hidden"  name="code_soc" value="'.$societe->code_societe.'" /> </td>';
     
                                    echo'</tr>';
     
    							}
    							echo '<tr align="right"><td >&nbsp;&nbsp;</td><td >&nbsp;&nbsp;</td>';
    								echo '<td class="sal"><input type="submit" value="Valider"/></td>';
    							echo '<tr>';
                                echo '</form>';
    			}
    Le code du fichier de traitement:

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    <?php
        $redir;
        if(count($_POST)/2>0){
     
            $code_soc    =    $_POST['code_soc'];
            $date_vrmt     = date('Y-m-d');    
            //for($i=0; $i<=count($_POST);$i++){
     
                if(!empty($_POST['montant']) && !empty($_POST['num_mat'])){
     
                    $num_mat    =    $_POST["num_mat"];
                    $montant    =    $_POST['montant'];
     
                    for($i=0; $i<count($num_mat);$i++){
     
                        if(!empty($num_mat[$i]) && !empty($montant[$i])  && is_numeric($montant[$i])){
                                    //echo $num_mat[$i].'  '.$montant[$i].'<br>';
     
                                    $nummat     =     $num_mat[$i];
                                    $mont        =     $montant[$i];
     
                                    $virementp = VirementPrive::find_by_mat($nummat);
     
                                    // SI LE DOMICILIE AVAIT UN VIREMENT 
                                    if($virementp){
                                        if(is_array($virementp)){
                                            $virementp    =    $virementp[0];
                                        }
                                       $virementp->montant_vrmt        =    $mont;
                                       $virementp->date_vrmt        =    $date_vrmt;
                                       $virementp->ident_vrmt        =    1;
                                    }
                                    // SINON
                                    else{
                                        $virementp = new VirementPrive();
                                        $virementp->montant_vrmt    =    $mont;
                                        $virementp->date_vrmt        =    $date_vrmt;
                                        $virementp->ident_vrmt        =    1;
                                        $virementp->num_mat_vrmt    =   $nummat;
                                        $virementp->code_soc_vrmt   =   $code_soc;
                                    }
                                    // ON SAUVE ET REDIRIGER VERS LA PAGE CONSERNANT LA SOCIETE EN QUESTION
                                    $virementp->save();
     
                        }
                    }
                    /*
                    $redir    =    '../app/listesalariedesociete.php?option=create&societe='.$code_soc;
                    echo '<script type="text/javascript"> 
                        self.location.href="'.$redir.'"; 
                      </script>"';
                      */
     
                }
                else{
                    $redir    =    '../app/listesalariedesociete.php?option=create&societe='.$code_soc;
                    echo '<script type="text/javascript"> 
                            self.location.href="'.$redir.'"; 
                      </script>"';
            }
        }
        else{
            $redir    =    '../app/listesalariedesociete.php?option=create&societe='.$code_soc;
            echo '<script type="text/javascript"> 
                    self.location.href="'.$redir.'"; 
                 </script>"';
        }
     
    ?>

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    il n'y a pas de requete dans ce code.

  7. #7
    Membre confirmé
    Avatar de tse_jc
    Homme Profil pro
    Data Solutions
    Inscrit en
    Août 2010
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Data Solutions
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 287
    Points : 597
    Points
    597
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    Juste comme ça, essaye de mettre ton id dans ta clause where entre simples quotes. (WHERE id_vrmt='163674')

    ++

  8. #8
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 17
    Points : 13
    Points
    13
    Par défaut Probleme PHP et MySQL
    Salut et excusez-moi!

    En fait le probléme était du fait que j'ai oublié de mettre les valeurs entre unicode:

    SELECT * FROM domicliations_prive WHERE num_mat_sal = '47555Y';

    Au lieu de ça:

    SELECT * FROM domicliations_prive WHERE num_mat_sal = 47555Y;

    Si le numéro matricule était numéric pas de probléme mais quand valeur alpha-numeric, comme qu'il n'y avait pas d'unicode il prend la comparaison comme une affectation

    Merci

Discussions similaires

  1. Probleme de requete MySQL dans PHP
    Par cheers94wow dans le forum Requêtes
    Réponses: 7
    Dernier message: 04/05/2006, 17h25
  2. Problème entre PHP et MySQL
    Par kornmuse90 dans le forum Installation
    Réponses: 12
    Dernier message: 19/04/2006, 18h37
  3. [MySQL] encore un probleme php mysql
    Par ph_anrys dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 02/03/2006, 16h14
  4. Probleme Php et Mysql
    Par lemagicien dans le forum Requêtes
    Réponses: 13
    Dernier message: 18/10/2005, 14h09
  5. [SGBD] Probleme Avec Php et Mysql
    Par junior258 dans le forum Installation
    Réponses: 2
    Dernier message: 20/09/2005, 10h39

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