kitten13
Messages postés16Date d'inscriptionjeudi 14 juin 2007StatutMembreDernière intervention17 février 2017
-
29 déc. 2008 à 11:27
kitten13
Messages postés16Date d'inscriptionjeudi 14 juin 2007StatutMembreDernière intervention17 février 2017
-
29 déc. 2008 à 16:23
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:
// 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 :
la fonction variable qui permet de choisir un id region est ici :
// 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).
Noreaga10000
Messages postés46Date d'inscriptionvendredi 24 octobre 2008StatutMembreDernière intervention27 janvier 2009 29 déc. 2008 à 11:40
Bonjour,
Je m'y perd un peu entre city et country.
Mais peut-être que à la place de:
if ($xcityid)
{
if ($xcityid > 0) $sql "SELECT COUNT(*) FROM $t_cities WHERE cityid '$xcityid'";
else $sql "SELECT COUNT(*) FROM $t_countries WHERE countryid '$xcountryid'";
if ($xcityid)
{
if ($xcityid > 0) $sql "SELECT COUNT(*) FROM $t_cities WHERE cityid '$xcityid'";
else $sql = "SELECT COUNT(*) FROM $t_countries ORDER BY timestamp DESC LIMIT 5";
Noreaga10000
Messages postés46Date d'inscriptionvendredi 24 octobre 2008StatutMembreDernière intervention27 janvier 2009 29 déc. 2008 à 15:00
Franchement je vais te proposer un autre truc tout a fait au hasard, car je m'y perd réellement dans tes variables (je sais pas comment tu t'y retouves).
A la fin du code :
elseif ($xcountryid)
{
$sql = "SELECT c.countryname
FROM $t_countries c
WHERE countryid = '$xcountryid'";
list($xcountryname)= @mysql_fetch_array(mysql_query($sql));
$xcityname = $xcountryname;
}
Essayes plutôt:
elseif ($xcountryid)
{
$sql = "SELECT c.countryname, c.timestamp
FROM $t_countries c
ORDER by c.timestamp DESC
LIMIT 5";
list($xcountryname)= @mysql_fetch_array(mysql_query($sql));
$xcityname = $xcountryname;
}