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 :

Incorrect integer value ?


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2020
    Messages : 32
    Par défaut Incorrect integer value ?
    Bonjour ! 4 jours que je suis sur ce problème, sans arriver à le résoudre ! C'est un journal de publication qui fonctionne très bien sur OVH et qui coince sur mon nouveau serveur chez LWS. Tout fonctionne parfaitement bien, mais impossible d'entrer les info en INSERT INTO ??? Voici d'abord le fichier en question qui gère le INTO et en dessous l'erreur qu'il me renvoi :

    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    <?php 
    if ($_SESSION['right'] != "") {
     
    	//on met le formulaire dans une fonction
    	function form() {
     
    		global $DBprfx,$DBConn,$setting,$send_var;
     
    		if (!isset($send_var['article_title'])) $send_var['article_title'] = "";
    		if (!isset($send_var['article_text'])) $send_var['article_text'] = "";
     
    		?>
    		<form action='admin.php?module=postarticle' method='POST' enctype='multipart/form-data' name='post_article'>
    		<table border="0" class="texte1">
      		<tr>
      		  <td>Titre:</td>
      		  <td><input value="<?php echo $send_var['article_title']; ?>" type='text' name='titre'></td>
          </tr>
          <tr>
            <td>&Agrave; paraitre dans l'&eacute;dition:</td>
            <td>
    			<select size='1' name='parent'>
    			<option selected="selected" value=""></option><?php
     
    			$sql = "SELECT * FROM " . $DBprfx . "edition";
    			$edition = mysql_query($sql, $DBConn) or die(mysql_error());
    			while ($array = mysql_fetch_array($edition)) {
    				$edition_id = mysql_result($edition, $i, 'edition_ID');
    				$edition_titre = mysql_result($edition, $i, 'edition_titre');
    				$edition_validity = mysql_result($edition, $i, 'edition_validity');
     
    				if ($setting['allow_post_on_active_ed'] == "true" or $edition_validity == 0) {
    					if ($send_var['article_parent'] == $edition_id) {
    						$selected = "selected='selected'";
    					} else {
    						$selected = "";
    					}
    					?>
    					<option <?php echo $selected; ?> value='<?php echo $edition_id; ?>'><?php echo $edition_titre; ?></option>
    					<?php
    				}
     
    			$i++;
    			}
    			?>
    			</select>
        	  </td>
      		</tr>
    		</table> 
     
    		<br><div class="texte1">Texte:</div>
          	<!--Btn bb_code--> 
            <?php bb_code_btn("article_text"); ?>
     
    		<textarea style="width:500px;height:300px" wrap="virtual" name="article_text"><?php echo $send_var['article_text']; ?></textarea>
            <br>
    		<input type='submit' value="Envoyer" name='submit_post_article' />
            <input type="submit" value="Pr&eacute;visualisation" name="preview" />
    		</form><?php
     
     
    	}
     
    ///////////
    //PREVIEW//
    ///////////
     
    	//Mode preview
    	if (isset($_POST['preview'])) {
     
    		$send_var['article_title'] = stripslashes($_POST['titre']);
    		$send_var['article_title'] = preg_replace ('/\</is', '&lt;', $send_var['article_title']); //on enlève le HTML.
    		$send_var['article_parent'] = $_POST['parent'];
    		$send_var['article_text'] = stripslashes($_POST['article_text']);
    		$send_var['article_text'] = preg_replace ('/\</is', '&lt;', $send_var['article_text']); //on enlève le HTML.
     
     
    		?><strong>Pr&eacute;visualisation:</strong><br />
            <table class="preview"><tr><td align="left"><?php
     
    		//on formate le BBcode
    		$article_texte_clean = bbcode_format(remove_html($send_var['article_text']));
     
    		?><span class="article_title"><?php echo $send_var['article_title'] ?></span><br>
    		  <span class="article_auteur">Par <?php echo get_username($_SESSION['user']) ?></span><br /><br>
    		  <span class="article_texte"><?php echo $article_texte_clean; ?></span><?php
     
    		?></td></tr></table>
            <br /><br /> 
     
    		<?php form();
     
     
    ////////
    //SEND//
    ////////
     
    	//Si le formulaire est envoyé...
    	} else if (isset($_POST['submit_post_article'])) {
     
    		$send_var['article_title'] = $_POST['titre'];
    		$send_var['article_title'] = preg_replace ('/\</is', '&lt;', $send_var['article_title']); //on enlève le HTML.
    		$send_var['article_parent'] = $_POST['parent'];
    		$send_var['article_text'] = $_POST['article_text'];
    		$send_var['article_text'] = preg_replace ('/\</is', '&lt;', $send_var['article_text']); //on enlève le HTML.
     
    		//On vérifie si l'article a un titre
    		if ($send_var['article_title'] == "") { 
    			?><span class="error">Veuillez pr&eacute;ciser un titre</span><?php
    			form();
     
    		//on défini si l'Article est valide ou pas
    		} else {
    			if ($_SESSION['right'] == 1 or $_SESSION['right'] == 3) {
    				$article_validity = "0";
    			} else {
    				$article_validity = "1";
    			}
     
    			//on insère dans MySQL
    			$sql = 'INSERT INTO ' . $DBprfx . 'article (`article_ID`,`article_titre`,`article_auteur`,`article_parent`,`article_texte`,`article_validity`) 
    					  VALUES (\'\','
    					   . '\'' . addslashes($send_var['article_title']) . '\',' 
    					   . '\'' . $_SESSION['user'] . '\',' 
    					   . '\'' . $send_var['article_parent'] . '\',' 
    					   . '\'' . addslashes($send_var['article_text']) . '\','
    					   . '\'' . $article_validity . '\'
    					   )';
     
     
    			//echo $send_var['article_parent'];
    			$insert = mysql_query($sql, $DBConn) or die(mysql_error());
     
    			$last_ID = mysql_insert_id();
     
    			$app_url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'];
    			$app_url = substr($app_url,0 ,-10);
    			$app_url = $app_url."/admin.php?module=articles&do=read&ID=".$last_ID."&from=all";
     
    			$date = date('Y-m-d H:i:s');
     
    			//on envoie un message aux admins et editeur si demander par ceux-ci et si ce n'est pas un d'eux qui l'a envoyé.
    			if ($_SESSION['right'] != 2 && $_SESSION['right'] != 4) {
     
    				//Le order by n'est que pour trouver le premier admin
    				$sqmail = "SELECT `ID`,`send_email`,`email`,`name` FROM " . $DBprfx . "user WHERE `right` = '2' UNION SELECT `ID`,`send_email`,`email`,`name`  FROM " . $DBprfx . "user WHERE `right` = '4' ORDER BY `ID` ASC";
     
    				$mail_to = mysql_query($sqmail, $DBConn) or die(mysql_error());
    				$ligne_mail = mysql_fetch_array($mail_to, MYSQL_ASSOC);
    				$nb = mysql_num_rows($mail_to);
     
     
    				$i = 0;
    				while ($array = mysql_fetch_array($mail_to)) {
    					$send_email = mysql_result($mail_to, $i, 'send_email');
    					$name = mysql_result($mail_to, $i, 'name');
    					$email = mysql_result($mail_to, $i, 'email');
     
    					//$pomme .= "-";
    					 if ($send_email == 1) {
     
     
     
    						 $user = get_username($_SESSION['user']);
    						 $Subject = "$user vient d'écrire un article pour ".$setting['journal_name'];
    					   $EmailBody = "Bonjour $name,\n\n $user a écrit un article pour ".$setting['journal_name'].".\nVous pouvez le consulter à l'adresse suivante: $app_url \n\n Bonne journée\nEnvoyé le: $date";
     
    						 mail($name." <".$email.">",$Subject, $EmailBody, "From: ".$setting['journal_name']." <".$ligne_mail['email'].">");
     
    					}
     
    					$i++;
    				}			 
    			}
     
    			//affiche un message de succes
    			?>
                <span class="succes">Votre article  &agrave; &eacute;t&eacute; cr&eacute;&eacute; avec succ&egrave;s!
                <?php
    			if ($_SESSION['right'] == 1 or $_SESSION['right'] == 3) {
    				?><br>Votre article doit &ecirc;tre approuv&eacute; par un administrateur avant sa publication<?php
    			}
    			?></span><br /><br /><a class="retour" href="admin.php?module=articles" title="Retour">Retour</a><?php
    		}
     
    	} else {
     
    		//on affiche le formulaire
    		form();
     
     
    	}
     
    } else { 
    	?><span class="error">Vous n'avez pas acc&egrave;s &agrave; ce module</span><?php
    }
     
    ?>
    Et l'erreur qu'il me renvoi :

    Incorrect integer value: '' for column `c1Journal`.`ABRACADA_article`.`article_ID` at row 1
    Merci si vous pouvez m'aider

  2. #2
    Membre Expert Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Par défaut
    Bonjour,

    article_ID c'est un auto incrément ?

    Apparemment les bases de données ne seraient pas les mêmes (MySql sur un serveur et Postgre SQL sur un autre par exemple ) ou de versions différentes ?

    Et ça c'est pour le moins curieux ...
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql = 'INSERT INTO ' . $DBprfx . 'article (`article_ID`,`article_titre`,`article_auteur`,`article_parent`,`article_texte`,`article_validity`)
    VALUES (\'\', ...

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2020
    Messages : 32
    Par défaut
    Bonjour vttman et merci pour ton aide,

    Oui, article_ID est un auto incrément. Il s'agit de créer un nouvel article, avec un titre parent du genre un titre "Sujet sur les Animaux" et l'article attaché en rapport. Je n'ai pas créé ce code...

    Je pense que cela coince justement au niveau de l'auto-increment. Il semble ne pas avoir la clé pour créer le nouveau numéro d'article. Pourtant l'auto-increment est bien indiqué dans la base Mysql et le numéro d'increment est bon. Je ne suis pas un pro en PHP, à vrai dire je bidouille avec... J'ai aussi cette information :

    Unknown: Skipping numeric key 2 in Unknown on line 0
    Peut-être que cela peut te servir pour m'aider. Ce qui est bizarre, c'est que je n'ai aucune alerte php comme si tout fonctionnait bien. C'est pour ça que je suis coincé, car je ne sait pas du tout ou ça coince ! Ce qui est étonnant, c'est que j'utilise le même script sur un autre serveur et qu'il marche impec ? Tout le reste du script php fonctionne parfaitement. C'est juste les enregistrements à la base qui coincent. Par contre, le script était plein de <? ... ?>, sans php. Sur mon autre serveur j'ai remplacé tous les <? par <?php et ça marche, mais pas sur ce serveur ?

    Merci de votre aide

  4. #4
    Membre Expert Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Par défaut
    Malheureusement je ne vais pas pouvoir aider plus, je n'ai jamais eu ce type d'erreur ...

    Quand j'ai des soucis avec mon code php, je debugge (error_reporting , var_dump)
    =>
    https://www.php.net/manual/fr/functi...-reporting.php
    https://www.php.net/manual/fr/function.var-dump.php

    Bon comme on n'est pas tout seul sur le forum, il y a aura sans doute d'autres propositions

  5. #5
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Je pense que cela coince justement au niveau de l'auto-increment. Il semble ne pas avoir la clé pour créer le nouveau numéro d'article. Pourtant l'auto-increment est bien indiqué dans la base Mysql et le numéro d'increment est bon.
    Je ne comprends pas ce que tu veux dire par "et le numéro d'increment est bon".

    Sinon au niveau de ta requête, pour le champ auto-incrémenté, soit tu ne le mentionnes pas dans le INSERT, soit tu lui passes DEFAULT ou NULL.

    Et attention, les fonctions mysql_* sont obsolètes depuis 10 ans, passe par PDO https://php.net/pdo

  6. #6
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2020
    Messages : 32
    Par défaut
    Merci vttman. Moi aussi, je n'ai jamais vu cette erreur ! Bon j'espère qu'effectivement, je vais trouver. Tout mon projet est bloqué à cause de cette erreur que je n'arrive pas à trouver ! Je suis en train de mettre les lignes de reporting d'erreur, comme tu m'as indiqué. Je vais voir ce que cela répond...

    Merci Seb pour ta réponse Le numéro d'auto increment, se trouve sur Mysql dans l'onglet "Opérations". Le chiffre du prochain article est indiqué. Parfois, ça ne marche pas, car le numéro ne correspond pas au cycle d'ajout des nouveaux articles. Donc là sur la base, tout est ok. Et comme je dis, ce même script sur un autre serveur fonctionne sans problème. Cela vient peut-être d'une fonction de mon nouveau serveur chez LWS. Si je ne trouve vraiment pas la réponse, je la soumettrai à LWS, ils sont au top pour aider

    Et tu as raison pour Mysqli ou PDO, mais pour l'instant, je reste en Mysql. Comme je suis sur un serveur dédié VPS, je peux choisir ma version de PHP qui est 5,6 et qui convient au mieux à mon travail de plus de 15 ans... ! Si je passe en 7.0, plus rien ne marche ! Je verrai plus tard pour passer aux autres versions. Donc, en 5.6, Mysql, fonctionne parfaitement. Cela ne vient donc pas de ça...

    Merci de votre aide les amis, vous êtes précieux... ! Sans vous, je n'en serai pas là où j'en suis aujourd'hui...

    Et si une personne peut m'aider à résoudre ce problème, ce serait super. Comme par exemple m'expliquer pourquoi j'ai cette alerte :

    Unknown: Skipping numeric key 2 in Unknown on line 0
    Merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/01/2018, 14h27
  2. Incorrect integer value
    Par laurentSc dans le forum Langage
    Réponses: 4
    Dernier message: 27/01/2018, 11h03
  3. Problème Java/SQL : Incorrect integer value
    Par phantomatiik dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 22/03/2012, 14h44
  4. [MySQL] Comprendre - Incorrect integer value: '' for column at row 1
    Par francois_a dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/09/2009, 04h04
  5. [mysql5]problème truncated incorrect double value xx
    Par moulefrite dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 10/11/2006, 17h17

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