Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/11/2010, 20h22   #1
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 167
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 167
Points : 29
Points : 29
Par défaut Augmenter une chaine de caractère d’un élément ex : ‘ 98’-->’99’-->’A1’ …

Bonjour
Je vous pris mes amis de m’aider a réaliser un petit code qui me permet de realiser l’opération suivante :
Code :
1
2
$machaine=’00’ ;
$machaine=$machaine+1 ;
La chaine va se développer comme suit : ‘00’-> ‘01’ ->’02’ ->……’99’ ->’0A’ -> ’0B’ ….
Merci
belaggoun2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 20h30   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 815
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

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

Informations forums :
Inscription : mars 2005
Messages : 2 815
Points : 3 440
Points : 3 440
Finalement tu veux compter sur une base particulière non ?
Donc : http://fr.php.net/manual/en/function.base-convert.php
Pour les 0 initiaux : sprintf( ) ou str_pad( ).
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 21h19   #3
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 167
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 167
Points : 29
Points : 29
je ne pense pas mon ami
je ne cherche pas a fair un calcule dans une autre base
en faite je cherche a exploiter le code ascii pour augmenter les numero d'ordre d'un article de 01 a 99 puis jusqu'a zz en gardant toujour ma chaine sur 2 position .
belaggoun2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 21h25   #4
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 815
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

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

Informations forums :
Inscription : mars 2005
Messages : 2 815
Points : 3 440
Points : 3 440
Incrémenter de 1 les valeurs successives en partant de 0 jusqu'à ZZ c'est faire un cacul en base 36.
Donc http://fr.php.net/manual/en/function.base-convert.php
Ensuite la chaîne sur 2 digits ce n'est que du formatage.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 21h34   #5
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 167
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 167
Points : 29
Points : 29
ah oui oui mon ami
j'ai consulté le premier exemple je ressens que c'est ce que je cherche
moi j'ai un cerveau diesel il me faut du temps pour le comprendre (l'exemple)...
belaggoun2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 21h36   #6
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 815
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

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

Informations forums :
Inscription : mars 2005
Messages : 2 815
Points : 3 440
Points : 3 440
Si tu n'y arrives pas n'hésite pas à poster ton script pour aide/correction.
Bon courage,
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 21h45   #7
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 167
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 167
Points : 29
Points : 29
pour le script il est tous simple
le premiere chose c'est de chercher le numero d'ordre max dans une bdd
afin d'inserer lecode avec le numero d'ordre suivant.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
 
include ("connect_db.php");
//calcule du numero d'ordre du code
$code=$_POST['cd_dd'].$_POST['cd_lc'].$_POST['nat_immo'];
$sql1= "select max(right(code_num,2)) from eng_engagement where left(code_num,7)='".$code."'";
$result1 = mysql_query($sql1);
		if (!$result1) {
			die('Requête invalide : code inexistant: ' . mysql_error());
		};
$num_ord= mysql_fetch_array ($result1);
echo $num_ord."---";
if(isset($num_ord))
{
$num_ord=$num_ord+1; // cest la ou sa bloque
}
else $num_ord="01";
$code=$code.$num_ord;
 
echo $code."<br>";
alors si j'ai un code '9Z0082466
le prochain doit etre 9Z0082467
merci mon ami de me consacrer un petit peut de votre temps
belaggoun2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 21h47   #8
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 815
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

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

Informations forums :
Inscription : mars 2005
Messages : 2 815
Points : 3 440
Points : 3 440
Citation:
if(isset($num_ord))
{
$num_ord=$num_ord+1; // cest la ou sa bloque
}
Ben je ne vois pas de base_convert( )
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 21h56   #9
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 167
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 167
Points : 29
Points : 29
en tous les cas je sais que je dois utiliser le code ascii
en premier lieu je doit être capable de le réaliser seulement de 01 a 99
belaggoun2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 11h05   #10
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 656
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 656
Points : 5 359
Points : 5 359
Comme son nom l'indique, mysql_fetch_array renvoie un array. D'ailleurs ton echo $num_ord ne doit pas t'afficher grand chose...
Code :
1
2
3
$num_ord_array = mysql_fetch_array ($result1);
$num_ord = $num_ord_array[0]; // on prend juste le bout du tableau qui nous intéresse...
echo $num_ord."---";
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/12/2010, 22h06   #11
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 167
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 167
Points : 29
Points : 29
je sais trés bien que mon tableau contient une seule valeur je cherche comment créer la valeur suivante
belaggoun2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 23h17   #12
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Il existe la méthode bourrin sinon

Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
function nextChaine($tableau, $valeur){
 
	if(($cle = array_search($valeur, $tableau)) === false)
		return $valeur . ' non trouvée dans le tableau';
 
	return isset($tableau[$cle+1]) ? $tableau[$cle+1] : 'aucune valeur suivante n\'existe'; 
 
}
 
$tmp1 = range(0, 9);
$tmp2 = range('A', 'Z');
 
$next = array();
 
foreach($tmp1 as $val1)
	foreach($tmp2 as $val2)
		$next[] = $val1.$val2;
 
 
$chaine = '0Z';
 
echo nextChaine($next, $chaine); 
// 1A
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 06h38   #13
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 167
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 167
Points : 29
Points : 29
Bonjour
en tous les cas se que vous qualifier de bourrin pour vous c'est une solution de choix pour moi
cette méthode ne prend pas en charge '00' -'01'
je pense que je doit remplacer tmp2 range('A','Z') par tmp2 range ('0','Z') et de même pour tmp1
mais c'est le début de la solution elle ma vraiment donnée une vrai idée sur la solution finale merci beaucoup mon ami
belaggoun2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 09h43   #14
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Et en une ligne :

Code :
1
2
3
for ( $i = 0; $i < 1296; $i++ ) {
   echo sprintf( '%02s', base_convert($i, 10, 36) ), '<br />';
}
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2010, 14h26   #15
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 167
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 167
Points : 29
Points : 29
Bonjour
mes amis j'ai modifier la solution proposé par mandrix
est j'ai obtenu ce que je voulais ;aidez moi a optimiser ce bricolage (code)
Code :
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
 
 
function prochaine_ordre($tableau, $valeur){
 
	if(($cle = array_search($valeur, $tableau)) == false)
		return $valeur . ' c\'est la limite';
 
	return isset($tableau[$cle+1]) ? $tableau[$cle+1] : 'aucune valeur suivante n\'existe'; 
 
}
 
$tmp1 = range(0,9);
$tmp2= range(0,9);
 
$next = array();
 
foreach($tmp1 as $val1)
	foreach($tmp2 as $val2)
	{ 
		$next[] = $val1.$val2;
 
	}
 
$tmp11 = range(0,9);
$tmp21= range("A","Z");
 
$next1 = array();
 
foreach($tmp11 as $val11)
	foreach($tmp21 as $val21)
	{ 
		$next1[] = $val11.$val21;
 
	}
	$n= array_merge($next,$next1);
maintenant si j'aiil suffit de faire
Code :
1
2
 
$p_valeur=prochaine_ordre($n, $x);
pour obtenir
merci
belaggoun2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2010, 14h33   #16
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 815
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

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

Informations forums :
Inscription : mars 2005
Messages : 2 815
Points : 3 440
Points : 3 440
Quel est le problème ?
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2010, 22h58   #17
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 167
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 167
Points : 29
Points : 29
mon ami séb. je ressent que le code n'est pas bien .... c'est du bricolage
ça manque de finition !!!
belaggoun2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2010, 23h34   #18
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 815
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

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

Informations forums :
Inscription : mars 2005
Messages : 2 815
Points : 3 440
Points : 3 440
Vois avec base_convert( ), un exemple d'utilisation a été fourni plus haut.
Bon courage ;-)
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h26.


 
 
 
 
Partenaires

Hébergement Web