Developpement Informatique

mars 11, 2010

MYSQL Fonction/ Function

Filed under: MYSQL — izaam01 @ 9:46

1) Date du jour

 AND   DATE_FORMAT(DATE_RAPPEL, ‘%Y-%m-%d’) = ‘ ». date(‘Y-m-d’)

Publicités

mars 8, 2010

Sexy Drop Down Menu w/ jQuery & CSS

Filed under: CSS, JQuery — izaam01 @ 6:15

http://www.noupe.com/tutorial/drop-down-menu-jquery-css.html

Step1. HTML

First create an unordered list for your base top navigation. Then simply nest another unordered list for your sub navigation.

<ul>
    <li><a href="#">Home</a></li>
    <li>
        <a href="#">Tutorials</a>
        <ul>
            <li><a href="#">Sub Nav Link</a></li>
            <li><a href="#">Sub Nav Link</a></li>
        </ul>
    </li>
    <li>
        <a href="#">Resources</a>
        <ul>
            <li><a href="#">Sub Nav Link</a></li>
            <li><a href="#">Sub Nav Link</a></li>
        </ul>
    </li>
    <li><a href="#">About Us</a></li>
    <li><a href="#">Advertise</a></li>
    <li><a href="#">Submit</a></li>
    <li><a href="#">Contact Us</a></li>
</ul>

Step2. CSS

Next, it’s time to style the navigation wireframe with CSS.

ul.topnav {
	list-style: none;
	padding: 0 20px;
	margin: 0;
	float: left;
	width: 920px;
	background: #222;
	font-size: 1.2em;
	background: url(topnav_bg.gif) repeat-x;
}
ul.topnav li {
	float: left;
	margin: 0;
	padding: 0 15px 0 0;
	position: relative; /*--Declare X and Y axis base for sub navigation--*/
}
ul.topnav li a{
	padding: 10px 5px;
	color: #fff;
	display: block;
	text-decoration: none;
	float: left;
}
ul.topnav li a:hover{
	background: url(topnav_hover.gif) no-repeat center top;
}
ul.topnav li span { /*--Drop down trigger styles--*/
	width: 17px;
	height: 35px;
	float: left;
	background: url(subnav_btn.gif) no-repeat center top;
}
ul.topnav li span.subhover {background-position: center bottom; cursor: pointer;} /*--Hover effect for trigger--*/
ul.topnav li ul.subnav {
	list-style: none;
	position: absolute; /*--Important - Keeps subnav from affecting main navigation flow--*/
	left: 0; top: 35px;
	background: #333;
	margin: 0; padding: 0;
	display: none;
	float: left;
	width: 170px;
	border: 1px solid #111;
}
ul.topnav li ul.subnav li{
	margin: 0; padding: 0;
	border-top: 1px solid #252525; /*--Create bevel effect--*/
	border-bottom: 1px solid #444; /*--Create bevel effect--*/
	clear: both;
	width: 170px;
}
html ul.topnav li ul.subnav li a {
	float: left;
	width: 145px;
	background: #333 url(dropdown_linkbg.gif) no-repeat 10px center;
	padding-left: 20px;
}
html ul.topnav li ul.subnav li a:hover { /*--Hover effect for subnav links--*/
	background: #222 url(dropdown_linkbg.gif) no-repeat 10px center;
}

Step3. jQuery

For those who are new to jQuery, you can learn about it here.

The following script contains comments explaining which jQuery actions are being performed.

$(document).ready(function(){

	$("ul.subnav").parent().append("<span></span>"); //Only shows drop down trigger when js is enabled (Adds empty span tag after ul.subnav*)

	$("ul.topnav li span").click(function() { //When trigger is clicked...

		//Following events are applied to the subnav itself (moving subnav up and down)
		$(this).parent().find("ul.subnav").slideDown('fast').show(); //Drop down the subnav on click

		$(this).parent().hover(function() {
		}, function(){
			$(this).parent().find("ul.subnav").slideUp('slow'); //When the mouse hovers out of the subnav, move it back up
		});

		//Following events are applied to the trigger (Hover events for the trigger)
		}).hover(function() {
			$(this).addClass("subhover"); //On hover over, add class "subhover"
		}, function(){	//On Hover Out
			$(this).removeClass("subhover"); //On hover out, remove class "subhover"
	});

});

*To degrade gracefully, we only show the drop down menu trigger to those who have javascript enabled.

Degrade Gracefully Demo in Sexy Drop Down Menu w/ jQuery & CSS

This is what it looks like when javascript is disabled:

Javascript Disabled=

View Demo of Sexy Drop Down Menu

Conclusion

Note: I went ahead and added the rounded corners to the demo (CSS3 – Only supported in Firefox, Safar, & Chrome). If you would like to give it a try, check out this tutorial.

Experiment and customize this to fit your needs! If you have any questions, concerns, suggestions, or comments, please do not hesitate to let me know.

Fancy Thumbnail Hover Effect w/ jQuery

Filed under: JQuery — izaam01 @ 6:03

Recently I was checking out some nice flash galleries and came across an effect that I really liked. I had a sudden urge to duplicate that similar effect but using my bread and butter (CSS and jQuery). I thought I’d share this and maybe some of you can find it useful.

Fancy Thumbnail Hover Effect w/ jQuery

View Demo

Build the Foundation – XHTML

Our markup will be fairly simple, just an unordered three columned list.

<ul>
	<li><a href="#"><img src="thumb1.jpg" alt="" /></a></li>
	<li><a href="#"><img src="thumb2.jpg" alt="" /></a></li>
	<li><a href="#"><img src="thumb3.jpg" alt="" /></a></li>
	<li><a href="#"><img src="thumb4.jpg" alt="" /></a></li>
	<li><a href="#"><img src="thumb5.jpg" alt="" /></a></li>
	<li><a href="#"><img src="thumb6.jpg" alt="" /></a></li>
	<li><a href="#"><img src="thumb7.jpg" alt="" /></a></li>
	<li><a href="#"><img src="thumb8.jpg" alt="" /></a></li>
	<li><a href="#"><img src="thumb9.jpg" alt="" /></a></li>
</ul>

Dress it Up – CSS

Pay close attention to the positioning properties between the list item and the image. We have to make sure that the hovered image must be on top of the other images, so this part is key.

ul.thumb {
	float: left;
	list-style: none;
	margin: 0; padding: 10px;
	width: 360px;
}
ul.thumb li {
	margin: 0; padding: 5px;
	float: left;
	position: relative;  /* Set the absolute positioning base coordinate */
	width: 110px;
	height: 110px;
}
ul.thumb li img {
	width: 100px; height: 100px; /* Set the small thumbnail size */
	-ms-interpolation-mode: bicubic; /* IE Fix for Bicubic Scaling */
	border: 1px solid #ddd;
	padding: 5px;
	background: #f0f0f0;
	position: absolute;
	left: 0; top: 0;
}
ul.thumb li img.hover {
	background:url(thumb_bg.png) no-repeat center center;  /* Image used as background on hover effect
	border: none; /* Get rid of border on hover */
}

*Note – For more information about this property: -ms-interpolation-mode: bicubic, refer to Chris Coyier’s Bicubic Scaling fix for IE. For those who are using PNG files as the background, refer to my previous article, “PNG Transparency Fix in IE6“.

Bring it to Life – jQuery

Basically all we are doing is animating the thumbnail’s size, absolute positioning coordinates (vertical alignment w/ css), and padding when we hover over. During this animation, we also switch the value of the z-index, so that the selected image stays on top of the rest.

$("ul.thumb li").hover(function() {
	$(this).css({'z-index' : '10'}); /*Add a higher z-index value so this image stays on top*/ 
	$(this).find('img').addClass("hover").stop() /* Add class of "hover", then stop animation queue buildup*/
		.animate({
			marginTop: '-110px', /* The next 4 lines will vertically align this image */ 
			marginLeft: '-110px',
			top: '50%',
			left: '50%',
			width: '174px', /* Set new width */
			height: '174px', /* Set new height */
			padding: '20px'
		}, 200); /* this value of "200" is the speed of how fast/slow this hover animates */

	} , function() {
	$(this).css({'z-index' : '0'}); /* Set z-index back to 0 */
	$(this).find('img').removeClass("hover").stop()  /* Remove the "hover" class , then stop animation queue buildup*/
		.animate({
			marginTop: '0', /* Set alignment back to default */
			marginLeft: '0',
			top: '0',
			left: '0',
			width: '100px', /* Set width back to default */
			height: '100px', /* Set height back to default */
			padding: '5px'
		}, 400);
});

*Note – To learn more about Animation Queue Buildup, read “Quick Tip: Prevent Animation Queue Buildup” at www.LearnjQuery.com

Fancy Thumbnail Hover Effect w/ jQuery

View Demo

Conclusion

It may not be as smooth as the flash version, but its definitely a neat effect. If you switch up the absolute potion coordinates, you can create various ways the hover effect pops out as well. If you have any questions or comments, please don’t hesitate to let me know!

mars 4, 2010

Qu’est-ce qu’une variable et à quoi sert-elle ? VB6

Filed under: Uncategorized — izaam01 @ 7:16

Qu’est-ce qu’une variable et à quoi sert-elle ?

 Lorsqu’on construit un programme, il est nécessaire de stocker certaines informations en mémoire. Evidemment les instructions que vous écrivez se trouvent elles-mêmes une place sans que vous ayez à vous en soucier. Par contre, vous avez l’obligation d’utiliser des VARIABLES. Par exemple, quand vous entrez ACCEPTE Nombre, Nombre est un emplacement en mémoire que vous définissez vous-même. C’est à dire que vous devez DECLARER LA VARIABLE. Prenons un exemple imagé : Imaginez quelqu’un qui désire garer sa voiture dans un garage qu’il désire louer. Pour commencer, il doit louer le garage, c’est à dire qu’il doit choisir la taille du garage et l’emplacement de ce garage : ce n’est que quand le garage lui appartiendra qu’il pourra y garer sa voiture. En programmation, le fait de choisir un nom et une taille à la variable et de l’écrire suffit. On dit que l’on DECLARE UNE VARIABLE. Comme dans l’exemple de la location du garage, on ne fait que RESERVER la place que l’on désire éventuellement occuper. Vous pouvez très bien louer un garage et ne jamais y mettre les pieds. En programmation aussi, vous pouvez DECLARER UNE VARIABLE que vous n’utiliserez jamais… Quand vous louez un garage, et que vous désirez vraiment y mettre votre voiture, vous allez vous rendre compte de l’état dans lequel il est : En effet, peut-être que le locataire précédent y à laissé plein de choses (des vieux pots de peinture, des chiffons, peut-être même une vieille bagnole qu’il vous faudra évacuer). Vous commencez donc par vider le garage avant de mettre votre voiture. En programmation, c’est exactement pareil : Le fait de DECLARER UNE VARIABLE (de réserver la place) ne vous garantit pas du tout que cette place mémoire n’était pas occupée avant par d’autres données, aussi, vous devez donc, au début du programme, vider cet emplacement (y mettre 0 par exemple). Cette opération est dite SEQUENCE D’INITIALISATION. C’est à dire que vous INITIALISEZ les différentes variables à 0 (ou un autre chiffre qui devrait y être) afin d’être sûr des contenus de vos variables dès le début du programme. Les variables peuvent être de différents TYPES. C’est à dire qu’un TYPE de variable est une sorte de variable. Pour reprendre l’exemple de la voiture dans le garage, la place doit varier en fonction de la taille de la voiture. En programmation, vous pouvez stocker différentes choses dans les variables, dont 4 principales : les VALEURS ENTERES (INTEGER en Visial Basic), les VALEURS REELLES (SINGLE en Visual Basic), et les CHAINES DE CARACTERES (STRING en Visual Basic). Ainsi donc, suivant que vous ayez besoin d’une variable avec des décimales (par exemple pour stocker le chiffre Pi : 3.14.159…), vous devrez prévoir (DECLARER) une variable de TYPE SINGLE. Par contre, si vous avez besoin d’une variable qui ne contiendra que des nombres entiers (Par exemple un compteur), vous devrez DECLARER UNE VARIABLE DE TYPE ENTIER (INTEGER), et si vous avez besoin d’une variable qui contiendra une chaîne de caractères (« Texte », « Marcel », « Pas de valeur »), vous aurez besoin de déclarer une VARIABLE DE TYPE CHAINE DE CARACTERE (STRING) ________________________________________ La variable n’est pas déclarée : On peut y mettre tout ce qu’on veut Sub VariableNonDefinie() A = 44 MsgBox A A = « Chat » MsgBox A End Sub ________________________________________ Avec Option Explicit, on DOIT déclarer les variables (ici, une erreur est générée) Option Explicit Sub VariableNonDefinie() A = 44 MsgBox A A = « Chat » MsgBox A End Sub ________________________________________ Variable déclarée, typée en integer Sub VariableV3() Dim A As Integer A = 44 MsgBox A ‘ A = « Chat » génère une erreur End Sub ________________________________________ Variable déclarée, typée en string Sub VariableV4() Dim A As Integer A = « le gros lion » MsgBox A ‘ A = 46 génère une erreur A = « 46 » ‘ est correct MsgBox A End Sub ________________________________________ Définition d’une constante On définit une constante généralement parce qu’il est plus convivial de nommer par un nom que par un chiffre. Par exemple, on peut définir les constantes suivantes : Const Pi = 3.1415926535 Const MonAnimalPrefere = « Le chat » Const Rouge = 255 ‘ En VB, 255 est souvent le code couleur du rouge Const MaCouleurPreferee = Rouge ‘ Donc MaCouleurPreferee = 255 Sub Constante() Const Himalaya = 8848 Himalaya = 44 ‘ Génère une erreur d’exécution End Sub Les types de données pour les déclarations de variables Si vous ne déclarez pas vos variables, elles seront automatiquement Variant. Il est souvent plus judicieux de les déclarer d’un certain type particulier, d’une part pour la clarté du code, et d’autre part pour optimiser l’espace mémoire nécessaire.

 Type de données Taille d’enregistrement en octets Plage
Byte 1 0 à 255
Boolean 2 True ou False
Integer 2 -32 768 à 32 767
Long 4 -2 147 483 648 à 2 147 483 647
Single 4 -3,402823E38 à -1,401298E-45 pour les valeurs négatives ; 1,401298E-45 à 3,402823E38 pour les valeurs positives
Double 8 -1,79769313486231E308 à -4,94065645841247E-324 pour les valeurs négatives ; 4,94065645841247E-324 à 1,79769313486232E308 pour les valeurs positives
Currency 8 -922 337 203 685 477,5808 à 922 337 203 685 477,5807
Decimal 14 +/-79 228 162 514 264 337 593 543 950 335 sans séparateur décimal ; +/-7,9228162514264337593543950335 avec 28 chiffres à droite du séparateur décimal ; le plus petit nombre différent de zéro est +/-0.0000000000000000000000000001.
Date 8 1er janvier 100 au 31 décembre 9999
Object 4
Toute référence à des données de type Object String (longueur variable) 10 + longueur de la chaîne 0 à environ 2 milliards String (longueur fixe) Longueur de la chaîne 1 à environ 65 400 Variant (nombres) 16 Toute valeur numérique, avec la même plage de valeurs qu’une donnée de type Double Variant (caractères) 22 + longueur de la chaîne Même plage de valeurs qu’une donnée de type String de longueur variable Les tableaux Lorsque vous avez besoin d’un emplacement pour mettre une seule voiture, il n’y à pas de problème : Vous louez un seul garage. Quand vous avez besoin d’une seule variable, pas de problème non plus. Mais si tout à coup vous avez 10 ou 50 voitures à caser, chacune dans un garage, vous pouvez recherchez 10 ou 50 garages différents, mais ce sera long et difficile. Vous allez plutôt essayer de louer un parking composé de garages les uns à côté des autres. Le parking aura un nom, et chaque garage le composant sera numéroté. En programmation, c’est pareil : Si vous avez besoin de plusieurs variables les unes à côté des autres (par exemple, la température du 1.1.2000, du 2.1.2000, du 3.1.2000, etc. jusqu’au 31 janvier), vous pourriez donc déclarer 31 variables qui s’appelleront par exemple 1Janvier, 2Janvier, 3Janvier, etc. jusqu’à 31Janvier… N’est-ce pas lourd ? En fait, on pourrait simplement faire comme le parking : C’est à dire déclarer une variable qui s’appellerait Janvier, et qui serait suivie d’un numéro pour savoir de quel jour il s’agit, comme ceci : Janvier[1], Janvier[2], etc. jusqu’à Janvier[31]. Cette variable Janvier s’appelle un TABLEAU. Il faut donc, dans ce cas, DECLARER un TABLEAU. ________________________________________

Exemple basique Sub Tableau() Dim Armoire(3) Armoire(1) = « Assiette » Armoire(2) = « Verre » Armoire(3) = « Serviette » MsgBox Armoire(1) MsgBox Armoire(2) MsgBox Armoire(3)

 End Sub

 ________________________________________

Exemple de tableau typé Sub tableauV2() Dim Tableau(1 To 10) As Integer ‘ Tableau(3) = « test » Génère une erreur Tableau(4) = 775

End Sub

 ________________________________________

Il est possible de déclarer un tableau à un nombre d’éléments non défini, et ensuite, dynamiquement, lui donner des dimensions concrètes grâce à ReDim Sub TableauV3() Dim Tableau() NombreCase = Val(InputBox(« Combien d’éléments voulez-vous ? »)) ReDim Tableau(15) End Sub ________________________________________

Remplissage d’un tableau de taille personnalisée avec toujours 33 dans chaque élément Sub TableauV4() Dim Etagere() As Integer Dim NombreCase As Integer NombreCase = Val(InputBox(« Combien d’éléments voulez-vous ? »)) ReDim Etagere(NombreCase) For compteur = 1 To NombreCase NombreCase (compteur = 33) Next End Sub ________________________________________

Remplissage d’un tableau de taille personnalisée avec l’aide de l’utilisateur Sub TableauV5() Dim Etagere() As Integer Dim NombreCase As Integer NombreCase = Val(InputBox(« Combien d’éléments voulez-vous ? »)) ReDim Etagere(NombreCase) For compteur = 1 To NombreCase NombreCase = InputBox(« Entrez le nombre N° » & compteur &  » : « ) Next End Sub ________________________________________

Même chose, avec ensuite affichage des choix de l’utilisateur Sub TableauV6() Dim Etagere() As Integer Dim NombreCase As Integer NombreCase = Val(InputBox(« Combien d’éléments voulez-vous ? »)) ReDim Etagere(NombreCase) For compteur = 1 To NombreCase Etagere(compteur) = InputBox(« Entrez le nombre N° » & compteur & « 🙂

Next For compteur = 1 To NombreCase Selection.TypeText Etagere(compteur) Selection.TypeParagraph Next End Sub ________________________________________

Maintenant, en plus il donne le plus grand des chiffres Sub TableauV7() Dim Etagere() As Integer Dim NombreCase As Integer NombreCase = Val(InputBox(« Combien d’éléments voulez-vous ? »)) ReDim Etagere(NombreCase) For compteur = 1 To NombreCase Etagere(compteur) = InputBox(« Entrez le nombre N° » & compteur & » : « ) Next For compteur = 1 To NombreCase Selection.TypeText Etagere(compteur) Selection.TypeParagraph Next Dim LePlusGrand As Integer LePlusGrand = 0 For compteur = 1 To NombreCase If Etagere(compteur) > LePlusGrand Then LePlusGrand = Etagere(compteur) End If Next Selection.TypeText « Le plus grand est  » & LePlusGrand End Sub Exercice : Trouver également le plus petit et la moyenne de tous les nombres Utilisation de InputBox et de & La fonction InputBox, en Visual Basic, permet d’afficher un message à l’écran, et, en dessous, une zone de texte qui permet à l’utilisateur d’entrer du texte ou du chiffre. Ce que l’utilisateur entre sera stocké dans une variable. Utilisation simple de InputBox Sub TestInputBox() Dim Reponse As String Reponse = InputBox(« Entrez votre prénom ») MsgBox Reponse End Sub ________________________________________

 Dans ce cas, on constate que comme il s’agit d’un String, Le + colle ensemble le prenom deux fois (4545) Sub Collage() Dim Reponse As String Reponse = InputBox(« Entrez votre prénom ») Reponse = Reponse + Reponse MsgBox Reponse End Sub

 ________________________________________

Dans ce cas, comme c’est un integer

, il donne 90 (45 + 45) Sub Collage2() Dim Reponse As Integer Reponse = InputBox(« Entrez votre prénom ») Reponse = Reponse + Reponse MsgBox Reponse End Sub ________________________________________ Ici, le & colle dans TOUS LES CAS : 4545 (qu’il s’agisse d’un Integer ou String) Sub Collage3() Dim Reponse As Integer Reponse = InputBox(« Entrez votre prénom ») Reponse = Reponse & Reponse MsgBox Reponse End Sub ________________________________________ Mélange de chaînes littérales (avec guillemets), et Strings (Variables sans guillemets) Sub Collage4() Dim Reponse As String Reponse = InputBox(« Entrez votre prénom ») Reponse = « Tu t’appelles » & Reponse & « Tu es le meilleur » MsgBox Reponse End Sub Les boucles DO, LOOP, WHILE et UNTIL Dans un programme, il est souvent nécessaire de répéter une ou plusieurs actions jusqu’à ce que quelque chose se passe, ou tant que quelque chose ne s’est pas passé. Nous alons voir ici comment ça se passe. Voici un petit lexique Anglais/Français : Loop = Boucle (Faire une boucle, recommencer la boucle) Do = Faire (Effectuer, faire les actions qui suivent) While = Tant que (Tant que X = 1, ou Tant que le mot de passe est erroné) Until = Jusqu’à ce que (Jusqu’à ce que X = 10, ou Jusqu’à ce que le mot de passe soit correct) ________________________________________ Premier programme : Simple utilisation de InputBox, sans autre Sub TestLoop() Dim Reponse As Integer Reponse = InputBox(« Entrez un chiffre ») End Sub ________________________________________ Ce programme demande un chiffre encore et encore tant que l’utilisateur s’évertue a entrer un autre chiffre que 5 Sub TestLoop2() Dim Reponse As Integer Do Reponse = InputBox(« Entrez un chiffre ») Loop While Reponse <> 5 End Sub ________________________________________ Ce programme fait exactement l’inverse : Il Continue tant que l’utilisateur entre 5 Sub TestLoop3() Dim Reponse As Integer Do Reponse = InputBox(« Entrez un chiffre ») Loop While Reponse = 5 End Sub ________________________________________ On ajoute ici du code avant la boucle, et après, simplement pour montrer comment généralement un programme se déroule : Une partie d’introduction, la boucle elle-même et ensuite, la conclusion. Sub TestLoop4() Dim Reponse As Integer MsgBox « Début » ‘ Une seule fois avant la boucle Do Reponse = InputBox(« Entrez un chiffre ») Loop While Reponse = 5 MsgBox « Fin » ‘ Une seule fois après la boucle End Sub ________________________________________ Avec Do While, le programme n’entre pas nécessairement dans la boucle. Si on entre le bon mot de passe immédiatement, le programme s’arrête. Dans l’exemple d’avant on faisait DO quelque chose WHILE une condition, donc on faisait au moins une fois cette chose, tandis qu’ici, c’est DO WHILE une condition, on fait quelque chose. Le programme regarde IMMEDIATEMENT si la condition est satisfaite Sub TestLoop5() Dim Reponse As String Reponse = InputBox(« Entrez le mot de passe ») Do While Reponse <> « youpi » Reponse = InputBox(« Mauvaise réponse. Essayez encore ») Loop End Sub ________________________________________ Ici, par contre, avec le while a la fin de la boucle, le’ programme fait AU MOINS une fois « Mauvaise réponse »,’ meme si l’utilisateur répond tout de suite bien Sub TestLoop6() Dim Reponse As String Reponse = InputBox(« Entrez le mot de passe ») Do Reponse = InputBox(« Mauvaise réponse. Essayez encore ») Loop While Reponse <> « youpi » End Sub ________________________________________ Ici, le principe est le même, mais on utilise UNTIL (Jusqu’a ce que). En fait, on peut passe toute sa vie de programme en utilisant exclusivement WHILE sans jamais utiliser UNTIL. Il suffit de changer la tournure de phrase. WHILE Reponse = « youpi » veut dire exactement la même chose que UNTIL Reponse <> « youpi », Mais dans certains cas, c’est plus pratique d’utiliser WHILE, et dans d’autres cas UNTIL, mais c’est très subjectif. Sub TestLoop7() Dim Reponse As String Reponse = InputBox(« Entrez le mot de passe ») Do Until Reponse = « youpi » Reponse = InputBox(« Mauvaise réponse. Essayez encore ») Loop End Sub ________________________________________ Application complète de boucles pour l’obtention d’un mot de passe. On fait une première demande de mot de passe : « Entrez le mot de passe ». Et seulement si l’utilisateur se plante au premier essai, on lui signale qu’il s’est trompé (« Mauvaise réponse. Essayez encore »), et ce message, il va le voir jusqu’à ce qu’il arrête de se tromper (1 fois, 5 fois ou mille fois s’il est vraiment très maladroit, ou s’il a la maladie de parkinson.). A la fin, quand il a enfin tapé le bon mot de passe, le programme lui dit en combien d’essais il a trouvé. Sub MotPasse() ‘ Déclaration des variables Dim Reponse As String ‘ Contient l’essai de mot de passe Dim NombreEssai As Integer ‘ Compte les essais ‘ Premiere demande : Reponse = InputBox(« Entrez le mot de passe ») ‘ De tout façon, on doit faire au moins 1 essai NombreEssai = 1 ‘ Faire la boucle JUSQU’A CE QUE L’utilisateur entre youpi Do Until Reponse = « youpi » Reponse = InputBox(« Mauvaise réponse. Essayez encore ») ‘ On augmente le nombre d’essais : NombreEssai = NombreEssai + 1 Loop ‘ Fin de la boucle ‘ Message de bienvenue final. Si c’est trouvé en un essai, ‘ écrire au singulier, et écrire au pluriel ‘ si c’est en plusieurs essais : If NombreEssai = 1 Then MsgBox « Mot de passe trouvé au premier Essai » Else MsgBox « Mot de passe trouvé en  » & NombreEssai &  » Essais » End If End Sub Afficher « Bonjour » à l’écran Pseudo-code Affichage de bonjour à l’écran 10 fois. POUR Ctr = 1 Jusqu’à 10 AFFICHE « Bonjour » SUIVANT Ctr Tant que l’utilisateur tape oui AFFICHE « Voulez-vous afficher Bonjour à l’écran ? » ACCEPTE Reponse TANT QUE Reponse = « Oui » AFFICHE Bonjour AFFICHE « On continue ?  » ACCEPTE Reponse FIN TANT QUE Jusqu’à ce que l’utilisateur tape non REPETE AFFICHE « Bonjour » AFFICHE « Voulez-vous continuer ? » ACCEPTE Reponse JUSQU’A CE QUE Reponse = « non » Visual Basic Version simple : affichage une seule fois de bonjour Sub AfficherBonjour() Selection.TypeText « Bonjour » End Sub ________________________________________ Version avec 5 fois bonjour côte à côte Sub AfficherBonjour5FoisV1() Selection.TypeText « Bonjour » Selection.TypeText « Bonjour » Selection.TypeText « Bonjour » Selection.TypeText « Bonjour » Selection.TypeText « Bonjour » End Sub ________________________________________ Même version mais avec un For .. To .. Next Sub AfficherBonjour5FoisV2() For Ctr = 1 To 5 Selection.TypeText « Bonjour » Next End Sub ________________________________________ Version longue avec un saut de paragraphe entre chaque Bonjour Selection.TypeText permet d’écrire du texte à l’écran Sub AfficherBonjour5FoisV3() Selection.TypeText « Bonjour » Selection.TypeParagraph Selection.TypeText « Bonjour » Selection.TypeParagraph Selection.TypeText « Bonjour » Selection.TypeParagraph Selection.TypeText « Bonjour » Selection.TypeParagraph Selection.TypeText « Bonjour » Selection.TypeParagraph End Sub ________________________________________ Le saut de paragraphe et le For .. To .. Next Selection.TypeParagraph : Est équivalent à la touche ENTER Sub AfficherBonjour5FoisV4() For Ctr = 1 To 5 Selection.TypeText « Bonjour » Selection.TypeParagraph Next End Sub ________________________________________ Ce programme affiche au moins une fois bonjour Le programme répète la boucle tant que l’utilisateur répond Oui Do … … Loop While Sub AfficherBonjourTantQueOui() Do Reponse = InputBox(« Voulez-vous afficher Bonjour ? ») Selection.TypeText « Bonjour » Selection.TypeParagraph Loop While Reponse = « oui » End Sub ________________________________________ Ce programme aussi affiche au moins une fois bonjour Le programme répète la boucle jusqu’à ce que l’utilisateur réponde Non Do … … Loop Until Sub AfficherBonjourJusqueNon() Do Reponse = InputBox(« Voulez-vous afficher Bonjour ? ») Selection.TypeText « Bonjour » Selection.TypeParagraph Loop Until Reponse = « non » End Sub ________________________________________ Ce programme n’affichera peut-être pas une seule fois bonjour Do While … … Loop Sub AfficherBonjourTantQueOuiV2() Reponse = InputBox(« Voulez-vous afficher Bonjour ? ») Do While Reponse = « oui » Selection.TypeText « Bonjour » Selection.TypeParagraph Reponse = InputBox(« Voulez-vous continuer à afficher Bonjour ? ») Loop End Sub ________________________________________ Ce programme n’affichera peut-être pas une seule fois bonjour Do While … … Loop Sub AfficherBonjourJusqueNonV2() Reponse = InputBox(« Voulez-vous afficher Bonjour ? ») Do Until Reponse = « non » Selection.TypeText « Bonjour » Selection.TypeParagraph Reponse = InputBox(« Voulez-vous continuer à afficher Bonjour ? ») Loop End Sub ________________________________________ Utilisation d’Exit Do Sub ExitDo() Do Reponse = InputBox(« Voulez vous écrire Bonjour à l’écran ? ») If Reponse <> « oui » Then Exit Do End If Selection.TypeText « Bonjour » Selection.TypeParagraph Loop End Sub Transformation d’un nombre d’années en secondes Pseudo-code Le programme réduit à sa plus simple expression ACCEPTE NombreAnnee Affiche NombreAnnee * 365 * 24 * 60 * 60 ________________________________________ Visual Basic Cette version génère un dépassement de capacité Sub NombreSecondeAnnee() Dim NombreAnnee As Integer NombreAnnee = InputBox(« Combien d’années ? ») MsgBox NombreAnnee * 365 * 24 * 60 * 60 End Sub ________________________________________ Cette version fonctionne Sub NombreSecondeAnneeV2() Dim NombreAnnee As Integer Dim NombreSeconde As Currency NombreAnnee = InputBox(« Combien d’années ? ») NombreSeconde = CCur(NombreAnnee) * 365 * 24 * 60 * 60 MsgBox NombreSeconde End Sub ________________________________________ Version qui exige un nombre entre 1 et 100, et qui donne un résultat plus convivial Sub NombreSecondeAnneeV3() Dim NombreAnnee As Integer Dim NombreSeconde As Currency NombreAnnee = InputBox(« Combien d’années ? (1 – 100) ») Do While NombreAnnee < 1 Or NombreAnnee > 100 NombreAnnee = InputBox(« Nombre invalide. Combien d’années ? (1 – 100) ») Loop NombreSeconde = CCur(NombreAnnee) * 365 * 24 * 60 * 60 MsgBox « Dans  » & NombreAnnee & « , il y a  » & NombreSeconde End Sub ________________________________________ Maintenant, on peut également ne rien rentrer comme valeur, ou du texte Sub NombreSecondeAnneeV4() Dim NombreAnnee As Integer Dim NombreSeconde As Currency NombreAnnee = Val(InputBox(« Combien d’années ? (1 – 100) »)) Do While NombreAnnee < 0 Or NombreAnnee > 100 NombreAnnee = Val(InputBox(« Nombre invalide. Combien d’années ? (1 – 100) »)) Loop If NombreAnnee = 0 Then MsgBox « Vous n’avez pas entré d’années ! » Else NombreSeconde = CCur(NombreAnnee) * 365 * 24 * 60 * 60 MsgBox « Dans  » & NombreAnnee &  » ans, il y a  » & NombreSeconde &  » secondes. » End If End Sub Change de monnaie Ce programme permet d’entrer une somme en francs suisses, et d’obtenir le résultat en argent étranger. Pseudo-code AFFICHE « Entrez la somme en francs suisses :  » ACCEPTE CHF AFFICHE « Entrez le nom de la monnaie étrangère :  » ACCEPTE NomArgent AFFICHE « Pour un franc suisse, combien obtenez vous de  » NomArgent  » ? » ACCEPTE TauxChange Resultat = CHF * TauxChange AFFICHE « Pour  » CHF « francs suisses, vous obtenez  » Resultat  »  » NomArgent Visual Basic Change de 100 CHF en lires, avec un taux de 300 Sub ChangeMonnaie() MsgBox « Pour 100 CHF, vous aurez  » & 100 * 300 &  » lires » End Sub ________________________________________ Change en lires, avec un taux de 300 Sub ChangeMonnaieV2() Dim CHF As Integer CHF = Val(InputBox(« Combien de francs suisses changez vous ? »)) MsgBox « Pour  » & CHF &  » francs suisses, vous aurez  » & CHF * 300 &  » lires » End Sub ________________________________________ Change en lires, valeur variable Sub ChangeMonnaieV3() Dim CHF As Integer CHF = Val(InputBox(« Combien de francs suisses changez vous ? »)) ValeurChange = Val(InputBox(« Pour 1 CHF, combien obtenez-vous de lires »)) MsgBox « Pour  » & CHF &  » francs suisses, vous aurez  » & CHF * ValeurChange &  » lires » End Sub ________________________________________ Change en monnaie variable, valeur variable, change variable Sub ChangeMonnaieV4() Dim CHF As Integer Dim MonnaieEtrangere As String Dim ValeurChange As Currency CHF = Val(InputBox(« Combien de francs suisses changez vous ? »)) MonnaieEtrangere = InputBox(« Quel est le nom de la monnaie étrangère ? ») ValeurChange = Val(InputBox(« Pour 1 CHF, combien obtenez-vous de  » & MonnaieEtrangere &  » ? »)) MsgBox « Pour  » & CHF &  » francs suisses, vous aurez  » & CHF * ValeurChange &  »  » & MonnaieEtrangere End Sub Exercice : Il faudrait que d’un montant en francs suisses, on aie la correspondance en plusieurs autes monnaies : une ou deux autres, ou même mieux : Un nombre indéterminé de monnaies Jeu du Plus grand / Plus petit Il s’agit du jeu bien connu ou l’un de 2 participants pense à un chiffre entre 1 et 1000 et l’autre doit le deviner par touches successives. Le premier doit répondre pour chaque essai « Trop » grand ou « Trop petit ». Pseudo-code NbATrouver = Hasard (1 à 1000) FlagTrouve = FAUX TANT QUE FlagTrouve = FAUX AFFICHE « Entre un nombre :  » ACCEPTE Essai SI Essai = Nombre ALORS FlagTrouve = VRAI FIN SI FIN TANT QUE AFFICHE « BRAVO. Tu as trouvé » AMELIORATIONS : 1. Il faudrait pouvoir choisir le nombre maximum au début de la partie 2. Il faut prévoir au début de chaque partie le nombre maximum d’essais dont on dispose, et indiquer le nombre d’essais restant à chaque essai 3. Il faut indiquer à la fin de chaque partie si on à gagné (on a découvert le nombre en moins de coups que le maximum), et si oui, indiquer le nombre d’essais effectués 4. Suivant le nombre d’essais effectués, afficher un petit commentaire adapté (« Quel champion », « Pas mal », Peut faire mieux ») 5. Il faut demander à l’utilisateur à la fin de chaque partie s’il veut recommencer Visual Basic Génération d’un nombre aléatoire entre 1 et 100 : Utilisation de la fonction RND Sub NombreAleatoire() NombreAuHasard = Rnd ‘ Nombre entre 0 et 1 (0.7894654) MsgBox NombreAuHasard NombreAuHasard = NombreAuHasard * 100 ‘ Nombre entre 0 et 99, avec des décimales (78.94654) MsgBox NombreAuHasard NombreAuHasard = Int(NombreAuHasard) ‘ Nombre entre 0 et 99 sans décimales (78) MsgBox NombreAuHasard NombreAuHasard = NombreAuHasard + 1 ‘ Nombre entre 1 et 100 sans décimales (79) MsgBox NombreAuHasard ________________________________________ La même chose en une seule ligne Sub NombreAleatoireV2 NombreAuHasard = Int((100 * Rnd) + 1) ‘ (79) End Sub ________________________________________ Utilisation de & (Concaténation) Sub UtilisationEtCommercial() Dim Nom As String, Prenom As String, Age As Integer Nom = InputBox(« Entrez votre nom ») Prenom = InputBox(« Entrez votre Prénom ») Age = InputBox(« Entrez votre age ») MsgBox « Vous vous appelez  » & Prenom &  »  » & Nom & « . Vous avez  » & Age &  » ans » End Sub ________________________________________ Utilisation du if Sub TropGrandTropPetitV1() NombreATrouver = Int((1000 * Rnd) + 1) Proposition = InputBox(« Faites une propostion ») If Proposition = NombreATrouver Then MsgBox « Vous avez trouvé le bon nombre » End If End Sub ________________________________________ Utilisation du if … Else Sub TropGrandTropPetitV2() Dim NombreATrouver As Integer NombreATrouver = Int((1000 * Rnd) + 1) Proposition = InputBox(« Faites une propostion ( » & NombreATrouver & « ) ») If Proposition > NombreATrouver Then MsgBox « Nombre trop grand » Else: MsgBox « Nombre trop petit » End If End Sub ________________________________________ Utilisation de Select Case Sub SelectCase() Dim Nombre Nombre = 8 Select Case Nombre Case Is <= 5 MsgBox « Entre 1 et 5 » Case 6, 7, 8 MsgBox « Entre 6 et 8 » Case 9 To 10 MsgBox « 9 ou 10 » Case Else MsgBox « Plus grand que 10 » End Select End Sub ________________________________________ Utilisation du Select … Case dans le jeu du plus grand plus petit Sub TropGrandTropPetitV3() Dim NombreATrouver As Integer NombreATrouver = Int((1000 * Rnd) + 1) Proposition = InputBox(« Faites une propostion ( » & NombreATrouver & « ) ») Select Case Proposition Case Is < NombreATrouver MsgBox « trop petit » Case Is > NombreATrouver MsgBox « trop grand » Case NombreATrouver MsgBox « GAGNE !!! » End Select End Sub ________________________________________ On recommence jusqu’à ce que le nombre soit trouvé Sub TropGrandTropPetitV4() Dim NombreATrouver As Integer, Proposition As Integer NombreATrouver = Int((1000 * Rnd) + 1) MsgBox NombreATrouver Proposition = 0 Do Until Proposition = NombreATrouver Proposition = InputBox(« Faites une propostion ( » & NombreATrouver & « ) ») Select Case Proposition Case Is < NombreATrouver MsgBox « trop petit » Case Is > NombreATrouver MsgBox « trop grand » Case NombreATrouver MsgBox « GAGNE !!! » End Select Loop End Sub ________________________________________ On compte le nombre d’essais nécessaires : Sub TropGrandTropPetitV5() Dim NombreATrouver As Integer, Proposition As Integer, NombreEssais As Integer NombreATrouver = Int((1000 * Rnd) + 1) Proposition = 0 NombreEssais = 0 Do Until Proposition = NombreATrouver Proposition = InputBox(NombreEssais &  » : Faites une propostion ( » & NombreATrouver & « ) ») NombreEssais = NombreEssais + 1 Select Case Proposition Case Is < NombreATrouver MsgBox « trop petit » Case Is > NombreATrouver MsgBox « trop grand » Case NombreATrouver MsgBox « GAGNE en  » & NombreEssais &  » essais !!! » End Select Loop End Sub ________________________________________ On peut rejouer autant de fois qu’on veut : Sub TropGrandTropPetitV6() Dim NombreATrouver As Integer, Proposition As Integer, NombreEssais As Integer, Recommencer As String Recommencer = « oui » Do While Recommencer = « oui » Proposition = 0 NombreEssais = 0 NombreATrouver = Int((1000 * Rnd) + 1) Do Until Proposition = NombreATrouver NombreEssais = NombreEssais + 1 Proposition = InputBox(NombreEssais &  » : Faites une propostion ( » & NombreATrouver & « ) ») Select Case Proposition Case Is < NombreATrouver MsgBox « trop petit » Case Is > NombreATrouver MsgBox « trop grand » Case NombreATrouver MsgBox « GAGNE en  » & NombreEssais &  » essais !!! » End Select Loop ‘ Entrer une autre proposition Recommencer = InputBox(« Voulez-vous recommencer ? ») Loop ‘ Recommencer le jeu End Sub Traitement des chaînes de caractères Left et Right : Prendre les extrêmes d’une chaîne de caractères Sub GaucheDroite() MsgBox Left(« abcdef », 3) MsgBox Right(« abcdef », 2) End Sub MID extrait des caractères au milieu d’une chaîne Sub MilieuChaine() MsgBox Mid(« abcde », 3, 2) ‘ renvoie cd MsgBox Mid(« abcde », 3, 10) ‘ renvoie cde MsgBox Mid(« abcde », 10, 3) ‘ renvoie une chaîne nulle End Sub InStr: Vérifie l ‘occurence d’une chaîne dans une autre. Sub FonctionInStr() ‘ Exemple 1 : X contiendra 2 MsgBox InStr(« abc », « b ») ‘ Exemple 2 : X contiendra 0 MsgBox InStr(« abc », « B ») ‘ Exemple 3 : X contiendra 2 MsgBox InStr(« abc », « bc ») ‘ Si dans la section General/Declarations, on écrit Option Compare Text, on peut comparer avec succès les minuscules et les majuscules. Si par contre on écrit Option ‘ Compare Binary (option par défaut), les caractères ASCII sont purement comparés. ‘ Mais, on peut avoir Option Compare Binary, et malgré tout, exceptionnellement demander une comparaison de texte avec : MsgBox InStr(0, « abc », « B », 1) End Sub CHR : Renvoie la valeur ASCII d’un caractère Sub FonctionChr() MsgBox Chr(« a ») ‘ renvoie 97 (code ASCII de a) End Sub LEN : Calcule la longueur d’une chaîne Sub LongueurChaine() MsgBox Len(« abc ») ‘ renvoie 3 (lettres) End Sub UCase et LCase Transforment les minuscules en majuscules et vice versa Sub MajusculeMinuscule() MsgBox UCase(« textE ») ‘ renvoie TEXTE MsgBox UCase(« téxte ») ‘ renvoie TÉXTE MsgBox LCase(« TExte ») ‘ renvoie texte End Sub VAL renvoie l’équivalent numérique d’une chaîne Sub FonctionVal() MsgBox Val( » 21x ») ‘ renvoie 21 MsgBox Val(« x21 ») ‘ renvoie 0 MsgBox Val(21) ‘ donne une erreur (le paramètre doitêtre une chaîne de caractères) End Sub Comptage du nombre de voyelles d’une phrase Simple parcourt des lettres d’une phrase Sub CompteVoyelle() Dim Phrase As String Phrase = « Ceci est une phrase » For Compteur = 1 To Len(Phrase) MsgBox Mid(Phrase, Compteur, 1) Next End Sub ________________________________________ Comptage des e Sub CompteVoyelleV2() Dim Phrase As String Dim NombreE As Integer Phrase = « Ceci est une phrase » For Compteur = 1 To Len(Phrase) If Mid(Phrase, Compteur, 1) = « e » Then NombreE = NombreE + 1 End If Next MsgBox NombreE End Sub ________________________________________ Comptage des voyelles Sub CompteVoyelleV3() Dim Phrase As String Dim NombreVoyelle As Integer Phrase = « Ceci est une phrase » NombreVoyelle = 0 For Compteur = 1 To Len(Phrase) Select Case Mid(Phrase, Compteur, 1) Case « a », « e », « i », « o », « u », « y » NombreVoyelle = NombreVoyelle + 1 End Select Next MsgBox « Il y a  » & NombreVoyelle &  » voyelles dans  » & Phrase End Sub ________________________________________ Comptage plus précis de chaque voyelle, avec stockage dans un tableau Sub CompteVoyelleV4() Dim Phrase As String Dim NombreVoyelle As Integer Dim A, E, I, O, U, Y Phrase = « Ceci est une phrase » NombreVoyelle = 0 A = 0 E = 0 I = 0 O = 0 U = 0 Y = 0 For Compteur = 1 To Len(Phrase) Select Case Mid(Phrase, Compteur, 1) Case « a »: a = A + 1 Case « e »: E = E + 1 Case « i »: I = I + 1 Case « o »: O = O + 1 Case « u »: U = U + 1 Case « y »: Y = Y + 1 NombreVoyelle = NombreVoyelle + 1 End Select Next Selection.TypeText « Il y a  » & A &  » A dans  » & Phrase Selection.TypeParagraph Selection.TypeText « Il y a  » & E &  » E dans  » & Phrase Selection.TypeParagraph Selection.TypeText « Il y a  » & I &  » I dans  » & Phrase Selection.TypeParagraph Selection.TypeText « Il y a  » & O &  » O dans  » & Phrase Selection.TypeParagraph Selection.TypeText « Il y a  » & U &  » U dans  » & Phrase Selection.TypeParagraph Selection.TypeText « Il y a  » & Y &  » Y dans  » & Phrase Selection.TypeParagraph End Sub Améliorations possibles : – Compter toutes les lettres de l’alphabet – N’afficher que les lettres présentes – Montrer la lettre la plus courante – Laisser le choix de la phrase à l’utilisateur – Plus difficile : Compter le nombre de mots d’une phrase Réécriture d’une phrase à l’envers Pseudo-code AFFICHE « Entre une phrase quelconque :  » ACCEPTE Phrase POUR Ctr = LONGUEUR (Phrase) JUSQU’A 1 AFFICHE Phrase[Ctr] SUIVANT Ctr Visual Basic Sub PhraseALenvers() Dim Phrase As String Dim PhraseEnvers As String Phrase = « Tu l’as trop écrasé, César, ce port-salut » For compteur = Len(Phrase) To 1 Step -1 PhraseEnvers = PhraseEnvers & Mid(Phrase, compteur, 1) Next MsgBox PhraseEnvers End Sub Améliorations : – Laisser le choix à l’utilisateur de la phrase – Réécrire la phrase une lettre sur 2 Détermination des diviseurs d’un nombre L’exercice consiste à trouver tous les diviseurs d’un nombre donné. Par exemple, si je dis 20, il faut arriver à trouver que ses diviseurs sont 1, 2, 4, 5, 10 et 20. Bon en fait, 1 et 20 évidemment qu’ils sont diviseurs… N’importe quel nombre est divisible par un et par lui-même. Ce sont surtout 2, 4, 5 et 10 qui sont intéressants. Bon ici, ça va, on peut faire le calcul de tête. Mais s’il s’agit de trouver les diviseurs de 376, c’est moins facile… Comment allons nous procéder ? Par multiplications successives. Par exemple, on cherche les diviseurs de 8 : ce sont 1, 2, 4 et 8. Méthodiquement, on fait : On commence avec les 1 : 1X1 = 1 2X1 = 2 3X1 = 3 4X1 = 4 5X1 = 5 6X1 = 6 7X1 = 7 8X1 = 8Ah voilà le premier ! On continue avec les 2 : 1X2 = 2 2X2 = 4 3X2 = 6 4X2 = 8 Ah ! En voilà Un ! 5X2 = 10 6X2 = 12 7X2 = 14 8X2 = 16 Et avec les 3 : 1X3 = 3 2X3 = 6 3X3 = 9 4X3 = 12Ah ! En voilà Un ! 5X3 = 15 6X3 = 18 7X3 = 21 8X3 = 24 Pas de chance… Il n’y en a aucun. Bon on continue avec les 4. On va trouver 4X2 = 8, puis avec les 5 il n’y en a aucun, avec les 6 non plus, les 7 non plus, les 8 : Il y en a 1 : 8X1 = 8. Bon alors comment on met ça en route ? avec une boucle imbriquée, comme ceci Pseudo-code AFFICHE « Entre le nombre à analyser » ACCEPTE Nombre POUR Ctr = 1 JUSQUA Nombre POUR Ctr2 = Ctr JUSQUA Nombre SI Ctr * Ctr2 = Nombre AFFICHE Ctr  » fois  » Ctr2  » égale  » Nombre FIN SI SUIVANT Ctr2 SUIVANT Ctr Améliorations possibles : 1. Optimiser le programme : Il est inutile de faire commencer le compteur à 1 2. Est-il nécessaire de continuer au delà de la moitié ? 3. L’utilisateur doit pouvoir entrer d’autres nombres à analyser Visual Basic Message Box successifs Sub Diviseur() Dim QuelNombre As Long Dim Ctr As Long Dim Ctr2 As Long QuelNombre = Val(InputBox(« Quel nombre voulez-vous analyser ? »)) For Ctr = 1 To QuelNombre For Ctr2 = 1 To QuelNombre If Ctr * Ctr2 = QuelNombre Then MsgBox Ctr &  » est diviseur de  » & QuelNombre End If Next Ctr2 Next Ctr End Sub ________________________________________ Stockage dans un tableau de taille fixe Sub DiviseurV2() Dim QuelNombre As Long Dim Ctr As Long Dim Ctr2 As Long Dim ListeDiviseur(1000) Dim Flag As Long Flag = 0 QuelNombre = Val(InputBox(« Quel nombre voulez-vous analyser ? »)) For Ctr = 1 To QuelNombre For Ctr2 = 1 To QuelNombre If Ctr * Ctr2 = QuelNombre Then Flag = Flag + 1 ListeDiviseur(Flag) = Ctr End If Next Ctr2 Next Ctr For Ctr = 1 To Flag Selection.TypeText ListeDiviseur(Ctr) Selection.TypeParagraph Next End Sub ________________________________________ Stockage dans un tableau de taille variable avec ReDim (pour optimiser la place mémoire) L’utilisation de Preserve évite d’effacer chaque fois le tableau Sub DiviseurV3() Dim QuelNombre As Long Dim Ctr As Long Dim Ctr2 As Long Dim ListeDiviseur() Dim Flag As Long Flag = 0 QuelNombre = Val(InputBox(« Quel nombre voulez-vous analyser ? »)) For Ctr = 1 To QuelNombre For Ctr2 = 1 To QuelNombre If Ctr * Ctr2 = QuelNombre Then Flag = Flag + 1 ReDim Preserve ListeDiviseur(Flag + 1) ListeDiviseur(Flag) = Ctr End If Next Ctr2 Next Ctr For Ctr = 1 To Flag Selection.TypeText ListeDiviseur(Ctr) Selection.TypeParagraph Next End Sub ________________________________________ Si le nombre n’est divisible que par 1 et par lui même (23 par exemple), il est premier. Nous allons l’indiquer Sub DiviseurV4() Dim QuelNombre As Long Dim Ctr As Long Dim Ctr2 As Long Dim ListeDiviseur() Dim Flag As Long Flag = 0 QuelNombre = Val(InputBox(« Quel nombre voulez-vous analyser ? »)) For Ctr = 1 To QuelNombre For Ctr2 = 1 To QuelNombre If Ctr * Ctr2 = QuelNombre Then Flag = Flag + 1 ReDim Preserve ListeDiviseur(Flag + 1) ListeDiviseur(Flag) = Ctr End If Next Ctr2 Next Ctr If Flag = 2 Then Selection.TypeText QuelNombre &  » est un nombre premier que rien ne divise. » Selection.TypeParagraph Else For Ctr = 1 To Flag Selection.TypeText ListeDiviseur(Ctr) Selection.TypeParagraph Next End If End Sub ________________________________________ Optimisation : Utilisation du Modulo (MOD) Jusqu’ici, nous avons utilisé 2 boucles imbriquées pour voir si un nombre multiplié par un autre donne le résultat recherché. En fait, on gaspille un temps de programmation précieux. Nous avons la possibilité d’utiliser la fonction MOD (Modulo). MOD permet de trouver le reste d’une division. Par exemple 15 MOD 2= 1. Parce que 15/2 = 7, mais il reste 1 (7*2 = 14 + ce fameux 1) = 15. Ca à l’air idiot comme ça, mais dans notre cas, ça va nous rendre de précieux services. Par exemple, si on cherche les diviseurs de 20 : 20 MOD 2 = 0 (20/2=10, reste 0) 20 MOD 3 = 2 (20/3 = 6, reste 2) 20 MOD 4 = 0 (20/4 = 5, reste 0) A vous maintenant : 20 MOD 5 = 0 (20/5 = 4, reste ?) 20 MOD 6 = 2 (20/6 = ?, reste ?) 20 MOD 7 = ? (20/7 = ?, reste ?) 20 MOD 8 = ? (?/? =?, reste ?) 20 MOD 9 = ? 20 MOD 10 = ? ça ne sert à rien d’aller plus loin que la moitié. On se doute bien que 20 n’est pas divisible par 11,12,13,14,15,16,17,18 ni 19. En fait, avec ce MOD, on constate simplement que lorsque le modulo = 0, 20 est divisible par ce nombre (2, 4, 5 et 10). Voici une version largement plus rapide du programme de recherche des diviseurs : Sub DiviseurOptimise() Dim QuelNombre As Long Dim Ctr As Long QuelNombre = Val(InputBox(« Quel nombre voulez-vous analyser ? »)) ‘ Nous partons de 2, parce que ça ne sert a rien de tester 1, ‘ et on va jusqu’à la moitié du nombre, car on sait qu’il n’y a plus aucun diviseur après. For Ctr = 2 To QuelNombre / 2 If QuelNombre Mod Ctr = 0 Then MsgBox Ctr &  » est diviseur de  » & QuelNombre End If Next Ctr End Sub Sub et Function Premier appelle Deuxieme Sub Premier() MsgBox « Je suis dans Premier » Deuxieme End Sub Sub Deuxieme() MsgBox « Je suis dans Deuxieme » End Sub ________________________________________ Utilisation d’Exit Sub Sub Troisieme() MsgBox « Premiere phrase » Exit Sub MsgBox « Deuxième Phrase phrase » End Sub ________________________________________ Quatrieme Appelle cinquieme, et Exit Sub Sub Quatrieme() MsgBox « Phrase 1, Quatrieme » Cinquieme MsgBox « Phrase 2, Quatrieme » End Sub Sub Cinquieme() MsgBox « Phrase 1, Cinquieme » Exit Sub MsgBox « Phrase 2, Cinquieme » End Sub ________________________________________ Utilisation d’un paramètre Sub Sixieme() Septieme 44 End Sub Sub Septieme(LeParametre) MsgBox « Sixieme vient de m’envoyer  » & LeParametre End Sub ________________________________________ Utilisation de 2 paramètres Sub Huitieme() Neuvieme 32, « Chat » End Sub Sub Neuvieme(Nombre As Integer, Animal As String) MsgBox « Huitieme m’envoie l’animal  » & Animal MsgBox « Huitieme m’envoie le nombre  » & Nombre End Sub ________________________________________ Envoi d’un tableau en paramètre Sub Proc1() Dim Armoire(2) Armoire(1) = « Bidule » Armoire(2) = « machin » Proc2 Armoire MsgBox Armoire(2) ‘ Coucou et pas machin ! End Sub Sub Proc2(MonTab()) MsgBox MonTab(1) ‘ Bidule MonTab(2) = « Coucou » End Sub ________________________________________ Appel simple à une fonction Sub Dixieme() MsgBox Onzieme End Sub Function Onzieme() Onzieme = 32 End Function ________________________________________ Appel à une fonction avec un paramètre Sub Douzieme() MsgBox LeDouble(34) End Sub Function LeDouble(QuelNombre) LeDouble = QuelNombre * 2 End Function ________________________________________ Appel d’une fonction avec 2 paramètres Sub Treizieme() MsgBox Additionne(4, 6) End Sub Function Additionne(Nombre1 As Integer, Nombre2 As Integer) Additionne = Nombre1 + Nombre2 End Function ________________________________________ Appel à une fonction plus élaborée Sub Quatorzieme() MsgBox ChiffreEnLettre(3) End Sub Function ChiffreEnLettre(QuelChiffre) Select Case QuelChiffre Case 1: ChiffreEnLettre = « Un » Case 2: ChiffreEnLettre = « Deux » Case 3: ChiffreEnLettre = « Trois » Case Else: ChiffreEnLettre = « ##ERREUR## » End Select End Function ________________________________________ Appel à une fonction nettement plus élaborée, qui renvoie le chiffre en anglais ou en français Sub Quinzieme() MsgBox ChiffreEnLettreAnglaisFrancais(3, « Anglais ») MsgBox ChiffreEnLettreAnglaisFrancais(2, « Français ») MsgBox ChiffreEnLettreAnglaisFrancais(66, « Français ») MsgBox ChiffreEnLettreAnglaisFrancais(66, « Anglais ») MsgBox ChiffreEnLettreAnglaisFrancais(2, « Italien ») End Sub Function ChiffreEnLettreAnglaisFrancais(QuelChiffre, Langue) Select Case Langue Case « Français »: Select Case QuelChiffre Case 1: ChiffreEnLettreAnglaisFrancais = « Un » Case 2: ChiffreEnLettreAnglaisFrancais = « Deux » Case 3: ChiffreEnLettreAnglaisFrancais = « Trois » Case 4: ChiffreEnLettreAnglaisFrancais = « Quatre » Case Else: ChiffreEnLettreAnglaisFrancais = « NOMBRE INCONNU » End Select Case « Anglais » Select Case QuelChiffre Case 1: ChiffreEnLettreAnglaisFrancais = « One » Case 2: ChiffreEnLettreAnglaisFrancais = « Two » Case 3: ChiffreEnLettreAnglaisFrancais = « Three » Case 4: ChiffreEnLettreAnglaisFrancais = « Four » Case Else: ChiffreEnLettreAnglaisFrancais = « NUMBER UNKNOWN » End Select Case Else ChiffreEnLettreAnglaisFrancais = « LANGUE INCONNUE » End Select ChiffreEnLettreAnglaisFrancais = ChiffreEnLettreAnglaisFrancais End Function Exercice Enoncé Ecrire un programme de calcul mental : Sub CalculMental(). C’est à dire un programme qui va poser 4 calculs à effectuer de tête, avec calcul du score, c’est à dire un point par calcul réussi. Bien entendu les calculs doivent être pris au Hasard avec Rnd. Voici comment le programme doit fonctionner (Les chiffres sont des exemples) Le programme affiche (MsgBox): Bienvenue dans le programme de calcul mental. Vous allez devoir répondre à 4 questions de calcul mental simple Le programme affiche (InputBox) Question 1 : 32 + 54 = ? L’utilisateur répond : 86 Le programme affiche (MsgBox) : Bonne réponse Le programme affiche (InputBox) Question 2: 74 + 7 ? L’utilisateur répond : 82 Le programme affiche (MsgBox): Mauvaise réponse. Le bon résultat était 81 Le programme affiche (InputBox) Question 3: 90 + 15 ? L’utilisateur répond : 110 Le programme affiche (MsgBox) : Mauvaise réponse. Le bon résultat était 105 Le programme affiche (InputBox) Question 4: 12 + 20 ? L’utilisateur répond : 32 Le programme affiche (MsgBox) : Bonne réponse Le programme affiche (MsgBox) : Votre score est 2 bonnes réponses sur 4. Bonne journée. Pour ce programme vous DEVEZ utiliser une boucle For To Next pour éviter de répéter 4 fois le même code Visual Basic. S’il y avait 50 questions à la place de 4, on se rendrait compte que ce ne serait pas possible sans For To Next. La solution a ce problème est détaillé ici plus bas en plusieurs étapes. Je vous propose de ne pas regarder tout de suite les solutions, mais d’essayer de résoudre le problème vous même, et, si vous êtes vraiment bloqué de regarder la solution, étape par étape, mais de chaque fois essayer de prendre de l’avance pour ne pas avoir la solution qui vous est présentée tout de suite. Calcul mental – Etape 1 Option Explicit ‘ Affichage d’un message de bienvenue et d’un message d’au revoir Sub CalculMentalV1() MsgBox « Bienvenue dans le programme de calcul mental » MsgBox « Merci d’avoir joué » End Sub Calcul Mental : Etape 2 Version 2 : Il s’agit de choisir un nombre au hasard : Sub CalculMentalV2() Dim Nombre1 Randomize ‘ Cette instruction permet simplement d’assurer qu’à chaque lancement du programme, ‘ Le nombre aléatoire sera toujours différent MsgBox « Bienvenue dans le programme de calcul mental » Nombre1 = Rnd MsgBox Nombre1 MsgBox « Merci d’avoir joué » End Sub Calcul Mental : Etape 3 En fait, il faut le transformer d’un nombre au hasard entre 0 et 1 en nombre au hasard entre 1 et 100 (100 par exemple) Sub CalculMentalV3() Dim N1 Randomize MsgBox « Bienvenue dans le programme de calcul mental » N1 = Rnd ‘ 0.9963265412 – Nombre au hasard entre 0 et 1 N1 = N1 * 100 ‘ 99.63265412 – Le même nombre * 100 N1 = N1 + 1 ‘ 100.63265412 – Le même nombre + 1 (sinon ce serait un nombre au hasard entre 0 et 99) N1 = Int(Hasard) ‘ 100 ‘ On supprime toutes les décimales pour avoir un nombre entier MsgBox N1 MsgBox « Merci d’avoir joué » End Sub Calcul Mental : Etape 4 Il est possible de compresser la génération du nombre aléatoire en une seule ligne de code qui est plus difficile à comprendre mais qui permet un programme plus compact Sub CalculMentalV4() Dim N1 Randomize MsgBox « Bienvenue dans le programme de calcul mental » N1 = Int((100 * Rnd) + 1) MsgBox N1 MsgBox « Merci d’avoir joué » End Sub Calcul Mental : Etape 5 En fait, ce n’est pas un seul nombre que nous avons besoin, mais 2 Sub CalculMentalV5() Dim N1, N2 Randomize MsgBox « Bienvenue dans le programme de calcul mental » N1 = Int((100 * Rnd) + 1) N2 = Int((100 * Rnd) + 1) MsgBox « N1 égale  » & N1 MsgBox « N2 égale  » & N2 MsgBox « Merci d’avoir joué » End Sub Calcul Mental : Etape 6 Il s’agit maintenant de poser une question à l’utilisateur : Sub CalculMentalV6() Dim N1, N2 Randomize MsgBox « Bienvenue dans le programme de calcul mental » N1 = Int((100 * Rnd) + 1) N2 = Int((100 * Rnd) + 1) ‘ Utilisation astucieuse des & : Reponse = InputBox(« Combien font  » & N1 &  » +  » & N2 &  » ? ») MsgBox « Merci d’avoir joué » End Sub Calcul Mental : Etape 7 Et maintenant, on vérifie si l’utilisateur a entré la bonne réponse : Cette version dit que l’utilisateur a entré une fausse réponse même si elle est correcte Je pense que c’est parce que N1 et N2 n’ont pas été déclarés en INTEGER Sub CalculMentalV7() Dim N1, N2 Dim Reponse ‘ Stockage de la réponse de l’utilisateur Randomize MsgBox « Bienvenue dans le programme de calcul mental » N1 = Int((100 * Rnd) + 1) N2 = Int((100 * Rnd) + 1) Reponse = InputBox(« Combien font  » & N1 &  » +  » & N2 &  » ? ») If Reponse = N1 + N2 Then MsgBox « Bonne réponse ! » Else MsgBox « Désolé… la bonne réponse était  » & N1 + N2 End If MsgBox « Merci d’avoir joué » End Sub Calcul Mental : Etape 8 Cette version fonctionne Sub CalculMentalV8() ‘ Déclaration des variables correctement Dim N1 As Integer Dim N2 As Integer Dim Reponse ‘ Stockage de la réponse de l’utilisateur Randomize MsgBox « Bienvenue dans le programme de calcul mental » N1 = Int((100 * Rnd) + 1) N2 = Int((100 * Rnd) + 1) Reponse = InputBox(« Combien font  » & N1 &  » +  » & N2 &  » ? ») If Reponse = N1 + N2 Then MsgBox « Bonne réponse ! » Else MsgBox « Désolé… la bonne réponse était  » & N1 + N2 End If MsgBox « Merci d’avoir joué » End Sub Calcul Mental : Etape 9 Maintenant, ce n’est pas un calcul qu’il faut proposer à l’utilisateur, mais 4 : Si on n’utilise pas de boucle For To Next, on obtient le programme suivant qui ressemble à un mammouth : (Et encore… on n’a que 4 calculs…) Sub CalculMentalV9() Dim N1 As Integer Dim N2 As Integer Dim Reponse ‘ Stockage de la réponse de l’utilisateur Randomize MsgBox « Bienvenue dans le programme de calcul mental » ‘ Premier calcul : N1 = Int((100 * Rnd) + 1) N2 = Int((100 * Rnd) + 1) Reponse = InputBox(« Combien font  » & N1 &  » +  » & N2 &  » ? ») If Reponse = N1 + N2 Then MsgBox « Bonne réponse ! » Else MsgBox « Désolé… la bonne réponse était  » & N1 + N2 End If ‘ Deuxième calcul : N1 = Int((100 * Rnd) + 1) N2 = Int((100 * Rnd) + 1) Reponse = InputBox(« Combien font  » & N1 &  » +  » & N2 &  » ? ») If Reponse = N1 + N2 Then MsgBox « Bonne réponse ! » Else MsgBox « Désolé… la bonne réponse était  » & N1 + N2 End If ‘ Troisième calcul : N1 = Int((100 * Rnd) + 1) N2 = Int((100 * Rnd) + 1) Reponse = InputBox(« Combien font  » & N1 &  » +  » & N2 &  » ? ») If Reponse = N1 + N2 Then MsgBox « Bonne réponse ! » Else MsgBox « Désolé… la bonne réponse était  » & N1 + N2 End If ‘ Quatrième et dernier calcul : N1 = Int((100 * Rnd) + 1) N2 = Int((100 * Rnd) + 1) Reponse = InputBox(« Combien font  » & N1 &  » +  » & N2 &  » ? ») If Reponse = N1 + N2 Then MsgBox « Bonne réponse ! » Else MsgBox « Désolé… la bonne réponse était  » & N1 + N2 End If MsgBox « Merci d’avoir joué » End Sub Calcul Mental : Etape 10 Voici exactement la même chose, mais avec un For To Next, Plus élégant, plus lisible, mais plus délicat à comprendre Sub CalculMentalV10() Dim N1 As Integer Dim N2 As Integer Dim Reponse Dim Compteur ‘ Compte les additions Randomize MsgBox « Bienvenue dans le programme de calcul mental » For Compteur = 1 To 4 ‘ Il est facile de remplacer 4 par un autre nombre… N1 = Int((100 * Rnd) + 1) N2 = Int((100 * Rnd) + 1) Reponse = InputBox(« Combien font  » & N1 &  » +  » & N2 &  » ? ») If Reponse = N1 + N2 Then MsgBox « Bonne réponse ! » Else MsgBox « Désolé… la bonne réponse était  » & N1 + N2 End If Next ‘ Fin du For MsgBox « Merci d’avoir joué » End Sub Calcul Mental : Etape 11 Maintenant, occupons nous du score. Il s’agit d’augmenter de 1 le score du joueur Chaque fois qu’il répond correctement. Sub CalculMentalV11() Dim N1 As Integer Dim N2 As Integer Dim Reponse As Integer Dim Compteur As Integer Dim Score As Integer ‘ Contiendra le score du joueur Score = 0 ‘ D’entrée son score est de zéro. Randomize MsgBox « Bienvenue dans le programme de calcul mental » For Compteur = 1 To 4 ‘ Il est facile de remplacer 4 par un autre nombre… N1 = Int((100 * Rnd) + 1) N2 = Int((100 * Rnd) + 1) Reponse = InputBox(« Combien font  » & N1 &  » +  » & N2 &  » ? ») If Reponse = N1 + N2 Then MsgBox « Bonne réponse ! » Score = Score + 1 ‘ On augmente son score s’il répond bien Else MsgBox « Désolé… la bonne réponse était  » & N1 + N2 ‘ Sinon, son score ne bouge pas… End If Next ‘ Fin du For ‘ Et on affiche le score à la fin : MsgBox « Merci d’avoir joué. Votre score est de  » & Score &  » sur 4. » End Sub Calcul Mental : Programme complet Le programme est terminé. Mettons maintenant les commentaires correctement, et aérons le programme pour Pouvoir le relire facilement, et apporter aisément des modifications ultérieures. Sub CalculMentalV12() ‘ ******************************* ‘ * Déclaration des variables : * ‘ ******************************* Dim N1 As Integer ‘ Premier des deux nombre au hasard Dim N2 As Integer ‘ Second des deux nombres au hasard Dim Reponse As Integer ‘ Réponse proposée à chaque fois par le joueur Dim Compteur As Integer ‘ Compteur de questions Dim Score As Integer ‘ Contiendra le score du joueur (nombre de réponses correctes) ‘ *************************** ‘ *Démarrage du programme : * ‘ *************************** Score = 0 ‘ D’entrée son score est de zéro. Randomize ‘ Permet d’assurer que les nombres seront toujours différents à chaque tirage au sort MsgBox « Bienvenue dans le programme de calcul mental » ‘ *********************** ‘ * Boucle principale : * ‘ *********************** For Compteur = 1 To 4 ‘ Il est facile de remplacer 4 par un autre nombre… N1 = Int((100 * Rnd) + 1) ‘ Génération d’un nombre au hasard N1 N2 = Int((100 * Rnd) + 1) ‘ Génération d’un nombre au hasard N2 Reponse = InputBox(« Combien font  » & N1 &  » +  » & N2 &  » ? ») ‘ Si le joueur répond correctement : If Reponse = N1 + N2 Then MsgBox « Bonne réponse ! » Score = Score + 1 ‘ On augmente son score s’il répond bien Else ‘ Sinon… ‘ Sinon, son score ne bouge pas… MsgBox « Désolé… la bonne réponse était  » & N1 + N2 End If Next ‘ Fin du For ‘ ********************** ‘ * Fin du programme : * ‘ ********************** MsgBox « Merci d’avoir joué. Votre score est de  » & Score &  » sur 4. » End Sub Calcul Mental : améliorations possibles Tout programme est améliorable à l’infini. Essayez donc ces quelques améliorations : TRES FACILE – A la place d’addictions, faire des soustractions, ou des multiplications ________________________________________ FACILE Demander au joueur son nom, pour personnaliser le message de conclusion : « Roger, votre score est de 3 sur 4 » ________________________________________ FACILE – Demander au joueur à la base combien d’additions il veut (3, 4, 50 ?) ________________________________________ FACILE – Demander la difficulté voulue au joueur (Des additions jusqu’à 100 comme ici, ou 500, ou 10000 ?) ________________________________________ ASSEZ FACILE – Faire des commentaires suivant le score : « Score de 1 sur 4, Roger, vous êtes NUL ! » Ou « Score de 4 sur 4, Marcel, vous êtes un génie ! » ________________________________________ ASSEZ FACILE – Afficher les résultats successifs des additions dans Word avec Selection.TypeText et TypeParagraph ________________________________________ DIFFICILE – Demander à l’utilisateur s’il veut faire des additions, des soustractions ou des multiplications avant de commencer le jeu

ATTESTATION D’AFFILIATION AU REGIME DE SECURITE SOCIALE

Filed under: Attestations — izaam01 @ 7:08

 

PARIS , le 10 janvier 2005

ATTESTATION  D’AFFILIATION AU REGIME DE SECURITE SOCIALE

 

Je soussigné le Directeur de l’Institut …commerciales

atteste que la formation BTS Informatique de Gestion est affiliée au régime

de sécurité sociale étudiant.

Cette attestation est délivrée à M. Nom Prénom pour faire valoir ce que de droit.

Le Directeur

MySQL – Database Connections

Filed under: MYSQL — izaam01 @ 7:02

MySQL – Database Connections

PHP has inbuilt support for MySql databases. Before installing PHP, you should install MySql first, so that when PHP installs you can point it to your MySql installation otherwise it will use it’s default settings.

DB Connection

To connect to a MySql db you’ll need to use the function mysql_connect and host, username and password as part of the argument eg

$connection = mysql_connect(« hostname », »username », »password »);

You can use the die function to offer an alternative option if the connection fails eg

$connection = mysql_connect(« hostname », »username », »password ») or die(« Couldn’t connect to MySql »);

With the addition of using the @ symbol to before the function call will suppress warnings which would be passed on the the user eg

$connection = @mysql_connect(« hostname », »username », »password ») or die(« Couldn’t connect to MySql »);

Selecting the Database

Once connected you can use your connection to open a database with the function mysql_select_db eg

<?PHP
  $connection = mysql_connect("hostname","username","password") 
  or die("Couldn't connect to MySql");
  $myDB= "users";
  $db = mysql_select_db($myDB,$connection) or die("Couldn't 
  select database ");
?>

Queries

To run a query use mysql_query which takes a a SQL statement and a connection as the argument eg

<?PHP
  $connection = mysql_connect("hostname","username","password") 
  or die("Couldn't connect to MySql");
  $myDB= "users"; 
  $db = mysql_select_db($myDB,$connection) or die("Couldn't 
  select database ");
  $sql = "SELECT * FROM users;";
  $result = mysql_query($sql,$connection) or die("Couldn't 
  execute query. ");
?>

The records returned are placed in $result which is an array or recordset.

Reading Returned Records

To read the records returned from a query use mysql_fetch_array which takes the returned array as the argument eg

<?php
  $connection = mysql_connect("hostname","username","password") 
  or die("Couldn't connect to MySql");
  $myDB= "users";
  $connection = mysql_select_db($myDB,$connection) or 
  die("Couldn't select database ");
  $sql = "SELECT * FROM users;";
  $result = mysql_query($sql,$connection) or die("Couldn't 
  execute query. ");
  while ($row = mysql_fetch_array($result)){
  echo $row["firstname"];
  echo $row["lastname"];
  echo $row["email"];
  }
?>

MySQL – Inserting

Inserting Data

To insert data you would also use mysql_query eg

<?PHP
  $connection = mysql_connect("hostname","username","paswword") 
  or die("Couldn't connect to MySql");
  $myDB= "users"; 
  $connection = mysql_select_db($myDB,$connection) or 
  die("Couldn't select database ");
  $sql = "INSERT INTO users(firstname,lastname,email)VALUES($first,$last,$email);";
  $result = mysql_query($sql,$connection) or die("Couldn't 
  execute query. ");
?>

Unfortunately as SQL is written using english you’ll need to escape the values being written if held in a variable otherwise the insert statement will insert the variable name instead of the value eg

<?PHP
   $connection = mysql_connect("hostname","username","paswword") 
  or die("Couldn't connect to MySql");
  $myDB= "users";
  $connection = mysql_select_db($myDB,$connection) or 
  die("Couldn't select database ");
  $sql = "INSERT INTO users(firstname,lastname,email)VALUES(\"$first\",\"$last\",\"$email\");";
  $result = mysql_query($sql,$connection) or die("Couldn't 
  execute query. ");
?>

next

MySQL – Database Functions

You’ll find brief descriptions of the following functions helpful when working with a MySql database.

mysql_list_tables

Using this function will return a pointer eg

$tables = mysql_list_tables($mydb);

mysql_list_tablename

Using this function will return a table’s name from a database. It must be used in conjunction with mysql_list_tables to be able to extract the table name eg

$tables = mysql_list_tables($mydb);
for ($i < $mysql_num_rows ($tables)){
$tablename = mysql_tablename($tables,$i);
echo $tablename;
$i++;
}

mysql_list_fields

Using this function will return a pointer to list a table’s fields eg

$fieldinfo = mysql_list_fields($mydb,$tablename);

mysql_num_rows

Using this function will return the number of rows from a query eg

$numrows = mysql_num_rows($result);

mysql_num_fields

Using this function will return the number of fields in a result set eg

$numfields = mysql_num_fields($result);

mysql_field_name

Using this function will return the name of a field based on a result and an index number eg

$fieldname = mysql_field_name($result,2);

Propulsé par WordPress.com.