Показать сообщение отдельно
Старый 21.07.2013, 09:18   #1
Alex_Witcher
Нуждающийся
 
Регистрация: 15.02.2012
Сообщений: 53
Написано одно полезное сообщение
php, как правильно вернуть id по параметру

Есть такой скрипт
<?php 
        $db = mysql_connect('127.0.0.1', 'root', '') or die('Could not connect: ' . mysql_error()); 
        mysql_select_db('openfire_scores') or die('Could not select database');
        // Strings must be escaped to prevent SQL injection attack. 
$name = mysql_real_escape_string($_GET['name'], $db); 

$score = mysql_real_escape_string($_GET['score'], $db); 

$ros= mysql_query("SELECT `id` FROM `scores` WHERE `name`='$name'");
$row=mysql_fetch_array($ros);
echo $row[id]; 


        $hash = $_GET['hash']; 
 
        $secretKey="mySecretKey"; # Change this value to match the value stored in the client javascript below 

       $real_hash = md5($name . $score . $secretKey); 

    
      if($real_hash == $hash) { 


            // Send variables for the MySQL database class. 
             



 $res= mysql_query("SELECT `name` FROM `scores` WHERE (`name`='$name')");

   
        if (mysql_num_rows($res) > 0)
        {
         
            $query = "UPDATE scores SET score='$score'
WHERE name='$name' ";

        }
else
{
            
$query = "insert into scores values (NULL, '$name', '$score');"; 

            
}

            $result = mysql_query($query) or die('Query failed: ' . mysql_error()); 

      } 

?>
с клиента передаю значение $name, затем хочу вывести через echo id для строки с параметром == $name, но выводит id для строки с пустым именем, т.е $name передается пустой. В БД-же записывается все правильно. Если вместо $name в строке $ros= mysql_query("SELECT `id` FROM `scores` WHERE `name`='$name'"); написать имя вручную-все правильно работает, наверно тут все просто, но в php я новичок, можете подсказать пожалуйста что исправить? Или дать ссылку на материалы для прочтения для решения проблемки? Ну я пытаюсь сделать простой рейтинг на этом примере: http://wiki.unity3d.com/index.php?ti...ide_Highscores , все что представлено там-получилось, выводит топ 15, но тут добавлением строк
$ros= mysql_query("SELECT `id` FROM `scores` WHERE `name`='$name'");
$row=mysql_fetch_array($ros);
echo $row[id];
я пытаюсь вывести текущую позицию в рейтинге по параметру $name для клиента, который посылает запрос, а возвращает id для строки с пустым параметром столбца `name`. Буду очень благодарен!
__________________
unity3d, 1я поделка.
https://play.google.com/store/apps/d...GVsaWNmcmVlIl0.
(Offline)
 
Ответить с цитированием