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 :

Portion de code non lu [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti Avatar de Saintux
    Homme Profil pro
    Chercheur ( de travail )
    Inscrit en
    Janvier 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur ( de travail )
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 39
    Par défaut Portion de code non lu
    bonjours,

    voilà ma portion de code :

    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
     
    $sql4=mysql_query("SELECT X,Y FROM map WHERE X=$X AND Y=$Y") or die();
    $req4=mysql_fetch_assoc($sql4);
    if($req4 === TRUE) {
    $sql5=mysql_query("SELECT X,Y FROM map WHERE X=$X1 AND Y=$Y") or die();
    $req5=mysql_fetch_assoc($sql5);
    }
    elseif($req5 === TRUE){
    $sql6=mysql_query("SELECT X,Y FROM map WHERE X=$X AND Y=$Y1") or die();
    $req6=mysql_fetch_assoc($sql6);
    }
    else {
    if ($req6 === TRUE) {
    echo 'Veuillez choisir une autre position, celle çi est déjà occupée';
    exit;
    }
    }
    Mon problème est qu'après avoir exécuté sql4 et req4 (qui marche vu que un echo req4['X'] me retourne 200 (donc la valeur)) le reste de ma portion n'est pas exécuté alors que req4 est TRUE, mais le reste de mon script est exécuté .

    Donc je coince sans trouver de solution...
    Quelqu'un pourrait-il m'aider ?

  2. #2
    Membre émérite Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $sql4=mysql_query("SELECT X,Y FROM map WHERE X=$X AND Y=$Y") or die();
    $req4=mysql_fetch_assoc($sql4);
    if(mysql_num_rows($req4) != 0) {
    $sql5=mysql_query("SELECT X,Y FROM map WHERE X=$X1 AND Y=$Y") or die();
    $req5=mysql_fetch_assoc($sql5);
    }
    Et comme cela ?

  3. #3
    Membre confirmé Avatar de FrontLine
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 173
    Par défaut
    Ou if(mysql_num_rows($req4)) ?

  4. #4
    Membre averti Avatar de Saintux
    Homme Profil pro
    Chercheur ( de travail )
    Inscrit en
    Janvier 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur ( de travail )
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 39
    Par défaut
    Il me met ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /opt/lampp/htdocs/fa/scripts/placer_p.php on line 20
     
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /opt/lampp/htdocs/fa/scripts/placer_p.php on line 24
     
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /opt/lampp/htdocs/fa/scripts/placer_p.php on line 29
    alors que quand je fais directement le $sql4 depuis phpMyAdmin il ne me trouve pas d'erreur et me sélectionne bien les colonnes qui existent.

  5. #5
    Membre confirmé Avatar de FrontLine
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 173
    Par défaut
    Quel style de contenu y a t'il dans tes conditions Where ?
    Par exemple : WHERE X=$X AND Y=$Y1

    $X et $Y1 j'imagine que se sont des valeurs numérique ?

    Dans le cas contraire essaye en entourrant tes valeurs, par exemple :
    WHERE X='$X' AND Y='$Y1'
    Surtout si les valeurs sont envoyées par l'utilisateur, penser à protéger avec la fonction int() ou intval().

    Après tu peux essayer également :
    if(!empty($req4))

    Bon dimanche

  6. #6
    Membre averti Avatar de Saintux
    Homme Profil pro
    Chercheur ( de travail )
    Inscrit en
    Janvier 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur ( de travail )
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 39
    Par défaut
    $X et $Y sont des variables numériques, et quand je met par exemple $X=315 et $Y=315 et qu'il y a déjà ces valeurs de prises dans la table ça ne vas pas faire les if(!empty($req4)), même lorsque echo ' '.$req4["X"].' '; me donne 315...donc c'est plutôt bizarre .

    edit : ce doit être moi mais bon... je remplace le if(!empty($req4)) par if($req4['X']=='315') et malheureusement, il ne me le fais toujours pas alors que mon echo ' '.$req4["X"].' '; me donne toujours 315..

  7. #7
    Membre averti Avatar de Saintux
    Homme Profil pro
    Chercheur ( de travail )
    Inscrit en
    Janvier 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur ( de travail )
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 39
    Par défaut
    tient je suis un boulet...

    j'avais oublié de changer mes variables finales... le script qui fonctionne :
    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
    //coordonnés si occupé 
    $X1=$X+1;
    $Y1=$Y+1;
    
    //verif que personne
    $sql2=mysql_query("SELECT X,Y FROM map WHERE X='$X' AND Y='$Y'") or die();
    $req2=mysql_fetch_assoc($sql2);
    $Xfin=$X;
    $Yfin=$Y;
    if(!empty($req2['X'])) {
    $sql3=mysql_query("SELECT X,Y FROM map WHERE X='$X1' AND Y='$Y'") or die();
    $req3=mysql_fetch_assoc($sql3);
    $Xfin=$X1;
    $Yfin=$Y;
    }
    elseif(!empty($req3['X'])){
    $sql4=mysql_query("SELECT X,Y FROM map WHERE X='$X' AND Y='$Y1'") or die();
    $req4=mysql_fetch_assoc($sql4);
    $Xfin=$X;
    $Yfin=$Y1;
    }
    else {
    if (!empty($req4['X'])) {
    echo 'Veuillez choisir une autre position, celle çi est déjà occupée';
    exit;
    }
    }
    
    //si personne faire l'insertion
    $map=mysql_query("INSERT INTO map VALUES('','".$req['nom']."','".$req['pseudo']."','$Xfin','$Yfin','perso','".$req['img']."','$couleur')");
    
    //ajout coor profil perso + PA/MOUV
    $perso=mysql_query("UPDATE persos SET X=$Xfin,Y=$Yfin,pa='16',pamax='16',mouv='10',mouvmax='10' WHERE pseudo='".$_SESSION['pseudo']."' AND num='$numperso'");
    désolé pour le dérangement et merci encore.

  8. #8
    Membre confirmé Avatar de FrontLine
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 173
    Par défaut
    Ah c'est sûr sans regarder la fin du code on pouvait chercher encore longtemps ^^

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

Discussions similaires

  1. code non éxécutable
    Par abidi_niz dans le forum Langage SQL
    Réponses: 1
    Dernier message: 18/07/2005, 10h03

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