switch array of users

vasilev

Registered
здравейте ,
опитвам се да направя календар за различни потребители които са описани в база . в зависимост от линка да изкарва календара за дадения потребител .
ето кода :
Код:
$sql=" SELECT user , fullname FROM users ";
$resource=mysql_query($sql) or die(mysql_error());
while($array=mysql_fetch_assoc($resource))
 {
 $users[]=$array['user'];
 }   
if (isset($_GET['user'])) {
$user = $_GET['user'];
setcookie('user', $user, time()+(3600*24*365));
}
elseif (isset($_COOKIE['user'])) {
$user = $_COOKIE['user'];
} else {
$user = 'bg';
}
if (!(in_array($user, array_keys($users)))) {
die("Грешка: няма езиков файл!");
}
require_once "{$user}.php";
function switch_users_options() {
global $text, $users, $user;
$retval = $text['switch'];
$get = $_GET;
foreach ($users as $abbrv => $name) {
if ($abbrv !== $user) {
$get['user'] = $abbrv;
$url = $_SERVER['PHP_SELF'] . '?' .
http_build_query($get);
$retval .= " <a href=\"{$url}\">
{$name}</a><br>";
}
}
return $retval;
}


това съм го взел от един код за промяна на езика ..
въпроса е че извежда на ред потребителите които са в базата но линковете са от вида :

index.php?user=0 , user=1 .. user=2

а не както би трябвало index.php?user=user1 , user=test ...
моля ви за съдействие .
 
Замени това:
$get['user'] = $abbrv;

с това:
$get['user'] = $name;

Масива $users е номериран масив, т.е. ключовете му са числа, като първия елемент е с ключ 0, втория елемент е с ключ 1 и т.н. Обхождайки този масив чрез

foreach ($users as $abbrv => $name) {

$abbrv съдържа стойността на ключа - 0, 1, 2 и т.н. Все пак броенето започва от нула.

Може би имаш и една грешка тук:

if (!(in_array($user, array_keys($users)))) {

Защо са ти ключовете на масива, след като $user не съдържа число? Кода е малко объркан, защото $user всъщност не е име на потребител а езиков файл, така ли?
 
целта ми е да присвоя по надолу името на Потребителя .. кода ще се промени , аз съм го взел от код за промяна на език и той работи с езикови файлове :)
трябва да стане "select user from users where user='$user'"
тоест от линкът да вземе потребителя за да го вържа в селекта ..

след като промених това което каза стана :)
ще можеш ли да ми помогнеш със селекта ?
 
Не разбрах какво точно да помогна със селекта, ти почти си го написал:

PHP:
$res = "select user from users where user='."mysql_real_escape_string($_GET['user'])."' ";
$data = mysql_fetch_array($res);
 
точно това не знаех как става(да вкарам потребителят от линка в селекта..) и вече разбрах :

Код:
"mysql_real_escape_string($_GET['user'])."

благодаря ти :)
+2 :)
 

Back
Горе