forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   PHP / MySQL (http://forum.boolean.name/forumdisplay.php?f=135)
-   -   php, как правильно вернуть id по параметру (http://forum.boolean.name/showthread.php?t=18386)

Alex_Witcher 21.07.2013 09:18

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`. Буду очень благодарен!

MrFrosT1 03.08.2013 01:20

Ответ: php, как правильно вернуть id по параметру
 
По-русски твой запрос звучит так ( выбрать поле id из таблицы score где имя=$name ) т.е вывести только id. Чтобы вывести имя нужен такой запрос (" SELECT name FROM scores WHERE name='".$name."' ") и поменяй $row[id] на $row['name'] и если будет что то не так поменяй еще mysql_fetch_array на mysql_fetch_assoc . Так как в запросе дело советую почитать Самоучитель MySQL 5, а конкретней Andy Harris php+MySQL.


Часовой пояс GMT +4, время: 05:37.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot