Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Веб-программирование > PHP / MySQL

PHP / MySQL Создание динамических Веб-ресурсов

Ответ
 
Опции темы
Старый 21.07.2013, 05: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)
 
Ответить с цитированием
Старый 02.08.2013, 21:20   #2
MrFrosT1
Оператор ЭВМ
 
Аватар для MrFrosT1
 
Регистрация: 11.12.2010
Сообщений: 41
Написано 11 полезных сообщений
(для 14 пользователей)
Ответ: 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.

Последний раз редактировалось MrFrosT1, 05.08.2013 в 09:49.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 12:30.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com