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 :

Requête SQL modulable grâce à un formulaire [Fait]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Points : 5
    Points
    5
    Par défaut Requête SQL modulable grâce à un formulaire
    Bonjour à tous !

    je viens de terminer de créer une requete modulable en fonction des différents champs sélectionnés ou non dans un formulaire de recherche.

    La génération de la requete est correcte (quand je fais un echo) mais lorsque je souhaite afficher les données qui en ressortent, php me dit :
    "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource"
    ... je déteste ce message !

    Sachant que ma requete se construit correctement et fonctionne sous phpMyAdmin, je ne vois vraiment pas d'où vient le problème !

    Pour info, il y a un "Ressource #id4" qui s'affiche et si je fais un var_dump de la requete, celle-ci est correcte !

    Quelqu'un aurait-il une idée ?

    Car le je planche sévère.

    Merci à tous

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Pour info, voici le code qui crée la requete sql en fonction des choix du l'utilisateur :

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
     
    <?php
     
    include('php/connexion_bd.php');
     
     
    	$marche = "services";
     
    	$du_date_j = "12";
    	$du_date_m = "01";
    	$du_date_a = "2008";
     
    	$au_date_j = "24";
    	$au_date_m = "04";
    	$au_date_a = "2009";
     
    	$date_deb = mktime(0,0,0,$du_date_m,$du_date_j,$du_date_a,0);
    	$date_fin = mktime(0,0,0,$au_date_m,$au_date_j,$au_date_a,0);
     
    	$nom2 = "date";
    	$champ1 = $date_deb;
    	$champ2 = $date_fin;
    	$nom3 = "nom";
    	$champ3 = "tyctrfc";
    	$nom4 = "docc";
    	$champ4 = "fctyc";
    	$nom5 = "raisonSociale";
    	$champ5 = "Client";
    	$nom6 = "secteurActivite";
    	$champ6 = "hjbg";
    	$nom7 = "type";
    	$champ7 = "Client";
     
    	$sql = null;
    	$query = "mysql_query(";
     
    	$premierOk = false; //permet de vérifier si la requete est commencée ou non
     
    	if(strlen($champ1) != 10 && strlen($champ2) != 10 && $champ3 == "-" && $champ4 == "-" && $champ5 == "-" && $champ6 == "-" && $champ7 == "-"){
    		echo '<font color="#FF0000"><b>Vous devez remplir au moins un champ de recherche</b></font><br /><br />'; 
    		$sql = 'SELECT id, date, docc, nom, fichierUpload, pdf, statut FROM '.$table.' ORDER BY date DESC';
    	}
    	else{
    		for($i=2; $i<8; $i++){
    			$nom = "nom".$i; //Variable qui va contenir la variable nom.$i
    			$champ = "champ".$i; //Variable qui va contenir la variable champ.$i
    			//Si c'est date alors on controle que les deux dates soient remplies
    			if($$nom == "date"){ //$$nom affiche le contenu de la variable $nom.$i contenu dans la variable $nom
    				if(strlen($champ1) == 10 && strlen($champ2) != 10 || strlen($champ2) == 10 && strlen($champ1) != 10){
    					echo '<font color="#FF0000"><b>Vous devez renseigner les deux dates</b></font>';
    					break;
    				}
    				else if($date_deb > $date_fin){
    					echo '<font color="#FF0000"><b>La date de début est supérieure à la date de fin</b></font>';
    					break;
    				}
    				else if((strlen($champ1) == 10) && (strlen($champ2) == 10)){
    					$sql = 'SELECT date, docc, nom, fichierUpload, statut, pdf FROM success_story_'.$marche.' WHERE '.$$nom.' >= "'.$champ1.'" AND '.$$nom.' <= "'.$champ2.'"';
    					$premierOk = true;//donne vri à premier ainsi on sait que la requete est déjà commencé
    				}
    				else{
    					//sinon rien
    				}
    			}
    			else{
    				if($$champ != "-"){//si le champ est renseigné
    					if($premierOk){//si la requete est commencée alors on concatenne
    						$sql = $sql.' AND '.$$nom.' = "'.$$champ.'"';
    					}
    					else{//sinon on commence à érire le début de la requete
    						$sql = 'SELECT date, docc, nom, fichierUpload, statut, pdf FROM success_story_'.$marche.' WHERE '.$$nom.' = "'.$$champ.'"';
    						$premierOk = true;
    					}	
    				}
    			}
    			if($i == 7){	//Si i=7 alors on arrive à la fin de la requete et il faut donc la fermer
    				$sql = $sql.';';
    			}
    		}
    	}
     
    ?>
    En espérant que ça vous aidera mieux !

    Merci encore à tous !!!

  3. #3
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    si tu as cette erreur, souvent c'est le serveur qui envoie un message d'erreur pour expliquer le problème
    pour voir le message du serveur, regarde ici :
    http://php.developpez.com/faq/?page=...ysql_ressource

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Tout d'abord merci pour la rapidité de la réponse.

    je viens d'aller voir la page que tu m'as indiqué mais il n'y a pas l'erreur que je trouve.

    De plus, je sais que cette erreur, généralement signifie que la requete sql est incorrecte !

    Mais le truc c'est qu'elle est correcte...

    Je ne sais plus quoi faire.

  5. #5
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    On peut voir la partie où l'erreur s'est produite? La partie où tu as ecrit :mysql_query,mysql_fetch_array... Juste avec les requetes que tu nous donnent, je crois que ça sera un peu dure de trouver la source de l'erreur.

Discussions similaires

  1. [Xoops] Réalisation d'un module, requête SQL/Formulaire
    Par OcB974 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 04/02/2013, 12h51
  2. [SQL] Deux requêtes SQL sur le même formulaire
    Par amazircool dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 18/02/2007, 02h23
  3. [SQL] Comment automatiser une requête SQL alimentée par un formulaire HTML?
    Par tse_tilky_moje_imja dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/06/2006, 23h46
  4. [SQL] Récupérer des variables de formulaire dans une requête SQL
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/11/2005, 18h44
  5. problème de requète SQL pour formulaire
    Par en_stage dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 21/06/2005, 12h21

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