Aller au contenu

[PHP/MySQL] Projet d'école


Limp

Messages recommandés

Bonjour à tous!

Je vous explique, je suis actuellement en vacances. J'ai pour "devoir" de créer une petite application en PHP qui permet de saisir, supprimer dans une base de donnée.

J'ai donc décidé de créer un programme de gestion de cave à vin.

Très simpliste le but étant de montrer qu'on a fait quelque chose pendant les vacances...

J'ai fait l'affichage des vins, on peut ajouter dans la base. Mais je n'arrive pas à finaliser le code pour la suppression...

Premièrement, merci de ne pas me taper si c'est un peu le fouilli... J'apprend le php... je débute donc... Tout ce que je veux c'est apprendre :up:

<?
if ($_POST['boutonsup'] == "supprimer")
{
$db=mysql_connect("localhost","login",""mdp);
mysql_select_db('romandie-stuntcom2',$db);
$sql = 'SELECT * FROM `vino`';
$numvin = $_POST['variable_choisi'];
$requete = "DELETE FROM `vino` WHERE numero = $numvin";
$resultat = mysql_query($requete);
$sql_results = mysql_query($sql)
 or die("Une erreur s'est produite B12");
$vindata = mysql_fetch_array($sql_results);
}
?>
<form method="post" action="?supprimerbouteille">
        <table border=2>
        <tr><th align=middle>Sélectionner la bouteille a supprimer : </th></tr>
        <tr><td align=center><select name="variable_choisi">Choissiez votre option:
        <option selected value=""> ---------- Les vins----------
<?php
$optio=mysql_query($sql,$db);
while($row = mysql_fetch_row($optio)) {
        print "\t\t<option>".($row[0])."\n";
}

?>
        </select>
        </td></tr>
        <tr><td align=center><input name ="boutonsup" type="submit"
        value="supprimer"></td></tr>
        </table>
</form>
<?
While($data = mysql_fetch_assoc($sql_results))
{
?> 
<table border="0" align="center">
       <tr>
         <td>Numéro bouteille :</td>
         <td><? echo(html_entity_decode($data['numero'], ENT_QUOTES)); ?></td>
       </tr>
       <tr>
         <td>Nom :</td>
         <td><? echo(html_entity_decode($data['nom'], ENT_QUOTES)); ?></td>
       </tr>
       <tr>
         <td>Année :</td>
         <td><? echo(html_entity_decode($data['annee'], ENT_QUOTES)); ?></td>
       </tr>
       <tr>
         <td>Origine :</td>
         <td><? echo(html_entity_decode($data['pays'], ENT_QUOTES)); ?></td>
       </tr>
       <tr>
         <td>Catégorie :</td>
         <td><? echo(html_entity_decode($data['categorie'], ENT_QUOTES)); ?></td>
       </tr>
       <tr>
         <td>Nombre de bouteilles :</td>
         <td><? echo(html_entity_decode($data['nbbouteille'], ENT_QUOTES)); ?></td>
       </tr>
</table>
<?
}
mysql_close();
?>

Suite, à partir de lundi je travaille sur un vrai projet qui va durer 3 mois... On va tout faire, de la modélisation au codage. Je vais me servir de ce post pour vous expliquer l'avancement du projet et poser les questions lorsque sera arriver le temps de coder...

Voilà, désolé si c'était un peu long...

Lien vers le commentaire
Partager sur d’autres sites

Voilà ça commence à fonctionnner:

<?
$db=mysql_connect("localhost","***","****3");
mysql_select_db('romandie-stuntcom2',$db);
$sql = 'SELECT * FROM `vino`';
$sql_results = mysql_query($sql)
 or die("Une erreur s'est produite B12");
if ($_POST['boutonsup'] == "supprimer")
{
$numvin = $_POST['variable_choisi'];
$requete = "SELECT * FROM `vino` WHERE numero = $numvin";
$resultat = mysql_query($requete);
$nbbouteille = mysql_fetch_array($resultat);
$boutsup = $nbbouteille['nbbouteille']-=1;
$requete = "UPDATE FROM `vino` WHERE numero = $numvin SET nbbouteille=$boutsup";
$resultat = mysql_query($requete);
$vindata = mysql_fetch_array($sql_results);
}
?>
<form method="post" action="?supprimerbouteille">
        <table border=2>
        <tr><th align=middle>Sélectionner la bouteille a supprimer : </th></tr>
        <tr><td align=center><select name="variable_choisi">Choissiez votre option:
        <option selected value=""> ---------- Les vins----------
<?php
$optio=mysql_query($sql,$db);
while($row = mysql_fetch_row($optio)) {
        print "\t\t<option>".($row[0])."\n";
}
?>
</select>
</td></tr>
<tr><td align=center><input name ="boutonsup" type="submit"value="supprimer"></td></tr>
</table>
</form>
<?
While($data = mysql_fetch_assoc($sql_results))
{
if ($data['nbbouteille']==0){$requete = "DELETE FROM `vino` WHERE numero = $numvin";
$resultat = mysql_query($requete);}
else
{
?> 
<table border="0" align="center">
       <tr>
         <td>Numéro bouteille :</td>
         <td><? echo(html_entity_decode($data['numero'], ENT_QUOTES)); ?></td>
       </tr>
       <tr>
         <td>Nom :</td>
         <td><? echo(html_entity_decode($data['nom'], ENT_QUOTES)); ?></td>
       </tr>
       <tr>
         <td>Année :</td>
         <td><? echo(html_entity_decode($data['annee'], ENT_QUOTES)); ?></td>
       </tr>
       <tr>
         <td>Origine :</td>
         <td><? echo(html_entity_decode($data['pays'], ENT_QUOTES)); ?></td>
       </tr>
       <tr>
         <td>Catégorie :</td>
         <td><? echo(html_entity_decode($data['categorie'], ENT_QUOTES)); ?></td>
       </tr>
       <tr>
         <td>Nombre de bouteilles :</td>
         <td><? echo(html_entity_decode($data['nbbouteille'], ENT_QUOTES)); ?></td>
       </tr>
</table>
<?
}
}
mysql_close();

?>

Mon problème il ne fait pas moins 1 comme je lui dit à cette ligne:

$boutsup = $nbbouteille['nbbouteille']-=1;

Lien vers le commentaire
Partager sur d’autres sites

Voilà, enfin de l'avancement... J'ai trouvé mes erreurs, une de mes requête était en partie fausse...

Le echo m'a permis de voir que les valeurs étaient juste donc que c'était la requête le problème, merci à ceux qui m'ont donné cette idée pourtant si simple...

Je profite également de me mettre au CSS et de dire aurevoir au tableau.

<?
$db=mysql_connect("localhost","***","***");
mysql_select_db('romandie-s',$db);
if ($_POST['boutonsup'] == "supprimer")
{
$numvin = $_POST['variable_choisi'];
$requete = "SELECT * FROM `vino` WHERE numero = $numvin";
$resultat = mysql_query($requete);
$nbbouteille = mysql_fetch_array($resultat);
//echo($nbbouteille['nbbouteille']);
$boutsup= $nbbouteille['nbbouteille']-=1;
//echo($boutsup);
$requete = "UPDATE `vino` SET `nbbouteille` = '$boutsup' WHERE `numero` = $numvin LIMIT 1";
$resultat = mysql_query($requete);
//$vindata = mysql_fetch_array($sql_results);
}
?>
<form method="post" action="?supprimerbouteille">
        <table border=2>
        <tr><th align=middle>Sélectionner la bouteille a supprimer : </th></tr>
        <tr><td align=center><select name="variable_choisi">Choissiez votre option:
        <option selected value=""> ---------- Les vins----------
<?php
$sql = 'SELECT * FROM `vino`';
$sql_results = mysql_query($sql)
 or die("Une erreur s'est produite B12");
$optio=mysql_query($sql,$db);
while($row = mysql_fetch_row($optio)) {
        print "\t\t<option>".($row[0])."\n";
}
?>
</select>
</td></tr>
<tr><td align=center><input name ="boutonsup" type="submit"value="supprimer"></td></tr>
</table>
</form>
<?
While($data = mysql_fetch_assoc($sql_results))
{
if ($data['nbbouteille']==0){$requete = "DELETE FROM `vino` WHERE `numero` = $numvin LIMIT 1";
$resultat = mysql_query($requete) or die("caca");}
else
{
?>
<div class="tableau1">
Numéro bouteille : <? echo(html_entity_decode($data['numero'], ENT_QUOTES)); ?><br />
Nom : <? echo(html_entity_decode($data['nom'], ENT_QUOTES)); ?><br />
Année :<? echo(html_entity_decode($data['annee'], ENT_QUOTES)); ?><br />
Origine :<? echo(html_entity_decode($data['pays'], ENT_QUOTES)); ?><br />
Catégorie :<? echo(html_entity_decode($data['categorie'], ENT_QUOTES)); ?><br />
Nombre de bouteilles :<? echo(html_entity_decode($data['nbbouteille'], ENT_QUOTES)); ?><br />
</div> 
<?
}
}
mysql_close();
?>

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir, je suis passé au code pour modifier une entrée dans ma cave. Je me suis basé sur du code que j'ai trouvé avec google, en revanche j'ai une erreur:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/75402d78414e492f79cc4f10f57cc328/web/vin/include/modifierbouteille.php on line 13

Voici le code:

<?
$db=mysql_connect("localhost","%ç*"","****") or die ("Impossible de se connecter à MySQL");
mysql_select_db('romandie-s',$db)or die("Impossible de sélectionner la base de données");

if (!isset($submited)) {
   
   /*
   On va chercher les infos pour l'identifiant unique qui a été envoyés.
   */
   $query_string = "SELECT nom, annee, pays, categorie, nbbouteille FROM `vino` WHERE numero=$id";
   $query = mysql_query($query_string);

   if (mysql_num_rows($query) >= 1) {
?>
   <h1>Modifier un lien commenté</h1>
   
   <p>
     Veuillez modifier les informations ci-dessous
   </p>
   
   <form METHOD="POST" ACTION="<? $PHP_SELF ?>">
     <p>Numéro de bouteille <? echo $id ?> </p>
     <input TYPE="hidden" name="id" value="<? echo $id ?>">
     <p class="inputTitle">Nom:</p>
     <input TYPE="text" name="nom" value="<? echo mysql_result($query,0,"nom") ?>" SIZE="30">
     <p class="inputTitle">L'année:</p>
     <input TYPE="text" name="annee" value="<? echo mysql_result($query,0,"annee") ?>" SIZE="4">
     <p class="inputTitle">Pays:</p>
  <input TYPE="text" name="pays" value="<? echo mysql_result($query,0,"pays") ?>" SIZE="30">
        <p class="inputTitle">Catégorie:</p>
  <input TYPE="text" name="categorie" value="<? echo mysql_result($query,0,"categorie") ?>" SIZE="30">
        <p class="inputTitle">Nb bouteille:</p>
  <input TYPE="text" name="nbbouteille" value="<? echo mysql_result($query,0,"nbbouteille") ?>" SIZE="11">
     <p>
   <input TYPE="submit" VALUE="mettre à jour">
     </p>
   </form>

<?
   } else {
     echo "<h1>Aucun enregistrement ne correspond à votre demande</h1>";
   }
} else {
 echo  "<h1>Mise à jour d'un lien commenté</h1>";
   $query_string = "UPDATE `vino` SET nom='$nom', annee='$annee', pays='$pays', categorie='$categorie', nbbouteille='$nbbouteille' WHERE numero=$id";
   $query=mysql_query($query_string);
   if ($query) {
     echo "<p class=\"resultok\">Mise à jour effectuée</p>";
   } else {
     echo "<p class=\"resultbad\">Problème lors de la mise à jour</p>";
     echo "<p class=\"resultbad\">" . mysql_error() . "</p>";
   }
}
?>

J'arrive pas à trouver une réponse avec google...

Merci :francais:

Lien vers le commentaire
Partager sur d’autres sites

Grand pas en avant!

<?
if ($_POST['boutonmod'] == "modifier") 
{
$id = htmlspecialchars(htmlentities($_POST['id'], ENT_QUOTES));
$db=mysql_connect("localhost","***r","*****") or die ("Impossible de se connecter à MySQL");
mysql_select_db('romandie-',$db)or die("Impossible de sélectionner la base de données");
$query_string = "SELECT * FROM `vino` WHERE `numero`='$id'";
$variablesql = mysql_query($query_string);
$winedata1 =  mysql_fetch_assoc($variablesql);
$nom = htmlspecialchars(htmlentities($_POST['nom'], ENT_QUOTES));
$annee = htmlspecialchars(htmlentities($_POST['annee'], ENT_QUOTES));
$pays = htmlspecialchars(htmlentities($_POST['pays'], ENT_QUOTES));
$categorie = htmlspecialchars(htmlentities($_POST['categorie'], ENT_QUOTES));
$nbbouteille = htmlspecialchars(htmlentities($_POST['nbbouteille'], ENT_QUOTES));
if($nom != $winedata1['nom'])
{
$sql = "UPDATE `vino` SET `nom` = '$nom' WHERE  `numero`='$id' LIMIT 1";
$sql_results = mysql_query($sql)
   or die("Une erreur s'est produiteB1_ER"); 
}
if($nom != $winedata1['nom'])
{
$sql = "UPDATE `vino` SET `annee` = '$annee' WHERE  `numero`='$id' LIMIT 1";
$sql_results = mysql_query($sql)
   or die("Une erreur s'est produiteB1_ER"); 
}
if($nom != $winedata1['nom'])
{
$sql = "UPDATE `vino` SET `pays` = '$pays' WHERE  `numero`='$id' LIMIT 1";
$sql_results = mysql_query($sql)
   or die("Une erreur s'est produiteB1_ER"); 
}
if($categorie != $winedata1['categorie'])
{
$sql = "UPDATE `vino` SET `categorie` = '$categorie' WHERE  `numero`='$id' LIMIT 1";
$sql_results = mysql_query($sql)
   or die("Une erreur s'est produiteB1_ER"); 
}
if($nbbouteille != $winedata1['nbbouteille'])
{
$sql = "UPDATE `vino` SET `nbbouteille` = '$nbbouteille' WHERE  `numero`='$id' LIMIT 1";
$sql_results = mysql_query($sql)
   or die("Une erreur s'est produiteB1_ER"); 
}
}
else
{
if(isset($_POST['variable_choisi']))
{
$theid = htmlspecialchars(htmlentities($_POST['variable_choisi'], ENT_QUOTES));
$db=mysql_connect("localhost","****r","****") or die ("Impossible de se connecter à MySQL");
mysql_select_db('romandie',$db)or die("Impossible de sélectionner la base de données");
$query_string = "SELECT * FROM `vino` WHERE `numero`='$theid'";
$variablesql = mysql_query($query_string);
$winedata1 =  mysql_fetch_assoc($variablesql);
?>
<form METHOD="POST" ACTION="?modifierbouteille">
     <p>Numéro de bouteille: <? echo $theid ?> </p>
     <input TYPE="hidden" name="id" value="<? echo $theid ?>">
     <p class="inputTitle">Nom:</p>
     <input TYPE="text" name="nom" value="<? echo(html_entity_decode($winedata1['nom'], ENT_QUOTES)); ?>" SIZE="30">
     
 <p class="inputTitle">L'année:</p>
     <input TYPE="text" name="annee" value="<? echo(html_entity_decode($winedata1['annee'], ENT_QUOTES)); ?>" SIZE="4">
     <p class="inputTitle">Pays:</p>
  <input TYPE="text" name="pays" value="<? echo(html_entity_decode($winedata1['pays'], ENT_QUOTES)); ?>" SIZE="30">
        
 <p class="inputTitle">Catégorie:</p>
  <input TYPE="text" name="categorie" value="<? echo(html_entity_decode($winedata1['categorie'], ENT_QUOTES)); ?>" SIZE="30">
        
 <p class="inputTitle">Nombre de bouteilles: </p>
  <input TYPE="text" name="nbbouteille" value="<? echo(html_entity_decode($winedata1['nbbouteille'], ENT_QUOTES)); ?>" SIZE="11">
     <p>
   <input name ="boutonmod" type="submit" value="modifier">
     </p>
</form>
<?
}
}
mysql_close();
?>

En revanche les champs pays et année ne veulent pas se mettre à jour, j'ai vérifier les noms et tout concorde!

J'y perds mon latin!

Lien vers le commentaire
Partager sur d’autres sites

Lorsque tu teste ton application PHP est-ce sur un serveur Linux Apache/PHP/MySQL que tu as à la maison... ou encore EasyPHP sur un Windows ?

Il m'a déjà arrivé quelques fois que j'avais des problèmes de mises à jour de données dans ma BD MySQL depuis une requête PHP et il a fallu redémarrer le serveur, ça rrive plus souvent après avoir essayé des requêtes invalides justement... ce qui cause un maivais fonctionnement par la suite !

Mais pour avoir de bons exemples pour modifier et supprimer, va voir le site http://www.phpdebutant.org et à droite tu as toutes les étapes de A - Z pour faire d'un débutant un moyen-expert en environ 75 pages !!!

Lien vers le commentaire
Partager sur d’autres sites

Je viens de rajouter un truc tout con sur la page d'affichage des vins.

$sql = "SELECT * FROM `vino`";
$sql_results = mysql_query($sql)
 or die("Une erreur s'est produite B12");
$res = mysql_num_rows($sql);
if ('$res'==0)
{
echo 'La cave est vide!';
}
else
{
echo 'Il y a '.$res.' enregistrement(s) dans la table vin.';
}

Avec bien sûre le mysql_connect avant etc...

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/75402d78414e492f79cc4f10f57cc328/web/vin/include/afficherliste.php on line 7

J'ai pris presque tel quel sur phpdebutant un de leurs exemples...

C'est louche :chinois:

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...