Pourquoi T au lieu de 1
JF
-
JF -
JF -
Bonjour,
Je voudrais savoir pourquoi lors de l'enregistrement dans la table, il me met T dans la colonne num ?? jessaye de mettre un nombre 1,2,3,4 .....9999999 qui s'enregistre automatiquement
$sql2 = "SELECT max(num) FROM infos_tbl";
mysql_query ($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());
$np=ATK00;
$nb = $np.$sql2['num'];
$nb++;
// on écrit la requête sql
$sql = "INSERT INTO infos_tbl(nom, prenom,email, titre, url, num) VALUES('$nom','$prenom','$email','$titre','$url','$nb')";
enfaite sa devrait enregistrer ATK001, ATK002 ainsi de suite
mais sa enregistre ATK00T, ATK00T, ATK00T ...
Je voudrais savoir pourquoi lors de l'enregistrement dans la table, il me met T dans la colonne num ?? jessaye de mettre un nombre 1,2,3,4 .....9999999 qui s'enregistre automatiquement
$sql2 = "SELECT max(num) FROM infos_tbl";
mysql_query ($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());
$np=ATK00;
$nb = $np.$sql2['num'];
$nb++;
// on écrit la requête sql
$sql = "INSERT INTO infos_tbl(nom, prenom,email, titre, url, num) VALUES('$nom','$prenom','$email','$titre','$url','$nb')";
enfaite sa devrait enregistrer ATK001, ATK002 ainsi de suite
mais sa enregistre ATK00T, ATK00T, ATK00T ...
A voir également:
- Pourquoi T au lieu de 1
- Voir un lieu en direct par satellite - Guide
- Excel afficher 01 au lieu de 1 - Guide
- Mon clavier écrit en majuscule au lieu de minuscule ✓ - Forum Clavier
- Trouver un lieu avec coordonnées gps - Guide
- Iphone wlan au lieu de wifi - Forum WiFi
5 réponses
c'est cela que je ne comprend pas
enfaite au début je récupère la valeur la plus grande ensuite j'essaye de faire un ++
mais il n'y a pas de nombre, pas facile de trouver un max
j'ai beau enregistrer mais ca n'enregistre que T
enfaite au début je récupère la valeur la plus grande ensuite j'essaye de faire un ++
mais il n'y a pas de nombre, pas facile de trouver un max
j'ai beau enregistrer mais ca n'enregistre que T
ah oui suis-je bête...
Le problème c'est que le champ num de votre table n'est pas un entier puisqu'on inscrit ATK001 dedans donc la fonction max ne peut pas fonctionner donc il faut faire
select num FROM infos_tbl order by num DESC
EDIT et ensuite faire un substring pour récupérer uniquement la fin du champ voir le faire dans la requête s'il est accepté
Le problème c'est que le champ num de votre table n'est pas un entier puisqu'on inscrit ATK001 dedans donc la fonction max ne peut pas fonctionner donc il faut faire
select num FROM infos_tbl order by num DESC
EDIT et ensuite faire un substring pour récupérer uniquement la fin du champ voir le faire dans la requête s'il est accepté
voila ce qu'il y a après la requete
// on écrit la requête sql
$sql = "INSERT INTO infos_tbl(nom, prenom,email, titre, url, num) VALUES('$nom','$prenom','$email','$titre','$url','$nb')";
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
//on affiche le résultat pour le visiteur
echo 'Vos infos on été ajoutées.';
mysql_close(); // on ferme la connexion
}
?>
<p><?php echo $max; ?></p>
<br /><a href="contact.html"><strong> <font size="5"> Retour </font></strong></a>
</body>
</html>
// on écrit la requête sql
$sql = "INSERT INTO infos_tbl(nom, prenom,email, titre, url, num) VALUES('$nom','$prenom','$email','$titre','$url','$nb')";
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
//on affiche le résultat pour le visiteur
echo 'Vos infos on été ajoutées.';
mysql_close(); // on ferme la connexion
}
?>
<p><?php echo $max; ?></p>
<br /><a href="contact.html"><strong> <font size="5"> Retour </font></strong></a>
</body>
</html>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
:D
voila tous mon code alors :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ajout</title>
</head>
<body>
<?php
$num = $_POST['num'];
// On commence par récupérer les champs
if(isset($_POST['nom'])) $nom=$_POST['nom'];
else $nom="";
if(isset($_POST['prenom'])) $prenom=$_POST['prenom'];
else $prenom="";
if(isset($_POST['email'])) $email=$_POST['email'];
else $email="";
if(isset($_POST['icq'])) $icq=$_POST['icq'];
else $icq="";
if(isset($_POST['titre'])) $titre=$_POST['titre'];
else $titre="";
if(isset($_POST['url'])) $url=$_POST['url'];
else $url="";
// On vérifie si les champs sont vides
if(empty($nom) OR empty($prenom) OR empty($email) OR empty($titre) OR empty($url))
{
echo '<font color="red">Attention, seul le champs <b>ICQ</b> peut rester vide !</font>';
}
// Aucun champ n'est vide, on peut enregistrer dans la table
else
{
// connexion à la base
$db = mysql_connect("localhost","root", "") or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('base',$db) or die('Erreur de selection '.mysql_error());
// for ($i =0; $i <= 5; $i++)
//{
//$num = 'p'.$i;
$sql2 = "SELECT num FROM infos_tbl order by num DESC";
$requete = mysql_query ($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());
$i = 0 ;
while($resultat=mysql_fetch_row($requete) && $i==0)
{ echo $i;
$max = $resultat[0];
$i++;
}
$max = substr($max, 5, strlen($max));
$np=ATK00;
$nb = $max + 1;
$nb = $np.$nb;
// on écrit la requête sql
$sql = "INSERT INTO infos_tbl(nom, prenom,email, titre, url, num) VALUES('$nom','$prenom','$email','$titre','$url','$nb')";
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
//on affiche le résultat pour le visiteur
echo 'Vos infos on été ajoutées.';
mysql_close(); // on ferme la connexion
}
?>
<p><?php echo $max; ?></p>
<br /><a href="contact.html"><strong> <font size="5"> Retour </font></strong></a>
</body>
</html>
voila tous mon code alors :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ajout</title>
</head>
<body>
<?php
$num = $_POST['num'];
// On commence par récupérer les champs
if(isset($_POST['nom'])) $nom=$_POST['nom'];
else $nom="";
if(isset($_POST['prenom'])) $prenom=$_POST['prenom'];
else $prenom="";
if(isset($_POST['email'])) $email=$_POST['email'];
else $email="";
if(isset($_POST['icq'])) $icq=$_POST['icq'];
else $icq="";
if(isset($_POST['titre'])) $titre=$_POST['titre'];
else $titre="";
if(isset($_POST['url'])) $url=$_POST['url'];
else $url="";
// On vérifie si les champs sont vides
if(empty($nom) OR empty($prenom) OR empty($email) OR empty($titre) OR empty($url))
{
echo '<font color="red">Attention, seul le champs <b>ICQ</b> peut rester vide !</font>';
}
// Aucun champ n'est vide, on peut enregistrer dans la table
else
{
// connexion à la base
$db = mysql_connect("localhost","root", "") or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('base',$db) or die('Erreur de selection '.mysql_error());
// for ($i =0; $i <= 5; $i++)
//{
//$num = 'p'.$i;
$sql2 = "SELECT num FROM infos_tbl order by num DESC";
$requete = mysql_query ($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());
$i = 0 ;
while($resultat=mysql_fetch_row($requete) && $i==0)
{ echo $i;
$max = $resultat[0];
$i++;
}
$max = substr($max, 5, strlen($max));
$np=ATK00;
$nb = $max + 1;
$nb = $np.$nb;
// on écrit la requête sql
$sql = "INSERT INTO infos_tbl(nom, prenom,email, titre, url, num) VALUES('$nom','$prenom','$email','$titre','$url','$nb')";
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
//on affiche le résultat pour le visiteur
echo 'Vos infos on été ajoutées.';
mysql_close(); // on ferme la connexion
}
?>
<p><?php echo $max; ?></p>
<br /><a href="contact.html"><strong> <font size="5"> Retour </font></strong></a>
</body>
</html>
en effet le champ nm est en varchar mais si je le met int sa ne marche a cause des lettres
donc est-ce impossible d'incrémenté du style ATK001 ,ATK002 en php ?????
$nb = $np.$sql2['num'];
sinon il enregistre seulement T et la il enregistre ATKOOT
SELECT max(num) FROM infos_tbl
je ne vois pas le rapport avec le T :s