Fonction mysql_result() marche 1 fois sur 2!!
Résolu
Fonx2
Messages postés
331
Date d'inscription
Statut
Membre
Dernière intervention
-
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je me lance depuis peu dans la conception via PHP d'un site web de gestion de planning.
Pour faire simple, disons que je génère un tableau par mois avec en colonne les jours et en ligne les nom des personnes.
Le planning est réalisé selon un code couleur: il suffit donc de colorer la case.
Pour savoir quel couleur mettre, j'ai écrit une fonction que voici:
-------------------------------------------------------------------------------------------------------------------
function TestValeur($Jour, $Mois, $Annee, $Prenom){
$PrenomSQL="'".$Prenom."'";
$Date="'".$Annee."/".$Mois."/".$Jour."'";
$test=mysql_query("Select count( c.NomCreneau ) From personne p, creneau c, travaillerdans t Where p.IDPersonne = t.IDPersonne And c.IDCreneau = t.IDCreneau And p.prenom = $PrenomSQL And t.Date = $Date");
$testexist=mysql_result($test, 0);
if ($testexist>0){
$sql=mysql_query("select c.NomCreneau from personne p, creneau c, travaillerdans t Where p.IDPersonne=t.IDPersonne and c.IDCreneau=T.IDCreneau and t.Date=$Date");
$resultat=mysql_result($sql, 0);
return $resultat;
}
else{
return '';
}
}
-------------------------------------------------------------------------------------------------------------------
Dans ma page principale (celle qui génère les tableaux), j'ai (entre autre) écrit ceci:
-------------------------------------------------------------------------------------------------------------------
for ($j=1;$j<$NbrJrsMois+1;$j++){
ConnectBase ();
$Resultat=TestValeur($j, $m, $y, 'Toto');
$ColorCase=ColorCase($Resultat);
echo "<td class='$ColorCase'></td>";
}
-------------------------------------------------------------------------------------------------------------------
Remarque: "ConnectBase()" est une fonction qui me connecte à ma base phpmyadmin tandis que "ColorCase()" complète l'attribut "class" de la balise "<td>" afin de la faire correspondre à une feuille de style qui contient des class avec les différents "background-color" du code couleur du planning.
Pour info, ma base phpmyadmin contient 3 tables (voir le MLD si dessous):
Personne (IDPersonne, Nom, Prenom)
Creneau (IDCreneau, NomCreneau)
TravaillerDans (#IDPersonne, #IDCreneau, Date)
Mon problème est le suivant:
Pour pouvoir tester mon travail au fur et à mesure, j'ai installer WAMPSERVER sur ma machine. Avec ce logiciel, TOUT MARCHE NICKEL!!
Mais lorsque je le copie (via FTP) sur le serveur (virtuel - accessible par le réseau) destiné à reçevoir le site final, j'obtient une erreur:
"Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /var/www/planning/GestionPlanning/Fonctions.php on line 54"
Voila deux jours que je fouille partout sur le web... sans résultat!
Au secours!!!
Je me lance depuis peu dans la conception via PHP d'un site web de gestion de planning.
Pour faire simple, disons que je génère un tableau par mois avec en colonne les jours et en ligne les nom des personnes.
Le planning est réalisé selon un code couleur: il suffit donc de colorer la case.
Pour savoir quel couleur mettre, j'ai écrit une fonction que voici:
-------------------------------------------------------------------------------------------------------------------
function TestValeur($Jour, $Mois, $Annee, $Prenom){
$PrenomSQL="'".$Prenom."'";
$Date="'".$Annee."/".$Mois."/".$Jour."'";
$test=mysql_query("Select count( c.NomCreneau ) From personne p, creneau c, travaillerdans t Where p.IDPersonne = t.IDPersonne And c.IDCreneau = t.IDCreneau And p.prenom = $PrenomSQL And t.Date = $Date");
$testexist=mysql_result($test, 0);
if ($testexist>0){
$sql=mysql_query("select c.NomCreneau from personne p, creneau c, travaillerdans t Where p.IDPersonne=t.IDPersonne and c.IDCreneau=T.IDCreneau and t.Date=$Date");
$resultat=mysql_result($sql, 0);
return $resultat;
}
else{
return '';
}
}
-------------------------------------------------------------------------------------------------------------------
Dans ma page principale (celle qui génère les tableaux), j'ai (entre autre) écrit ceci:
-------------------------------------------------------------------------------------------------------------------
for ($j=1;$j<$NbrJrsMois+1;$j++){
ConnectBase ();
$Resultat=TestValeur($j, $m, $y, 'Toto');
$ColorCase=ColorCase($Resultat);
echo "<td class='$ColorCase'></td>";
}
-------------------------------------------------------------------------------------------------------------------
Remarque: "ConnectBase()" est une fonction qui me connecte à ma base phpmyadmin tandis que "ColorCase()" complète l'attribut "class" de la balise "<td>" afin de la faire correspondre à une feuille de style qui contient des class avec les différents "background-color" du code couleur du planning.
Pour info, ma base phpmyadmin contient 3 tables (voir le MLD si dessous):
Personne (IDPersonne, Nom, Prenom)
Creneau (IDCreneau, NomCreneau)
TravaillerDans (#IDPersonne, #IDCreneau, Date)
Mon problème est le suivant:
Pour pouvoir tester mon travail au fur et à mesure, j'ai installer WAMPSERVER sur ma machine. Avec ce logiciel, TOUT MARCHE NICKEL!!
Mais lorsque je le copie (via FTP) sur le serveur (virtuel - accessible par le réseau) destiné à reçevoir le site final, j'obtient une erreur:
"Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /var/www/planning/GestionPlanning/Fonctions.php on line 54"
Voila deux jours que je fouille partout sur le web... sans résultat!
Au secours!!!
A voir également:
- Fonction mysql_result() marche 1 fois sur 2!!
- Fonction si et - Guide
- Supercopier 2 - Télécharger - Gestion de fichiers
- Word numéro de page 1/2 - Guide
- 2 ecran pc - Guide
- Faire 2 colonnes sur word - Guide
3 réponses
Bonjour,
Après chaque mysql_query, rajoute une ligne echo mysql_error();.
Cette fonction renvoie la dernière erreur MySQL, ce qui te permettra de comprendre ce qui n'a pas fonctionné.
Xavier
Après chaque mysql_query, rajoute une ligne echo mysql_error();.
Cette fonction renvoie la dernière erreur MySQL, ce qui te permettra de comprendre ce qui n'a pas fonctionné.
Xavier
Merci pour cette astuce! Je connaissais cette fonction mais je n'avais pas pensé à l'utiliser...
Je test sa dès demain et je te tiens au courant...
Merci encore!
Je test sa dès demain et je te tiens au courant...
Merci encore!
Super!!
Désolé, je n'ai pas eu le temps de tester sa plus tôt mais là sa y est! Sa marche!
En fait, il y avais deux erreurs, dût au même problème: Le respect de la casse.
- Dans ma fonction ConnectBase(), le nom de la base commençais par une majuscule tandis que tout était en minuscule sur phpmyadmin.
- Dans ma requête SQL, je déclare un pseudo pour mes tables en les désignant par une lettre en minuscule (mot clé "as" suivit d'une lettre minuscule) et plus loin, dans la clause "where", je met la lettre correspondant à ma table... en majuscule! Faut vraiment pas être futé!
Après ces 2 corrections, tout marche nickel!!
Merci encore!
Bonne continuation...
Désolé, je n'ai pas eu le temps de tester sa plus tôt mais là sa y est! Sa marche!
En fait, il y avais deux erreurs, dût au même problème: Le respect de la casse.
- Dans ma fonction ConnectBase(), le nom de la base commençais par une majuscule tandis que tout était en minuscule sur phpmyadmin.
- Dans ma requête SQL, je déclare un pseudo pour mes tables en les désignant par une lettre en minuscule (mot clé "as" suivit d'une lettre minuscule) et plus loin, dans la clause "where", je met la lettre correspondant à ma table... en majuscule! Faut vraiment pas être futé!
Après ces 2 corrections, tout marche nickel!!
Merci encore!
Bonne continuation...