incrementation d'un champs

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 juil. 2005, 11:50

je supprime mon message j'ai dit n'importe quoi :lol:

Eléphant du PHP | 181 Messages

15 juil. 2005, 11:55

ma tabe est comme ceci:

Code : Tout sélectionner

model_id manufacturier_id type_id manager_id model_nom chemin_acces version russel_num it_num date_maj date_reception repertoire_vd
et si je met comme tui dis

Code : Tout sélectionner

[php mysql_result($req_it,1,"it_num"); [/php
ben pour le suivant ca me met 8 (ancien) et 9 (incrementer)

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 juil. 2005, 11:59

//recuperation du dernier n°it:
$sql_it = "select it_num from model order by 1 desc";
qu'est-ce que c'est que "ORDER BY 1" ??

et puis, plutôt que de récupérer toutes tes lignes de résultat et d'accéder à la dernière, tu peux ne sortit que la dernière en utilisant LIMIT 0,1

Eléphant du PHP | 181 Messages

15 juil. 2005, 14:15

donc fair comme ceci:

/

Code : Tout sélectionner

/recuperation du dernier n°it: $sql_it = "select it_num from model limit 0,1"; $req_it = mysql_query($sql_it) or die('Erreur SQL !<br>'.$sql_it.'<br>'.mysql_error()); $cols_it = mysql_num_rows($req_it); $it_num = mysql_result($req_it,1,"it_num"); $it_num_tmp = explode("-", $it_num); $lt = $it_num_tmp[0]; $ch = $it_num_tmp[1]; echo $lt.'<br>'; echo $ch.'<br>'; $ch = $ch + 1; $it_num = $lt.'-'.$ch; echo $ch.'<br>';
mais la ca me met:
  • Warning: mysql_result(): Unable to jump to row 1 on MySQL result index 9 in c:\program files\easyphp1-7\www\leopard\it\inc\model\model_insert.php on line 64

    Notice: Undefined offset: 1 in c:\program files\easyphp1-7\www\leopard\it\inc\model\model_insert.php on line 67
????? je fais koi moi ya rien ki marche comme on veut :roll: en plus c vendredi lol :wink:

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 juil. 2005, 14:19

// recuperation du dernier n°it:
$sql_it = "select it_num from model ORDER BY it limit 0,1"; // récupère plutôt l'identifiant numérique, puisque c'est là-dessus que tu te bases
// il faut ensuite que tu fasses un ORDER BY DESC sur cet identifiant

$req_it = mysql_query($sql_it) or die('Erreur SQL !<br>'.$sql_it.'<br>'.mysql_error());
$cols_it = mysql_num_rows($req_it);

$it_num = mysql_result($req_it,0,"it_num"); // si tu ne récupères qu'une ligne, son indice est 0 !
$it_num_tmp = explode("-", $it_num);
$lt = $it_num_tmp[0];
$ch = $it_num_tmp[1];
echo $lt.'<br>';
echo $ch.'<br>';
$ch = $ch + 1;
$it_num = $lt.'-'.$ch;

echo $ch.'<br>';

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 juil. 2005, 14:25

je persiste à ne pas comprendre l'intérêt de tout ça

si tu as d'un coté un identifiant classique, un nombre auto incrémenté
et que de l'autre tu veux un identifiant en plus avec IT-

qu'est-ce qui se passera si tu supprimes des enregistrements, à la prochaine insertion :

l'identifiant maximum enregistré sera 5, celui qui sera généré pour ton insertion sera 9, et l'identifiant que tu créeras toi pour cet insertion sera IT-5

ça ne te pose pas de problème ?

Eléphant du PHP | 181 Messages

15 juil. 2005, 14:25

// recuperation du dernier n°it:
$sql_it = "select it_num from model ORDER BY it limit 0,1"; // récupère plutôt l'identifiant numérique, puisque c'est là-dessus que tu te bases
// il faut ensuite que tu fasses un ORDER BY DESC sur cet identifiant

$req_it = mysql_query($sql_it) or die('Erreur SQL !<br>'.$sql_it.'<br>'.mysql_error());
$cols_it = mysql_num_rows($req_it);

$it_num = mysql_result($req_it,0,"it_num"); // si tu ne récupères qu'une ligne, son indice est 0 !
$it_num_tmp = explode("-", $it_num);
$lt = $it_num_tmp[0];
$ch = $it_num_tmp[1];
echo $lt.'<br>';
echo $ch.'<br>';
$ch = $ch + 1;
$it_num = $lt.'-'.$ch;

echo $ch.'<br>';
:lol: :lol: :lol: :lol: :lol:

moi ca me fait trop rire parce ke des uqe je change qqch ca fait ce k'il veut....

la avec cette facon... ben le dernier it c le 1 et le prochain c le 2 alors que dans ma base j'en suis deja au 12eme

je capte vraiement pas grnad chose today ca doit etre la chaleur et vendredi :lol: :lol: :lol: :lol:

non mais sans dec. c moi ou franchement chui le seul a rien capte pour koi ca marche pas???

Mammouth du PHP | 19672 Messages

15 juil. 2005, 14:28

Modération : ruly, merci de respecter les gens qui tentent de t'aider en bannissant de tes pratiques l'utilisation de langage SMS. Tu as un vrai clavier devant toi et on est pas dans un grand prix de Formule 1.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 juil. 2005, 14:31

je n'avais pas corrigé ton code, juste fais des commentaires
essaye avec ça :
// recuperation du dernier n°it : on tri les enregistrement suivant model_id décroissant, et on ne prend que le premier résultat
$sql_it = "SELECT it_num FROM model ORDER BY model_id DESC LIMIT 0,1";

$req_it = mysql_query($sql_it) or die('Erreur SQL !<br>'.$sql_it.'<br>'.mysql_error());
$cols_it = mysql_num_rows($req_it);

// comme on a qu'une ligne, on récupère la ligne d'indice 0
$it_num = mysql_result($req_it,0,"it_num");


$it_num_tmp = explode("-", $it_num);
$lt = $it_num_tmp[0];
$ch = $it_num_tmp[1];
echo $lt.'<br>';
echo $ch.'<br>';
$ch = $ch + 1;
$it_num = $lt.'-'.$ch;

echo $ch.'<br>';
Modifié en dernier par ouckileou le 15 juil. 2005, 14:32, modifié 1 fois.

Eléphant du PHP | 181 Messages

15 juil. 2005, 14:31

Modération : ruly, merci de respecter les gens qui tentent de t'aider en bannissant de tes pratiques l'utilisation de langage SMS. Tu as un vrai clavier devant toi et on est pas dans un grand prix de Formule 1.
ok desole.... je vais faire un grand effort promi

et un grand merci a tous ceux qui sont sur ce forum pour aider les gens comme moi :wink:

Eléphant du PHP | 181 Messages

15 juil. 2005, 14:33

je n'avais pas corrigé ton code, juste fais des commentaires
essaye avec ça :
// recuperation du dernier n°it : on tri les enregistrement suivant model_id décroissant, et on ne prend que le premier résultat
$sql_it = "SELECT it_num FROM model ORDER BY model_id DESC LIMIT 0,1";

$req_it = mysql_query($sql_it) or die('Erreur SQL !<br>'.$sql_it.'<br>'.mysql_error());
$cols_it = mysql_num_rows($req_it);

// comme on a qu'une ligne, on récupère la ligne d'indice 0
$it_num = mysql_result($req_it,0,"it_num");


$it_num_tmp = explode("-", $it_num);
$lt = $it_num_tmp[0];
$ch = $it_num_tmp[1];
echo $lt.'<br>';
echo $ch.'<br>';
$ch = $ch + 1;
$it_num = $lt.'-'.$ch;

echo $ch.'<br>';
ca a l'air de marche. je vais faire les test jusqu'a 20 et te tiens au courant

en tout cas un grand et enorme merci :agenouille:

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 juil. 2005, 14:35

ca a l'air de marche. je vais faire les test jusqu'a 20 et te tiens au courant
ah oui c'est vrai que c'était le problème de départ... :lol:

mais avec le système que je t'ai filé, en cas de suppressions de lignes
model_id et it_num pourront être désynchronisés, à toi de voir si ça te gêne

Eléphant du PHP | 181 Messages

15 juil. 2005, 14:56

Ca marche super bien merci

et meme si je supprime ca me prend le dernier c'est parfait

un grand merci et un excelent weekend!!!!!

:wink:

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 juil. 2005, 15:02

de rien et bon week-end à toi aussi ;)

Eléphant du PHP | 181 Messages

15 juil. 2005, 15:10

de rien et bon week-end à toi aussi ;)
bien merite... mais ca dans 3 ptites heures :wink:

merci encore