Récupération viariables PHP Formulaire

sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   -  
sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à toutes et à tous !

Bon, je vous explique rapidement mon problème.
J'ai une application a réaliser pour une entreprise, et je dois la faire en PHP sur le localhost. Il s'agit d'une application pour gérer le stock de l'entreprise. J'ai donc fait une première page constituée d'un formulaire pour renseigner le maximum de renseignements concernant le composant à enregistrer. Je vous donne le code :

<div class="frame">
<table border="0">
<form name='Composant' method=POST enctype='multipart/form-data' action='enrcomp.php'>
<tr><td>Type de composant :</td></tr>
<td><select name='type'>
<option value='0'># Informatique</option>
<option value='1'>Matériel</option>
<option value='2'>Logiciel</option>
<option value='3'>Fourniture</option>
<option value='4'>Divers</option>
<option value='5'># Radio</option>
<option value='6'>Micro</option>
<option value='7'>Accessoire</option>
<option value='8'>Divers</option>
<option value='9'># Autre</option></select></td>
<tr><td><br>Nom complet :</td></tr>
<td><input type='text' name='nom'></td>
<tr><td><br>Description</td></tr>
<tr><td><textarea rows=1 cols=30 name='description'></textarea></td></tr>
<tr><td><br>Date d'achat (format JJ/MM/AAAA)</td></tr>
<td><input type='text' size='10' name='date_achat'> Ex : 06/04/1987</td>
<tr><td><br>Quantité</td></tr>
<td><input type='text' size='3' value='0' name='qu'></td>
<tr><td><br>Joindre une fiche technique :</tr>
<td><input type='file' name=fichier></td>
<tr><td><br><input type='submit' value='Envoyer' name='Envoyer'></td></tr>
</form>
</table>
</div>


Ensuite, j'ai créé la page d'enregistrement des renseignements du composant dans la base SQL

<?php
session_start();
$type=$_POST['type'];
$nom=$_POST['nom'];
$description=$_POST['description'];
$date_achat=$_POST['date_achat'];
$qu=$_POST['qu'];
$fichier=$_FILES['fichier']['tmp_name'];
if(is_uploaded_file ($fichier)) {
$nomf=$_FILES['fichier']['name'];
$destination = "upload/".$nomf;
move_uploaded_file($fichier,$nomf);
}
else {
$nomf='<b><u>Aucun fichier</u></b>';
}
$requete="insert into gestion(nom,catégorie,description,date_achat,quantite,fichier) values ('".$nom."','".$type."','".$description."','".$date_achat."','".$qu."','".$fichier."');";
$resultat=$requete;
include('inc/header.php');
if ($resultat) {
echo ("<div class='frame'><p><center><h2>Enregistrement effectué</h2></center></p><p>Le composant déclaré a bien été enregistré dans la base de donnée. Vous pouvez le consulter dans la rubrique <a href='listcomp.php'><u>Composants enregistrés</u></a></p><p><center><a href='saisiecomp.php'>Enregistrer un autre composant</a></center></p></div>");
}
else {
echo ("<div class='frame'><p><center><h2>Un problème est survenu !</h2></center></p><p>Un problème est survenu lors de la transmission du composant. Veuillez contacter votre administrateur réseau.</p><p><center><a href='saisiecomp.php'>Recommencer</a></center></p></div>");
}
include('inc/footer.php');
?>


Et c'est la que je suis bloqué. Comme vous vous en doutez, je souhaiterais créer la page qui me manque, a savoir "listcomp.php" qui me permettra de consulter les données qui auront été préalablement saisis.

Pouvez vous me dire si mon code est correcte, et comment je dois procéder pour la création de la nouvelle page ?

J'ai déja un petit début pour la nouvelle page :

<?php
session_start();
include("inc/header.php");
?>
<div class="frame">
<?php
$requete="select nom,catégorie,description,date_achat,quantite,fichier from composant;";
$resultat=$requete;
?>
<table border=1><tr><td>Type</td><td>Nom</td><td>Description</td><td>Date d'achat</td><td>Quantité</td><td>Fiche jointe</td><td>Editer</td></tr>
<?php
echo("<tr><td>".$type."</td><td>".$nom."</td><td>".$description."</td><td>".$date_achat."</td><td><center>".$qu."</center></td><td>".$fichier."</td><td><a href='modifier.php'>Modifier</a></td></tr>");
echo("</table>");
include("inc/footer.php");
?>


Mais quand j'exécute la page, il me marque variable inconnues... Comment les récupérer de la page précédente ?
--

Administrateur réseaux sous Windows Server 2003 et 2008 Bêta et sous Linux Debian
Configuration: Windows XP
Firefox 2.0.0.10

7 réponses

  1. Dj Nam Messages postés 339 Statut Membre 41
     
    Bonjour,

    Pour lister les données il te faut en premier lieu te connecter à ta base de données... je penses que tu sais faire
    ensuite voici la requète :
    <?php
    $req = "SELECT * FROM gestion ORDER BY nom";
    $result = $mysql_query($req);
    echo "<table border=1><tr><td>Type</td><td>Nom</td><td>Descripti on</td><td>Date d'achat</td><td>Quantité</td><td>Fiche jointe</td><td>Editer</td></tr>";
    while ($info = mysql_fetch_array($result)) {
    echo "<tr><td>".$info['type']."</td><td>".$info['nom']."</td>
    <td>".$info['description']."</td>
    <td>".$info['date_achat']."</td>
    <td><center>".$qu."</center></td>
    <td>".$info['fichier']."</td>
    <td><a href='modifier.php'>Modifier</a></td></tr>";
    }
    echo "</table>"; 
    ?>


    voila qui devrait t'aider
    0
  2. sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   287
     
    Merci !!!

    Arggg Problème :

    En fait, je n'ai aps encore accès a la base de données, je l'ai crée avec pgadmin III mais le service n'est pas activé. Le problème c'est que quand je demande a ce qu'il se connecte, il ne reconnais pas les variables pg_connect etc.

    Il m'affiche cette erreur avec ton code :

    Notice: Undefined variable: mysql_query

    Je crois qu'il faut modifier certaines règles dans les configs, non ?
    0
  3. Mr Pif-Paf
     
    Le problème c'est que tes requetes sql ne sont executées à aucun moment. Tes lignes " $resultat=$requete; " ne font que définir une variable resultat identique à la variable requete

    $sql="insert into machin where truc";//definition de la requete
    mysql_query($sql) or die('Erreur SQL : '.mysql_error()); //execution de la requete
    print('Message de confirmation');
    
    


    Et pour intérroger la base :
    $sql="select * from matable where machin"; //definition de la requete
    $requete=mysql_query($sql) or die('Erreur SQL : '.mysql_error()); //execution de la requete
    while($row=mysql_fetch_assoc($req); //on crée une boucle pour récupérer les entrées
    {
    //on affiche les résultats
    print('ton bout de code html');
    print($row['type']);
    //ou on peut simplifier en faisant au préalable un extract($row); puis, il suffira de faire un print($type);
    }
    


    A adapter à ta page. Et pense, bien sur à préciser les infos de connexion à ta base de données avant de lancer les requetes.
    0
  4. Mr Pif-Paf
     
    si mysql_query() n'est pas reconnu c'est tout simplement que mysql n'est pas installé. Quant à PG admin, je le connais pas désolé
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   287
     
    lol ok, mysql est installé puisqu'il est géré par easyphp 1.8. Mais moi je ne connais pas ce logiciel la, et je ne sais pas ou rajouter ma base dans mysql
    0
  7. Mr Pif-Paf
     
    je te conseill de créer un fichier config.php ou tu entres ceci :

    $serveur ="nomdetonserveur";
    $login="tonlogin phpmyadmin";
    $pass="ton mot de passe";
    $base="tabase";
    $sqlconnect = mysql_connect($serveur,$login,$pass) or die ('Erreur : la base de données n'a pas été trouvée);
    mysql_select_db($base,$sqlconnect);
    


    il te suffira de l'appeler par un simple include('config.php'); avant de lancer tes requetes

    Et pour ton vilan "Notice: Undefined variable: mysql_query ", as-tu vérifié que la variable contenue dans mysql_query est bien la même que celle que tu as défini plus haut ?
    0
  8. sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   287
     
    Normalement oui.

    Bon, je vais voir ce que ca donne, tu aura une réponse de ma part d'ici demain. ++
    0