IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[Debutant] Script ne fonctionnant pas, aucune erreure visible


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut Fixed
    Fixed

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    Bonjour

    $_POST['categorie1'] n'existe pas : dans ton formulaire tu as commencer à 2 (j'ignore si c'est normal)

    conseil : fais une boucle, car écrire 10 fois la même chose c'est pas très utile

    EDIT: je viens de voir categorie1 mea-culpa

  3. #3
    Invité
    Invité(e)
    Par défaut
    Rebonjour,
    Je rajouterai (pour ID1, car les autres, c'est la même chose) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $reqlouer1="INSERT INTO louer (numadh, numloc, datelocation) VALUES ($numero, $ID1, '$DatRet1'])";
    $requpdtlocation1="UPDATE locations SET qte_disp = qte_disp - 1 WHERE numlocation='$ID1';";
    que je remplacerai par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $reqlouer1="INSERT INTO louer (numadh, numloc, datelocation) VALUES ($numero, $ID1, '$DatRet1'))";
    $requpdtlocation1="UPDATE locations SET ? WHERE numlocation=$ID1";
    Le "qte_disp = qte_disp - 1", je ne vois pas comment il pourrait fonctionner. Parce que je ne vois aucune variable.

    PS : En gras, ce qui me chagrine.

    Edit : Et tu aurais pu mettre :
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    isset($_SESSION['NumAdhSession'])
    Une erreur là aussi : Tu as mal écrit le $_POST.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    Citation Envoyé par Adenora Voir le message
    Rebonjour,
    Je rajouterai (pour ID1, car les autres, c'est la même chose) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $reqlouer1="INSERT INTO louer (numadh, numloc, datelocation) VALUES ($numero, $ID1, '$DatRet1'])";
    $requpdtlocation1="UPDATE locations SET qte_disp = qte_disp - 1 WHERE numlocation='$ID1';";
    que je remplacerai par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $reqlouer1="INSERT INTO louer (numadh, numloc, datelocation) VALUES ($numero, $ID1, '$DatRet1'))";
    $requpdtlocation1="UPDATE locations SET ? WHERE numlocation=$ID1";
    Le "qte_disp = qte_disp - 1", je ne vois pas comment il pourrait fonctionner. Parce que je ne vois aucune variable.

    PS : En gras, ce qui me chagrine.

    .
    PAs besoin de variable ici, tu dis je veux que tel colonne soit décrémenté, c'est tout
    Citation Envoyé par Adenora Voir le message
    Une erreur là aussi : Tu as mal écrit le $_POST.
    Bien vu, d'ailleurs c'est valable pour tout les autres (il n'y a que les $_POST['categorieX' qui sont bien écris

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut
    Fixed

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut
    Fixed

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    C'est pas très compliqué

    La partie formulaire deviens :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <p>Vous pouvez emprunter jusqu a 10 objets (dont un maximum de 2 DVD et 3 CD), veuillez indiquer les objets que vous souhaitez reserver (Remplissez tous les champs):</p>
    <form method="POST" action="reserver.php" />
    <table border="2">
    <tr>
    	<td><b>Emprunt n</b></td>
    	<td><b>Categorie</b></td>
    	<td><b>ID</b></td>
    	<td><b>Date de retour prevue (aaaa/mm/jj)</b></td>
    </tr>
    <?php 
    for($nbCategorie = 1; $nbCategorie<=10; $nbCategorie++) 
    {
    ?>
    	<tr>
    		<td><?php echo $nbCategorie; ?></td>
    		<td> <select name="categorie<?php echo $nbCategorie; ?>"> <option></option> <option>Livre</option> <option>CD</option> <option>DVD</option> </select></td>
    		<td><input name="ID<?php echo $nbCategorie; ?>" type="text"/></td>
    		<td><input name="date_retour<?php echo $nbCategorie; ?>" type="text"/></td>
    	</tr>
    <?php
    }
    ?>
    </table>
     
    <input type="submit" value="Valider" />

    Et la partie de récupération des infos :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    // Si les variables existent, alors on execute les instructions
     for($nbCategorie = 1; $nbCategorie<=10; $nbCategorie++) 
    {
    	if (isset($_POST['ID'.$nbCategorie])  &&  isset($_POST['date_retour'.$nbCategorie]) &&  isset($_SESSION['NumAdhSession']))  
    	{
    	//Definition des variables
    	$categorie=$_POST['categorie'.$nbCategorie];		$ID=$_POST['ID'.$nbCategorie];		$DatRet=$_POST['date_retour'$nbCategorie]; 
    	// Definition des requetes
    	$reqlouer1="INSERT INTO louer (numadh, numloc, datelocation) VALUES ($numero, $ID, '$DatRet'])";
    	$requpdtlocation1="UPDATE locations SET qte_disp = qte_disp - 1 WHERE numlocation='$ID';";
    	//Execution des requetes
    	mysql_query($reqlouer1) or die("erreur".mysql_error());
    	mysql_query($requpdtlocation1) or die("erreur".mysql_error());
    	//Confirmation
    	echo "Votre reservation numero". $nbCategorie . " a bien ete enregistree";
    	}
    }
    Dans ces 2 codes, l'idée est la même : on fais une boucle qui va se répéter 10 fois, et au lieu d'afficher par exemple id1, id2 ... id10 ; tu remplace par id puis le compteur de boucle qui va aller de 1 à 10

    PS: apparemment tu n'utilise jamais le $_POST['categorieX'] ...
    PS2: tu devrais utiliser th plutôt que td pour les titre de tes tableaux

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut
    Fixed

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    Cela n'a peut être rien à voir mais je ne vois pas ou est défini $numero ?

    Sinon essaie une concaténation comme ça :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $reqlouer1="INSERT INTO louer (numadh, numloc, datelocation) VALUES (".$numero.",".$ID.", '".$DatRet."')";

    J'ai jamais confiance dans les variables évaluée ou non donc je préfère perso

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut
    Les deux requetes fonctionnent mais j'ai cette erreur. (Dailleur je me suis rendu compte aussi que j'ai ete stupide a avoir mis la date en clee primaire, vive les exemples de court a la gomme).
    Je vais essaye avec les guillemets, mais c'est bizarre qu'il indique ' ") ' car les seuls endroits ou j'ai ces caracteres colles c'est ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Connexion au serveur
    	$db=mysql_connect("localhost","root","") or die("erreur de connexion".mysql_error());
     
    // Ouverture de la base donnee
    	mysql_select_db("mediathequegsi",$db) or die("erreur de connexion à la base de donnee");
    Et l'erreur qui serait retranscrite ne serait pas "erreur".mysql_error().

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut
    Ok, ca passe, merci.
    Maintenant j'ai cette erreur :
    Cannot add or update a child row: a foreign key constraint fails (`mediathequegsi`.`louer`, CONSTRAINT `louer_ibfk_2` FOREIGN KEY (`numloc`) REFERENCES `locations` (`numlocation`))
    Je vais voir ce qui ene va pas.

    EDIT : Sous Easy il faut bien lier les relations a partir de la clee etrangere non?
    Car quand je faisais l'inverse j'avais des problemes ensuite pour entrer mes enregistrements.

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    Peux tu indiquer quel est la structure de la table location ainsi que celle à laquelle est elle est liée ? (que je puisse tester également)
    PS : je n'ai pas compris ta question

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut
    louer (datelocation, numadh, numloc) --> que je vais modifier a cause de doublons
    Primary : datelocation, numadh, numloc
    Foreign : numadh @ adherent.numadherent
    numloc @ locations. numlocation

    locations (numlocation, nommateriel, auteur, editeur, numcategorie, qte_disp)
    Primary : numlocation
    Foreign : numcategorie @ categories. numcat

    categories ( numcat, nomcat)
    Primary : numcat

    adherent (numadherent, nomadherent, prenomadherent, datenaiss, rue, cp, ville, nteladherent, nportadherent, mail, motdepasse)
    Primary : numadherent


    Voila ma DB complete, et je voulais savoir si je dois faire les relations a partir de la table mere ou fille en faite.
    Merci.

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    T'aurai pas la version sql ? au pire tu peux faire un export et me donner uniquement les create si les données sont pas "publiable"

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut
    h**p://fixed.bug

    Desole pour les * c'est pour eviter d'etre dans les moteurs de recherche.

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut
    Fixed

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/08/2014, 08h14
  2. Script ne fonctionne pas
    Par Sylv@in dans le forum VBA Outlook
    Réponses: 5
    Dernier message: 28/01/2008, 08h24
  3. [debutant]c++ code fonctionne pas sous win 2000 sp 4!
    Par ChristopheOce dans le forum Débuter
    Réponses: 5
    Dernier message: 25/10/2007, 14h35
  4. Partie d'un script ne fonctionne pas en cgi
    Par shgamer dans le forum Web
    Réponses: 1
    Dernier message: 08/02/2006, 01h34
  5. Script ne fonctionne pas sous IE
    Par Stessy dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 29/09/2005, 13h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo