Pourquoi T au lieu de 1

Fermé
JF - 10 mars 2009 à 15:26
 JF - 11 mars 2009 à 15:36
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 ...

5 réponses

NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514
10 mars 2009 à 15:28
$nb++;
lorsque vous faites ça $nb n'est pas un entier donc l'incrémentation en peut pas marcher
0
merci pour la réponse
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 ?????
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514 > JF
10 mars 2009 à 15:33
C'est possible mais avant je veux comprendre pourquoi vous avez cette ligne?
$nb = $np.$sql2['num'];
0
JF > NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013
10 mars 2009 à 15:38
pour concaténer avec le résultat de la requete lors de l'enregistrement
sinon il enregistre seulement T et la il enregistre ATKOOT
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514 > JF
10 mars 2009 à 15:45
euh là vous récupérer un nombre avec
SELECT max(num) FROM infos_tbl

je ne vois pas le rapport avec le T :s
0
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
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514
10 mars 2009 à 15:57
ok donc il faudrait faire


$sql2 = "SELECT max(num) FROM infos_tbl";
$requete = mysql_query ($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());

while($resultat=mysql_fetch_row($requete))
{
$max = $resultat[0];
}

$np=ATK00;
$nb = $max + 1;
$nb = $np.$nb;
0
JF > NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013
10 mars 2009 à 16:07
je viens d'essayé c'est beaucoup mieux,merci, sa n'enregistre plus de T
sa enregistre bien ATK001 mais...
sauf que sa enregistre ATK001 pour tous ! sa n'avance pas ATK002...
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514 > JF
10 mars 2009 à 16:13
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é
0
JF > NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013
10 mars 2009 à 16:22
ah d'accord merci
mais il serait possible d'avoir une petite aide pour cette fonction svp
je ne la connait absolument pas et je ne l'ai jamais vu
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514 > JF
10 mars 2009 à 16:25
d'abord il me faut une précision, votre num se compose ainsi :
ATK + nombre (001 etc)
?
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514
11 mars 2009 à 11:18
Après avoir fait le INSERT INTO vous relancez le tout?
0
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>
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514 > JF
11 mars 2009 à 11:26
et le max reste toujours à 1?
0
JF > NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013
11 mars 2009 à 11:28
oui
le $max renvoi 1 toujours
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514 > JF
11 mars 2009 à 11:30
Ca doit vouloir dire qu'il n'arrive pas à faire l'order by DESC .

Vous avez Mysql?
0
design > NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013
11 mars 2009 à 11:36
oui EasyPHP MYSQL
0
Louve T Messages postés 95 Date d'inscription jeudi 22 février 2007 Statut Membre Dernière intervention 27 août 2012 2
11 mars 2009 à 15:29
ça tombait pourtant sous le sens...


désolée j'ai pas pu m'empêcher ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514
11 mars 2009 à 15:33
Vous avez une solution? :)
0
: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>
0