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 :

Vérifier l'existance d'une donnée dans la base avant insertion [MySQL]


Sujet :

PHP & Base de données

  1. #21
    Him
    Him est déconnecté
    Membre éclairé Avatar de Him
    Profil pro
    Inscrit en
    Février 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 244
    Par défaut
    Salut

    Dans ce cas ci,
    non c'est juste une page de configuration.

    Je suis occupé à préparer une nouvelle version de site pour un ami ( www.liste-annuaires.com )

    Je lui ai mis une page d'insertion des liens via un manager, & pour chacuns de ces liens, il ya des "type" (ou catégorie quoi)

    ma page, est tout ce qu'il ya de plus simple, l'utilisateur (admin) rentre dessus, & trouve les différents "type" pour ajout/modification

    ma page

    Code : 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
    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
     
    <div id="contenu">
     
    	<div class="title">Ajout/modification de types d'annuaire</div><br />
     
    	<div class="texte_contenu">
     
    		<?php 
    			mysql_connect(********) or die(mysql_error());
    			mysql_select_db("annuaire") or die(mysql_error());
     
    	// Ajout du lien dans la base de donnée
     
    $result = mysql_db_query(annuaire, "SELECT genre FROM choix WHERE type = '" . $type . "'");
     
    if(mysql_num_rows($result) == 0)
    {
           //ajouter l'url
    		mysql_query("INSERT INTO choix VALUES('','" . $type . "')");
     
          echo 'Le type d\'annuaire <u><b>'.$type.'</b></u> a été ajouté aux critères de sélection de la liste';
    }
     
    else {
          echo 'Le type d\'annuaire <u><b>'.$type.'</b></u> est déja présent dans les critères de sélection de la liste';
     
    }
     
    		?>
     
    	<form action="edit-type.php" method="post" enctype="multipart/form-data">
    		<p>
     
    		<?php
     
    	$printvalues = mysql_query('SELECT * FROM choix ORDER BY id DESC');
    	while ($print = mysql_fetch_array($printvalues)) 
    	{
    		?>
     
     
    <input type="text" size="30" name="nom" value="<?php echo $print['genre']; ?>" />
     
    		<?php
    	}
    mysql_close();
    		?>
     
    		</p>
     
    			<input type="hidden" name="id" value="<?php echo $id; ?>" />
    			<input type="submit" value="poster" />
     
    	</form>
     
    	</div>
     
     
    </div>
    il n'ya donc ni POST ni GET.
    Je te remercie d'avance pour ton aide qui m'es précieuse à mon apprentissage de ce language si géant

    Citation Envoyé par Yogui
    Le mieux est que tu réfléchisses à ce que je t'ai proposé...
    S'il s'agit d'insérer un nouvel article suite à une action utilisateur, ce sera certainement au moyen d'un formulaire, ce qui a tendance à utiliser la méthode POST et donc ce que j'ai proposé ci-dessus. Tu te rends comptes le nombre de suppositions que je dois faire pour te répondre, puisque tu ne donnes pas toutes les infos ? Évidemment, il y a de grandes chances pour que l'une des suppositions soit fausse, ce qui rend inexact mon conseil.

    Il ne faut pas avaler tout cru ce que je te livre, il faut essayer de voir à quoi ça correspond.


    J'en suis conscient, mais le code de ma page n'en dit pas beaucoup plus non plus, vu que c'est une petite page externe

    Merci de ta patiente

  2. #22
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Tu n'as toujours pas dit la seule information qui importe : sous quelle condition la requête INSERT INTO doit-elle être effectuée ?

  3. #23
    Him
    Him est déconnecté
    Membre éclairé Avatar de Him
    Profil pro
    Inscrit en
    Février 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 244
    Par défaut
    ok, j'ai comrpis ce que tu veux dire


    & bien si la genre n'éxiste pas, alors il faut le creer,
    s'il éxiste on ne fait rien.

    Cordialement

  4. #24
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Ok, j'ai situé le problème. Tu as mis l'error_reporting à zéro (c'est mal), ce qui fait que tu ne sais pas que ton code est inexact.

    Pourquoi utilises-tu mysql_db_query() ? As-tu remarqué que le premier paramètre que tu lui donnes est une constante et que c'est probablement une erreur (manque du signe dollar) ? Pourquoi ne pas utiliser mysql_query() comme la requête suivante ?

  5. #25
    Him
    Him est déconnecté
    Membre éclairé Avatar de Him
    Profil pro
    Inscrit en
    Février 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 244
    Par défaut
    Parcequ'en scrutant sur google, c'est l'onformation que j'ai trouvée...

    J'ai donc changé ma ligne comme suit :

    $result = mysql_query("SELECT genre FROM choix WHERE type = '" . $type . "'");

    maintenant j'ai l'erreur suivante :

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/liste-annuaires/new/manage/edit-type.php on line 15
    Le type d'annuaire a été ajouté aux critères de sélection de la liste
    & quand je charge la page, j'ai toujours un ajout dans la base.
    merci de ton aide

  6. #26
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Mouais, je suis bonne pâte, j'ai compté les 15 lignes moi-même...
    Maintenant, utilise la méthode de tout le monde, à savoir mysql_query() or die(mysql_error()) ?

  7. #27
    Him
    Him est déconnecté
    Membre éclairé Avatar de Him
    Profil pro
    Inscrit en
    Février 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 244
    Par défaut
    Ok,
    avec le or die,
    j'ai pu identifier & solutionner le probleme.

    Cependant je me rend compte aussi que ce script n'est pas logique...

    Car quand j'ai tout les noms si je réenvoie les données bah fatalement elles existent déja...

    il faudrait que je mette une condition pour "update" mais :/

    En tout cas pour ceci ca fonctionne merci

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Vérifier l'existence d'une clef dans la base de registre
    Par CHARLI BONGO dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/05/2013, 17h49
  2. Vérifier l'existence d'une table dans une base de données
    Par mounim_taoufik dans le forum Administration
    Réponses: 8
    Dernier message: 02/03/2010, 16h24
  3. tester l'existance d'une donnée dans une BDD
    Par rpg59 dans le forum C++
    Réponses: 4
    Dernier message: 28/05/2008, 09h30
  4. Vérifier l'existence d'une valeur dans un ComboBox
    Par logiciel_const dans le forum Composants VCL
    Réponses: 6
    Dernier message: 08/03/2008, 09h07
  5. vérifier l'existance d'une table dans une base de donnée
    Par zidenne dans le forum Bases de données
    Réponses: 1
    Dernier message: 31/10/2005, 11h39

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