Probleme Choix de toutes les regions si pas de sessions cookies

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par kitten13, 28 Décembre 2008.

Tags:
  1. kitten13
    kitten13 WRInaute discret
    Inscrit:
    30 Avril 2007
    Messages:
    171
    J'aime reçus:
    0
    Probleme Choix de toutes les regions si pas de sessions cook

    Bonjour,

    J'ai un souci pour faire une modif en php, j'aimerais votre aident svp.

    Je vais essayer d'être la plus claire possible.

    Sur mon site j'ai une liste des dernières annonces classer selon une région, à la première visite de l'internaute si aucune région n'a était choisie alors est afficher une région par défaut avec cette variable:

    Code:
    // the first city in the database will be taken as the default.
    $default_city = -14;
    
    Id -14 correspond à la région iles de france pour mieux comprendre voici l'architecture de ma table :

    table countries

    Code:
    --
    -- Structure de la table `countries`
    --
    
    CREATE TABLE IF NOT EXISTS `countries` (
      `countryid` smallint(5) unsigned NOT NULL auto_increment,
      `countryname` varchar(50) NOT NULL default '',
      `pos` smallint(5) unsigned NOT NULL default '0',
      `enabled` enum('0','1') NOT NULL default '0',
      `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
      PRIMARY KEY  (`countryid`),
      KEY `pos` (`pos`),
      KEY `enabled` (`enabled`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=25 ;
    
    --
    -- Contenu de la table `countries`
    --
    
    INSERT INTO `countries` (`countryid`, `countryname`, `pos`, `enabled`, `timestamp`) VALUES
    (2, 'Alsace', 1, '1', '2008-12-03 00:28:35'),
    (3, 'Aquitaine', 2, '1', '2008-12-03 00:28:35'),
    (4, 'Auvergne', 3, '1', '2008-12-03 00:28:35'),
    (5, 'Basse Normandie', 4, '1', '2008-12-03 00:28:35'),
    (6, 'Bourgogne', 5, '1', '2008-12-03 00:28:35'),
    (7, 'Bretagne', 6, '1', '2008-12-03 00:28:35'),
    (8, 'Centre Val de Loire', 7, '1', '2008-12-03 00:28:35'),
    (9, 'Champagne-Ardenne', 8, '1', '2008-12-03 00:28:35'),
    (10, 'Corse', 9, '1', '2008-12-03 00:28:35'),
    (11, 'Dom-Tom', 10, '1', '2008-12-03 00:28:35'),
    (12, 'Franche-Comté', 11, '1', '2008-12-03 00:28:35'),
    (13, 'Haute Normandie', 12, '1', '2008-12-03 00:28:35'),
    (14, 'Ile de France', 13, '1', '2008-12-03 00:28:35'),
    (15, 'Languedoc-Roussillon', 14, '1', '2008-12-03 00:28:35'),
    (16, 'Limousin', 15, '1', '2008-12-03 00:28:35'),
    (17, 'Lorraine', 16, '1', '2008-12-03 00:28:35'),
    (18, 'Midi-Pyrénées', 17, '1', '2008-12-03 00:28:35'),
    (19, 'Nord-Pas-de-Calais', 18, '1', '2008-12-03 00:28:35'),
    (20, 'PACA', 19, '1', '2008-12-03 00:28:35'),
    (21, 'Pays de la Loire', 20, '1', '2008-12-03 00:28:35'),
    (22, 'Picardie', 21, '1', '2008-12-03 00:28:35'),
    (23, 'Poitou-Charentes', 22, '1', '2008-12-03 00:28:35'),
    (24, 'Rhône-Alpes', 23, '1', '2008-12-03 00:28:35');
    
    la fonction variable qui permet de choisir un id region est ici :

    Code:
    // Get current city
    if ($_GET['cityid'] > 0)
    {
    	$xcityid = $_GET['cityid'];
    }
    elseif ($_GET['cityid'] < 0)
    {
    	$xcountryid = abs($_GET['cityid']);
    	$xcityid = $_GET['cityid'];
    }
    elseif ($_COOKIE[$ck_cityid] > 0)
    {
    	$xcityid = $_COOKIE[$ck_cityid];
    }
    elseif ($_COOKIE[$ck_cityid] < 0)
    {
    	$xcountryid = abs($_COOKIE[$ck_cityid]);
    	$xcityid = $_COOKIE[$ck_cityid];
    }
    elseif ($default_city)
    {
    	$xcityid = $default_city;
    	if($xcityid < 0) $xcountryid = -($xcityid);
    }
    
    
    if ($xcityid)
    {
    	if ($xcityid > 0) $sql = "SELECT COUNT(*) FROM $t_cities WHERE cityid = '$xcityid'";
    	else $sql = "SELECT COUNT(*) FROM $t_countries WHERE countryid = '$xcountryid'";
    
    	list($city_exists) = @mysql_fetch_array(mysql_query($sql));
    	if(!$city_exists) $xcityid = 0;
    }
    
    /*if(!$xcityid)
    {
    	$sql = "SELECT countryid
    			FROM $t_countries
    			WHERE enabled = '1'
    			LIMIT 1";
    	list($xcountryid) = mysql_fetch_array(mysql_query($sql));
    	$xcityid = 0-$xcountryid;
    }*/
    
    if(!$xcityid)
    {
    	$sql = "SELECT cityid
    			FROM $t_cities
    			WHERE enabled = '1'
    			LIMIT 1";
    	list($xcityid) = @mysql_fetch_array(mysql_query($sql));
    }
    
    if (!$xcityid && !$in_admin)
    {
    	die("No locations defined!");
    }
    
    setcookie($ck_cityid, $xcityid, time()+(60*24*60*60), "/");
    
    // Get city name
    if ($xcityid > 0)
    {
    	$sql = "SELECT c.countryname, c.countryid, ct.cityname
    			FROM $t_cities ct
    				INNER JOIN $t_countries c ON c.countryid = ct.countryid
    			WHERE cityid = '$xcityid'";
    	list($xcountryname, $xcountryid, $xcityname)= @mysql_fetch_array(mysql_query($sql));
    }
    elseif ($xcountryid)
    {
    	$sql = "SELECT c.countryname
    			FROM $t_countries c 
    			WHERE countryid = '$xcountryid'";
    	list($xcountryname)= @mysql_fetch_array(mysql_query($sql));
    	$xcityname = $xcountryname;
    }
    

    Vous allez me dire et ou est le problème !

    Et bien en faite j'essaie depuis hier de faire un select sur toutes les id régions en même temps au lieu d'être limiter à faire un choix sur un id région.

    En gros si c'est la première visite de l'internaute alors lui afficher les dernières annonces de toutes les région et pas uniquement la région -14 (ile de france).

    Quelqu'un pourrais m'aider, merci d'avance. :wink:
     
  2. kitten13
    kitten13 WRInaute discret
    Inscrit:
    30 Avril 2007
    Messages:
    171
    J'aime reçus:
    0
    Personne ? pour un petit coup de pouce :(
     
  3. screuscreu
    screuscreu WRInaute impliqué
    Inscrit:
    14 Janvier 2008
    Messages:
    687
    J'aime reçus:
    0
    Dans ta requete de selection :
    Et tu te débrouille pour mettre
    $monWhere = countryid = '$xcountryid'";
    OU
    $monWhere = "1"

    Code:
    SELECT blabla bla bla
     FROM bla bla 
    WHERE $monWhere
    
    Dans le 2ème cas tu n'auras pas de critère de sélection....

    J'espère ne pas avoir répondu à coté.

    Bon courage
     
  4. kitten13
    kitten13 WRInaute discret
    Inscrit:
    30 Avril 2007
    Messages:
    171
    J'aime reçus:
    0
    Bonjour screuscreu, merci pour ton aide.

    Je t'avoue n'avoir pas compris ta proposition :

    As tu un exemple plus concret stp :oops:
     
  5. screuscreu
    screuscreu WRInaute impliqué
    Inscrit:
    14 Janvier 2008
    Messages:
    687
    J'aime reçus:
    0
    Je pense pas pouvoir être plus concret maintenant ...

    J'ai une autre idée.
    Sinon tu peux essayer de mettre $monWhere = countryid quand tu ne veux pas de selection. Cela sélectionnera tout... Je sais pas si tu vois mieux mais essaye tu verras.

    Sinon je reviens à bord de WRI le 6Janvier ... mais je pense que tu trouveras une solution avant !

    Bon courage
     
  6. kitten13
    kitten13 WRInaute discret
    Inscrit:
    30 Avril 2007
    Messages:
    171
    J'aime reçus:
    0
    Slt oui ya pas plus claire :

    En attendant ton retour j'ai fait ceci :

    Code:
    if(!$xcityid)
    {
    	$sql = "SELECT countryid
    			FROM $t_countries
    			WHERE enabled = '1'
    			LIMIT 1";
    	list($xcountryid) = mysql_fetch_array(mysql_query($sql));
    	$xcityid = 0-$xcountryid;
    }
    
    if(!$xcityid)
    {
    	$sql = "SELECT cityid
    			FROM $t_cities
    			WHERE enabled = '1'
    			LIMIT 1";
    	list($xcityid) = @mysql_fetch_array(mysql_query($sql));
    }
    Simplement le probleme c'est qu'il me prends uniquement le premier champs tu me diras change LIMIT, ce que j'ai fait mais il me prends tjrs que le premier champs.

    LIMIT 1, 23";

    ou

    LIMIT 23";

    J'essaie de tous les sélectionner comme cela en faite :roll:

    Rien çà veut pas !!!

    Sinon merci pour ton aide.

    Bonne fête et attention pour le retour :wink:
     
  7. screuscreu
    screuscreu WRInaute impliqué
    Inscrit:
    14 Janvier 2008
    Messages:
    687
    J'aime reçus:
    0
    LIMIT 1 veux dire en fait : LIMIT 0,1 soit à partir de l'enregistrement 0 prendre un enregistrement.
    Donc si tu as LIMIT 23, il va en prendre 23 à partir du premier enregistrement

    Si tu as LIMIT 100,5 il va prendre du 100ème au 105ème.

    Si tu as pas "LIMIT" bah il prendra tout !

    Bien évidemment il te sélectionne que les "ids" on est bien d'accord ?
     
  8. kitten13
    kitten13 WRInaute discret
    Inscrit:
    30 Avril 2007
    Messages:
    171
    J'aime reçus:
    0
    Je suis 100% d'accord avec toi :)

    Le souci c'est que justement il me prends pas mes 23 champs même si je fait comme je t'ai dit plus ou si je retirer LIMIT rien, il se cantonne à me prendre uniquement le premier champs : ggrrrr!!!

    Soit ça vient de moi ou j'ai besoin de revoir mes bases :? va savoir !

    Sur ce bon réveillon et je te dit à l'année prochaine :wink:
     
  9. screuscreu
    screuscreu WRInaute impliqué
    Inscrit:
    14 Janvier 2008
    Messages:
    687
    J'aime reçus:
    0
    je pense que ton pb vient de (et donc de tes bases):

    list($xcountryname)= @mysql_fetch_array(mysql_query($sql));


    utilise plutot:

    $result = (mysql_query($sql);
    while ($row = mysql_fetch_array($result):
    print_r($row);
    endwhile;
     
Chargement...
Similar Threads - Probleme Choix regions Forum Date
Problème choix syntaxe jointure Développement d'un site Web ou d'une appli mobile 4 Août 2008
[?] espotting vs overture => probleme de choix Débuter en référencement 15 Août 2005
problème avec mon site Demandes d'avis et de conseils sur vos sites Lundi à 15:35
Probleme tag sur Google tag manager Demandes d'avis et de conseils sur vos sites Jeudi à 13:49
Probleme Tag sur Google Tag Manager Google Analytics 18 Novembre 2022
Gros problème sur la profondeur de mes pages Problèmes de référencement spécifiques à vos sites 30 Septembre 2022
Problème de htaccess chez Ionos URL Rewriting et .htaccess 12 Septembre 2022
Problème sur jquery avec fonction asynchrone Développement d'un site Web ou d'une appli mobile 6 Septembre 2022
Problème de crawl et d'indexation Crawl et indexation Google, sitemaps 1 Septembre 2022
WordPress Problème affichage style avec Elementor (titre, bordures, separateur) Administration d'un site Web 8 Août 2022
Problème d'indexation de backlinks Débuter en référencement 24 Juillet 2022
Problème d'indexation de backlinks Problèmes de référencement spécifiques à vos sites 21 Juillet 2022
Probleme de visibilité de ma page Facebook Facebook 5 Juillet 2022
problème avec le développeur Droit du web (juridique, fiscalité...) 22 Juin 2022
Problème désindexation des pages de Google Débuter en référencement 21 Juin 2022
Problème d'indexation de pages sur Google Problèmes de référencement spécifiques à vos sites 31 Mai 2022
problème de redirection non souhaitée Administration d'un site Web 28 Avril 2022
Problème d'indexation Produits Prestashop Crawl et indexation Google, sitemaps 28 Avril 2022
Problème d'affichage des campagnes Google Ads dans un tableau de bord Data Studio AdWords 26 Avril 2022
Problème de vitesse d'affichage des pages sur Analytics Google Analytics 26 Avril 2022