[PHP-PROB]Verification d'existence

Discussion dans 'Web, design' créé par Volcans, 8 Juillet 2004.

Statut de la discussion:
Fermée.
  1. Offline
    Volcans Elite
    le titre à l'air bizare mais c'est surement assez simple.

    je suis entrain de faire un piti script en php pour lister ses cartes.
    Et je veux que lorsque j'ajoute une carte qui est déjà presente dans la table, il fasse l'update de la variable 'number' qui représente le nombre de cartes.

    Fichier :
    -formulaire.htm
    -addacrd.php

    liens :
    http://maximax.phpnet.org/liste/formulaire.htm

    voilà le code de la page php :
    Code:
    <?php
    include ('connectinfo.php');
    $db = mysql_connect($server,$login,$password); 
    mysql_select_db($database,$db); 
     
    $litou = "SELECT * FROM magic_liste where nomfra='$nomfr'";
    $litou = mysql_num_rows('$litou');
    if($litou) // si $litou retourne 0 -> else
    {
    $newnbr = '$number + $nombre';
    $req = "UPDATE magic_liste SET number='$newnbr' WHERE nomfra='$nomfr'";
    $res = mysql_query($req) or die ("bug");
    }
    else
    {
    
    $req = "INSERT INTO magic_liste (id,nomfra,noman,rare,edit,status,number,color,brillante) Values('','$nomfr','$nomvo','$rarete','$edition','$etat','$nombre','$couleur','$foil')";
    $res = mysql_query($req) or die ("bug");
    }
    
    mysql_close(); 
    ?>
    Volcans, 8 Juillet 2004
    #1
  2. Offline
    Styleman Touriste
    Tu a une erreur quelque part?
    C'est quoi la question du thread en fait lol?
    Parce que la je ne serais pas voir, mais vu comme ça, je pense ke c'est bon...
    Styleman, 8 Juillet 2004
    #2
  3. Offline
    Volcans Elite
    bah enfete
    kan je send mon formulaire, y passe une éternité à loader la page addcard.php
    et donc je pense qu'il doit y avoir une erreur :s

    la kestion de thread ( c vré ke c pas noter :p ) :
    si kelkun saurai maider :D
    Volcans, 9 Juillet 2004
    #3
  4. Offline
    xXFMCXx ex membre
    Où sont définis $number et $nombre ?
    Si on ne suit que le code que tu as montré, cette ligne ne donnera pas grand chose : $newnbr = '$number + $nombre';
    xXFMCXx, 9 Juillet 2004
    #4
  5. Offline
    Volcans Elite
    J'ai régler une grosse partie des problèmes , souvent des ptite conneries :s

    Par contre
    kan il fait l'update

    la valeur de $newnbr ( number + nombre )
    *1 - $nombre est définie par la valeur du champ dans le formulaire. $number est defini par la valeur dans le champs de la table.

    il modifie le champ number de la table et devient ' + 3'
    3 est le chiffre que j'ai entré ds mon formulaire.

    Je me demande si enfete le problème n'est pas que le champ number dans la table est de type varchar et que pour faire l'addition il faut qu'il soit d'un autre type ( vu que c'est des chiffres ). mais je ne sait pas quel type de champs il faut mettre :s

    EDIT: je vient dapprendre qu'il faut ke ca soit un champ INT, donc jve tester ça :p
    Volcans, 9 Juillet 2004
    #5
  6. Offline
    spirit ex membre

    euh, ouais, c clairement ca ton probleme :roll:

    varchar c'est pour une string de taille variable.
    pour les nombre, tu DOIS utiliser int,tinyint,mediumint (en fonction de la valeur max possible de ton entier, enfin question d'optimisation ;) sinon tu peux toujours mette INT.

    ah oui, quand tu insere des chaines, met toujours des addslashes($machaine).

    comme ca si tu as des apostrophe et co, ca rajoutera un \ devant et ta requete s'executera correctement.
    spirit, 9 Juillet 2004
    #6
  7. Offline
    Tigrou Touriste
    1. oui faire des additions avec des varchar c est chaud

    2. j ai une question qui peut paraitre bete mais si je comprends bien tu as une table qui est en fait la liste des cartes que tu possèdes. Ensuite tu ajoutes des cartes avec ton script, si jamais la carte que tu ajoutes est deja présente il incremente le chiffre correspondant aux nombres de cartes de ce type.

    En partant de ce postulat je ne vois pas trop l interet de faire un mysql_num_rows :?: Tu as une ligne de ta table qui correspond a la carte que tu possède deja. Tu ajoutes la meme carte -> il suffit d aller chercher cette ligne dans la table et d incrementer le nombre de cartes, non ?
    Tigrou, 9 Juillet 2004
    #7
  8. Offline
    Volcans Elite
    Et comment je fais pour l'affichage?
    dans mon while
    jafficherais les infos et le nom de la carte saffichera 4 ou 5 fois en fonction du nombre de fois que j'aurai ajouter les cartes par le formulaire et avec des quantités differente ?
    enfin je pense ( suis pas sur :p )

    Avec le num rows, il regarde combien de fois le nom de la carte est dans la table ( 0 ou 1 vu que toute les cartes sont ajouté par intermédiaire du script )
    et en fonction de ce qu'il retourne iil exécute le script UPDATE ou INSERT (if,else)

    ps: voilà le script car j'ai modifier un peu ;)

    Code:
    <?php
    include ('connectinfo.php');
     
    $queryy = "SELECT * FROM magic_liste where nomfra='$nomfr'";
    $litou = mysql_num_rows($queryy);
    echo "$litou";
    
    if($litou)
    {
    $db = mysql_connect($server,$login,$password); 
    mysql_select_db($database,$db); 
    
    $req2 = "SELECT id,nomfra,noman,rare,edit,status,number,color,brillante FROM magic_liste where nomfra='$nomfr' AND noman='$nomvo' AND rare='$rarete' AND edit='$edition' AND status='$etat' AND color='$couleur' AND brillante='$foil'";
    $res2 = mysql_query($req2) or die ("bug 2");
    $data = mysql_fetch_array($res2);
    
    $newnbr = $data['number'] + $nombre;
    
    $req = "UPDATE magic_liste SET number='$newnbr' WHERE nomfra='$nomfr'";
    $res = mysql_query($req) or die ("bug");
    
    }
    else
    {
    $db = mysql_connect($server,$login,$password); 
    mysql_select_db($database,$db); 
    $req3 = "INSERT INTO magic_liste (id,nomfra,noman,rare,edit,status,number,color,brillante) VALUES ('','$nomfr','$nomvo','$rarete','$edition','$etat','$nombre','$couleur','$foil')";
    $res3 = mysql_query($req3) or die ("bug 3");
    }
    
    
    ?>
    Volcans, 9 Juillet 2004
    #8
  9. Offline
    Volcans Elite
    Code:
    $litou = "SELECT * FROM magic_liste where nomfra='$nomfr'";
    $litou = mysql_num_rows($litou);
    
    kan jexecute ca il mecrit :

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/users/m/maximax/www/liste/addcard.php on line 14


    :s
    Volcans, 9 Juillet 2004
    #9
  10. Offline
    Styleman Touriste
    Cette erreur m'arrive souvent mais je ne me souviens jamais pourquoi lol, regarde si ta variable est bien définie, je pense que c'était ça, mais je ne me rappelle plus... :?
    Styleman, 9 Juillet 2004
    #10
Statut de la discussion:
Fermée.