Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 12/03/2010, 21h33   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2009
Messages : 77
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 77
Points : 14
Points : 14
Par défaut manipulation des données via PHP

salut je suis novice dans le code PHP quoique je connais en bases de données, je voulais avoir un script PHP d'un formulaire permettant de manipuler (ajouter ou modifier) un enregistrement d'une base de données.
Par exemple j'ai une base de données "Ventes" avec des tables:
Vendeur[id_vendeur,nom,adresse,téléphone],
Client[id_client,nom,adresse],
Article[id_article,id_vendeur,id_client,prix,date_entrée,date_sortie]

contrainte:un client ne peut etre ajouté sans avoir d article
un article doit etre affecté à un vendeur

si possible je veux avoir un script en php d'un formulaire permettant d'ajourer un client à la base de données...

vous voila le script SQL de la création de la base de données:
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
 
 
CREATE TABLE client (
  id_client INT NOT NULL AUTO_INCREMENT,
  nom_client VARCHAR(20) NULL,
  adresse_client VARCHAR NULL,
  PRIMARY KEY(id_client)
);
 
CREATE TABLE vendeur (
  id_vendeur INT NOT NULL AUTO_INCREMENT,
  nom_vendeur VARCHAR(20) NULL,
  adresse_vendeur VARCHAR NULL,
  telephone INT NULL,
  PRIMARY KEY(id_vendeur)
);
 
CREATE TABLE article (
  id_article INT NOT NULL AUTO_INCREMENT,
  client_id_client INT NOT NULL,
  vendeur_id_vendeur INT NOT NULL,
  nom VARCHAR(20) NULL,
  prix NUMERIC NULL,
  date_entrée DATE NULL,
  date_sortie DATE NULL,
  PRIMARY KEY(id_article),
  INDEX Table_02_FKIndex1(vendeur_id_vendeur),
  INDEX Table_02_FKIndex2(client_id_client)
);
baouk2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2010, 21h35   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Commence par les tutoriaux
http://sylvie-vauthier.developpez.co...ntro-bdd#LVI-2
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2010, 14h48   #3
Candidat au titre de Membre du Club
 
Inscription : janvier 2009
Messages : 77
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 77
Points : 14
Points : 14
merci pour le tuto ça m a aidé. mntnt j'ai ajouté des clients via php, mais le problème c que le page affiche erreur connexion mm si l ajout se fait par succès. je vous donnes mon script parce que je sais pas que ajouter pour afficher un msg 'ajout réussi ' à la page avec le formulaire

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
36
37
38
39
40
41
42
 
<?php
include("fonctions.php");
?>
<html>
    <head><title>Formulaire d'un article </title></head>
    <body>
        <h1>nouveau client</h1>
        <h2>Entrez les données demandées :</h2>
        <form name="nouveau" method="post" action="form2.php">
            Entrez le nom du client:    <input type="text" name="nom"/> <br/>
            Entrez l'adresse client :  <input type="text" name="adresse"/><br/>
            <input type="submit" name="valider" value="OK"/>
        </form>
        <?php
        if (isset ($_POST['valider'])){
            //On récupère les valeurs entrées par l'utilisateur :
            $nom=$_POST['nom'];
            //$prix=$_POST['prix'];
            $adresse=$_POST['adresse'];
            //$today = date("d.m.y");
            //On construit la date d'aujourd'hui
            //strictement comme sql la construit
            //$today = date("y-m-d");
            //On se connecte
            connectventes();
 
            //On prépare la commande sql d'insertion
            $sql = 'INSERT INTO client VALUES("","'.$nom.'","'.$adresse.'")';
 
            /*on lance la commande (mysql_query) et au cas où, 
            on rédige un petit message d'erreur si la requête ne passe pas (or die) 
            (Message qui intègrera les causes d'erreur sql)*/
            mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
 
            // on ferme la connexion
        mysql_close();    
        }
 
        ?>
    </body>
</html>
et la page fonctions est:
Code :
1
2
3
4
5
6
7
8
 
<?php
 
function connectventes(){
    $base = mysql_connect ('localhost', 'root', '');  
    mysql_select_db ('ventes', $base) ;
}
?>
baouk2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2010, 23h30   #4
Candidat au titre de Membre du Club
 
Inscription : janvier 2009
Messages : 77
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 77
Points : 14
Points : 14
Par défaut pas d'affichage des résultats

salut, vu que j'ai pas de réponses depuis qcq jours j'ai essayé de voir des alternatives mai jusque là j'ai pa pu avoir grand chose. Entre autre j'ai essayé de voir une recherche sur la table vendeur (par nom)(voir plus haut), je suis parvenu au script suivant , mais le problème c'est que ça retourne le tableau vide(sans résultat)(normalemen ça doit afficher le nom saisi s'il existe avec l'adresse et téléphone)

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
<head>
<title>Messages de Yogui (source : MySQL)</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
</head>
 
<body>
 
<form name="nouveau" method="get" action="search.php">
            Entrez le nom du vendeur :      <input type="text" name="vendeur"/>
            <input type="submit" name="valider" value="OK"/>
        </form>
 
 
 <?php       if (isset ($_GET['valider'])){
            //On récupère les valeurs entrées par l'utilisateur :
 
            $vendeur=$_GET['vendeur'];
$base = mysql_connect ('localhost', 'root', '');  
    mysql_select_db ('ventes', $base) ;
 
 
$sql = "SELECT * FROM `vendeur` WHERE nom_vendeur = '.$vendeur.' LIMIT 0 , 30";
 
 
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
 
?>
<?php 
if(!$result){
    echo('tapez un nom valide s.v.p!');
}
 
else{?>
<table border="1">
<tr>
<th>nom</th>
<th>adresse</th>
<th>téléphone</th>
</tr>
<?php
while($data = mysql_fetch_assoc($result))
{
?>
<tr>
<td><?php display($data['nom_vendeur']); ?></td>
<td><?php display($data['adresse_vendeur']); ?></td>
<td><?php display($data['telephone']); ?></td>
</tr>
<?php
}}
 
}
?>
</table>
 
</body>
</html>
baouk2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2010, 00h31   #5
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Ta concatenation est mal faite :
Code :
$sql = "SELECT * FROM `vendeur` WHERE nom_vendeur = '$vendeur' LIMIT 0 , 30";
ou
Code :
$sql = "SELECT * FROM `vendeur` WHERE nom_vendeur = '" . $vendeur ."' LIMIT 0 , 30";
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2010, 00h12   #6
Candidat au titre de Membre du Club
 
Inscription : janvier 2009
Messages : 77
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 77
Points : 14
Points : 14
Merci encore, et voila que j essaie d avancer peu à peu...

mntnt pour supprimer un vendeur de la table aprés recherche j'ai établi les deux fichiers qui ont l air de marcher (aucune erreur est retournée), cependant quand je verifie ma table (ici vendeur), ya pas suppression de l enregistrement

voila le fichier delete.php
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
<head>
<title>Messages de Yogui (source : MySQL)</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
</head>
 
<body>
 
<form name="nouveau" method="get" action="delete.php">
            Entrez le nom du vendeur :      <input type="text" name="vendeur"/>
            <input type="submit" name="valider" value="OK"/>
        </form>
<?php
include("fonctions.php");
?>
 
 <?php       if (isset ($_GET['valider'])){
            //On récupère les valeurs entrées par l'utilisateur :
 
            $vendeur=$_GET['vendeur'];
            connectventes();
 
$sql = "SELECT * FROM `vendeur` WHERE nom_vendeur = '" . $vendeur ."' LIMIT 0 , 30";
 
 
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
 
?>
<?php 
if(!$result){
    echo('tapez un nom valide s.v.p!');
}
 
else{?>
 
<form action="supprimer.php" method="post">
<?php
$Nombre_case_a_cocher = 0;
while($data = mysql_fetch_assoc($result))
{ 
 
    $id = $data['id_vendeur'];
    $nom = $data['nom_vendeur']; 
$adresse = $data['adresse_vendeur']; 
$telephone = $data['telephone'];
 
	$Nombre_case_a_cocher++;
}
?>
<table border="1" align="center">
<tr>
<td></td>
<td>identifiant</td>
<td>nom</td>
<td>adresse</td>
<td>téléphone</td>
</tr>
<tr>
<td><input type="checkbox" name="supprimer[]" value=
<?php echo $id ; ?>></td>
<td><?php echo $id;?></td>
<td><?php echo $nom ; ?></td>
<td><?php echo $adresse ; ?></td>
<td><?php echo $telephone ; ?></td>
<td><input type="submit" value="Supprimer" name="supprimer"></td>
</tr>
</table>
</form>
 
<?php
}}
 
 
?>

et le fichier contenu supprimer.php
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
36
37
38
39
40
 
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 <script language="JavaScript" type="text/JavaScript"> 
          function Affichage(i)
      {
         //AFFICHAGE DU MESSAGE AVEC PASSAGE DU NOMBRE D ENREGISTREMENTS SUPPRIMES
         alert('Total de la suppression dans la Base de donnees : ' + i);
		//REDIRECTION VERS LA PAGE PRINCIPALE
		  document.location = "delete.php";
      }
</script>
</head>
 
<body>
<?
/* Evite le message de variables non initialisée */
error_reporting(E_ALL ^ E_NOTICE);
 
include('fonctions.php');
 
if(isset($_POST['supprimer'])) { 
 
for ($i=0, $j=count($_POST['supprimer']); $i<$j; $i++)
{
 
 $mysql_resultat = mysql_query("DELETE FROM `vendeur` where `vendeur`.`id_vendeur` = '".$_POST['supprimer'][$i]."'  LIMIT 1 ;") 
 or die("Erreur de connexion"); 
 
} 
 
}
?>
<script>
/*APPEL FONCTOIN JAVASCRIPT QUI AFFICHE LE NOMBRE DE TUPLE EFFACES ET REDIRIGE*/
Affichage('<?php echo $i; ?>');</script>
</body>
</html>
baouk2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2010, 00h24   #7
Candidat au titre de Membre du Club
 
Inscription : janvier 2009
Messages : 77
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 77
Points : 14
Points : 14
je viens de trouver la solution, il m a suffit d imbriquer la requete de suppression dans le bloc de
Code :
1
2
 
<input type="submit" value="supprimer">
et ainsi j'ai ecrit le code sous la forme

Code :
1
2
3
4
5
 
<input type="submit" value=<?php  
$mysql_resultat = mysql_query("DELETE FROM `vendeur` where `vendeur`.`id_vendeur` = '".$id."'  LIMIT 1 ;") 
 or die("Erreur de connexion"); 
?>"Supprimer" name="supprimer">
baouk2000 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 +1. Il est actuellement 13h13.


 
 
 
 
Partenaires

Hébergement Web