Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

mysql_num_rows()

16K
04 октября 2009 года
alenov
36 / / 20.09.2007
Добрый день. В web программировании я абсолютный профан, никогда не думал, что придется что-то осваивать, но жизнь заставила.
Имеется игра пазлы, которая написана на php, данные хранит в sql, сама игра подгружается из swf файла. Производитель бросил этот проект, тк ему было опрометчиво заплачено вперед. По его словам игра рабочая, но я ни разу не вижу, чтобы она была рабочая. Запускал я этот проект в Denwer'e и в NuSphere'e, выскакивают ошибки такого плана:
mysql_num_rows():supplied argument is not a valid MySQL.
Куда копать? Может версия SQL не та? Чем вообще можно посмотреть SQL файл?
Просьба в FAQ абстрактно не посылать. Я его уже читал. Лучше дайте конкретную ссылку.
Большое спасибо.
244
04 октября 2009 года
UAS
2.0K / / 19.07.2006
Неверный результат SQL-запроса. Проще говоря, произошел некорректный запрос к базе данных, который вернул не результат, а ошибку.
Ошибка обычно в синтаксисе. Узнать ошибку можно с помощью функций mysql_errno() и mysql_error()
SQL-файл смотрится обычным текстовым документом. Для просмотра самой БД используйте что угодно, для этого предназначенное. На PHP, обычно, это phpmyadmin. Можно и через консоль mysql все посмотреть.

Возможно, скрипт вы запустили, а таблице в БД не создали. Или некорректно запрос послали. Вообщем, причин много может быть.
325
04 октября 2009 года
Franky
723 / / 10.08.2005
РНР-код в студию
16K
05 октября 2009 года
alenov
36 / / 20.09.2007
Первая часть кода. 4 ошибки - отметил красным и написал, что выводится

Код:
<?php
$title="Puzzle Game";
require("header.inc");
echo("\r\n");
?>
<?php
$db_host="localhost";
$db_user="root";
$db_password="";
$db_name="puzzle";  [COLOR="Red"]//Пишет, что здесь синтаксическая ошибка[/COLOR]

$dbcnx = @mysql_connect ($db_host,$db_user,$db_password);
if (!$dbcnx) {
    echo("<p>В настоящий момент сервер БД недоступен - ошибка 001</p>");
    exit();
    }
if (!@mysql_select_db($db_name,$dbcnx)) {
    echo("<p>В настоящий момент БД недоступена - ошибка 002</p>");
    exit();
    }
echo "connect good;";
if ((!(isset($_GET['play'])))&&(!(isset($_GET['end']))))
{
    echo "go MAIN";
    echo("<script language=\"javascript\" type=\"text/javascript\">");
    echo("function CheckName()");
    echo("{");
    echo("var a = new Array();");
    $link=mysql_connect($db_host,$db_user,$db_password);
    mysql_select_db($db_name);
             $query = "SELECT * FROM puzzle1";
    $res=mysql_query($query);
    $num = mysql_num_rows($res);
    $i=1;
    if ($num!=0)  [COLOR="red"]//Тоже ошибка - предполагается наличие объекта[/COLOR]
    {
        while($row=mysql_fetch_array($res))
        {
            echo("a[".$i."]='".$row['name']."';"."\r\n");
            $i++;
        }
    }
    $query = "SELECT * FROM puzzle2";
    $res=mysql_query($query);
    $num = mysql_num_rows($res);
    if ($num!=0)
    {
        while($row=mysql_fetch_array($res))
        {
            echo("a[".$i."]='".$row['name']."';"."\r\n");
            $i++;
        }
    }
    $query = "SELECT * FROM puzzle3";
    $res=mysql_query($query);
    $num = mysql_num_rows($res);
    if ($num!=0)
    {
        while($row=mysql_fetch_array($res))
        {
            echo("  a[".$i."]='".$row['name']."';"."\r\n");
            $i++;
        }
    }
        echo("var flg=0;"."\n");
                echo("var name=document.getElementById(\"n\").value;"."\n");
        echo("a[0] = ' ';"."\n");
        echo("for(var i=0; i<=".$i."; i++)"."\n");
        echo("{"."\n");
            echo("if ((name==a)||(name==\"\"))"."\n");
            echo("{"."\n");
                echo("flg=1;"."\n");
            echo("}"."\n");
        echo("}"."\n");
        echo("if(flg==0){document.getElementById(\"f1\").submit();}"."\n");
        echo("else"."\n");
        echo("{"."\n");
            echo("alert('Пользователь с таким именем уже есть!');"."\n");
            echo("document.getElementById(\"n\").value = \"\";"."\n");
        echo("}"."\n");
echo("}"."\n");
echo("</script>"."\n\r");
echo("<center><p class=\"main_text\"><b>PUZZLE<br>GAME</b></p></center>"."\n");
echo("<center><table border=\"0\"><tr><td><img src=\"i/puzzle.jpg\"></td></tr></table></center>"."\n");
echo("<center><p class=\"main_text\">Введте ваше имя/ Enter your name<br>"."\n");
echo("<form action=\"index.php?play=1\" name=\"form1\" method=\"POST\" id=\"f1\"></p>"."\n");
echo("<INPUT TYPE=\"text\" NAME=\"name\" id=\"n\" class=\"game_i\"><br>"."\n");
echo("<p class=\"main_text\">Выборите уровень сложности/ Choose level<br>"."\n");
echo("<INPUT type=\"radio\" name=\"level\" value=\"1\" CHECKED>4x5<br>"."\n");
echo("<INPUT type=\"radio\" name=\"level\" value=\"2\">5x6<br>"."\n");
echo("<INPUT type=\"radio\" name=\"level\" value=\"3\">6x7</p>"."\n");
echo("<INPUT TYPE=\"image\" src=\"i/play.jpg\" VALUE=\"Играть! Play!\" &#111;&#110;Click=\"CheckName()\">"."\n");
echo("</form></center>"."\n");
}
if(isset($_GET['play']))
{
    if(isset($_POST['name'])&&(isset($_POST['level'])))
    {
        $name = $_POST['name'];
        $level = $_POST['level'];
        $user_name = $name;
        echo "go PLAY<br>";
    }
    else
    {
        if((isset($_POST['name']))&&(isset($_POST['level'])))
        {
            $name = $_POST['name'];
            $user_name = $name;
        }
    }
        $link=mysql_connect($db_host,$db_user,$db_password);
        mysql_select_db($db_name);
        $query = "SELECT * FROM puzzleimg WHERE lastid=0";
        $res = mysql_query($query);
        $num = mysql_num_rows($res);    [COLOR="red"]//Ошибка - mysql_num_rows(): supplied argument is not a valid MySQL result resource [/COLOR]
        $i = 0;
        if ($num!=1)
        {
            $r = rand(1, $num);
            while($row=mysql_fetch_array($res))  [COLOR="red"]//Ошибка- mysql_fetch_array(): supplied argument is not a valid MySQL result resource [/COLOR]
            {  
                $i++;
                if($i==$r)
                {
                    $img_name = $row['imgname'];
                    $query = "UPDATE puzzleimg SET lastid=0 WHERE lastid=1";
                    $res1 = mysql_query($query);               
                    $query = "UPDATE puzzleimg SET lastid=1 WHERE id=".$row['id'];
                    $res2 = mysql_query($query);
                               
                }
            }
        }
        else
        {
            $row=mysql_fetch_array($res);
            $img_name = $row['imgname'];
            $id = $row['id'];
            $query = "UPDATE puzzleimg SET lastid=0 WHERE lastid=1";
            $res = mysql_query($query);
            $query = "UPDATE puzzleimg SET lastid=1 WHERE id=".$id;
            $res = mysql_query($query);
        }
echo("<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0\" width=\"800\" height=\"600\" align=\"middle\" title=\"1\">");
echo("<param name=\"movie\" value=\"my_puzzle.swf?fn=".$img_name."&level=".$level."&name=".$name."\" />");
echo("<param name=\"quality\" value=\"high\" /><param name=\"BGCOLOR\" value=\"#FFFFFF\" /><param name=\"LOOP\" value=\"false\"     />");
echo("<embed name=\"movie\" src=\"my_puzzle.swf?&fn=".$img_name."&level=".$level."&name=".$name."\" width=\"800\" height=\"600\" loop=\"false\" align=\"middle\" quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" bgcolor=\"#FFFFFF\"></embed>");
echo("</object>");
echo "<br>NAME: $img_name<br>";    
}
if (isset($_GET['end']))
{
    function gettimes($sec)
    {
        if ($sec<=60)
        {
            return $sec." сек.";
        }
        else
        {
            $nsec = $sec%60;
            $min = ($sec - $nsec)/60;
            $s = $min." мин. ".$nsec." сек";
            return $s;
        }
        if($sec<0) $sec=666;
    }
    if(isset($_POST['level'])) $lev=$level;
    if(!isset($_GET['rectable']))
    {
        $img_name=$_GET["img_name"];
        echo "img:".$img_name.":<br>";
        echo("<center><img src=\"i/s_".$img_name."\" border=0></center>");
        $link=mysql_connect($db_host,$db_user,$db_password);
        mysql_select_db($db_name);
        $query = "SELECT * FROM puzzle".$lev;
        $res=mysql_query($query);
        $num = mysql_num_rows($res);
        if ($num>0)
        {
            $query = "SELECT * FROM puzzle".$lev." WHERE id='".$num."'";
            $res=mysql_query($query);
            $row=mysql_fetch_array($res);
            echo("<center><p class=\"main_text\"><b>Поздравляем!<br>Congratulate you!</b></p></center>");
16K
05 октября 2009 года
alenov
36 / / 20.09.2007
Вторая часть кода.

Код:
////////////////////////////////////////
        //record time///////////////////////
            if ( ($sec<$row['sec'])||($num<5) )
            {
                echo("<center><p class=\"main_text\"><b>Вы – наш чемпион!/You are the champion!</b></p></center>");
                echo("<center><p class=\"main_text\"><b>Ваше время/Your time<br> ");
                echo(gettimes($sec));
                echo("</b></p></center>");
                // создаём ассоциативный массив из старых игроков+ добавляем нового рекордсмена
                $query = "SELECT * FROM puzzle".$lev;
                $res=mysql_query($query);
                $num = mysql_num_rows($res);
                $i = -1;
                while($row=mysql_fetch_array($res))
                {
                    $i++;
                    $a[$row['name']] = $row['sec'];
                }
                $a[$_POST['name']] = $_POST['sec'];
                /////////////////////////////////////
                // сортируем
                asort($a);
                ////////////////////////////////////       
                //очищаем старую базу и записываем новую таблицу рекордов
                $query = "DELETE FROM puzzle".$lev;
                mysql_query($query);
                $i =0;
                foreach ($a as $key => $value)
                {      
                    $i++;
                    if($i<=5)
                    {
                        $query = "INSERT INTO puzzle".$lev." (id, name, sec) VALUES ('".$i."', '".$key."', '".$value.   "')";
                        mysql_query($query);
                }
                }
                ///////////////////////////////////
            }
            ////////////////////////////
            //не попал в рекордное время
            else
            {
            if ($sec<=60)
                {
                    echo("<center><p class=\"main_text\"><b>Ваше время/Your time<br> ".$sec." сек.</b></p></center>");
                }
                else
                {
                    $nsec = $sec%60;
                    $min = ($sec - $nsec)/60;
                    echo("<center><p class=\"main_text\"><b>Ваше время/Your time<br> ".$min." мин. ".$nsec." сек.</b></p></center>") ;
                }
            }
        }
        else
        {
            $query = "INSERT INTO puzzle".$lev." (id, name, sec) VALUES ('1', '".$name."', '".$sec. "')";
            mysql_query($query);
        }
echo("<table><tr><td>");
echo("<form action=\"?play=1\" name=\"form1\" method=\"POST\">");
echo("<INPUT TYPE=\"image\" src=\"i/cap.jpg\" &#111;&#110;Click=\"form1.submit()\" VALUE=\"Собрать другое изображение\n\rCollect another picture\">");
echo("<INPUT TYPE=\"hidden\" name=\"name\" value=".$name.">");
echo("<INPUT TYPE=\"hidden\" name=\"level\" value=".$lev.">"); 
echo("</form>");   
echo("</td><td>");
echo("<form action=\"index.php\" name=\"form2\" method=\"POST\">");
echo("<INPUT TYPE=\"image\" src=\"i/cp.jpg\" VALUE=\"Изменить параметры игры\n\r Change parameters\" &#111;&#110;Click=\"form2.submit()\"></form>");  
echo("</td><td>");
echo("<form action=\"?end&rectable=1\" name=\"form3\" method=\"POST\">");
echo("<INPUT TYPE=\"hidden\" name=\"name\" value=".$name.">");
echo("<INPUT TYPE=\"hidden\" name=\"level\" value=".$lev.">");
echo("<INPUT TYPE=\"hidden\" name=\"img_name\" value=pic1.jpg>");
echo("<INPUT TYPE=\"image\" src=\"i/oc.jpg\" VALUE=\"Наши чемпионы\n\rOur champions\" &#111;&#110;Click=\"form3.submit()\"></form>");
echo("</td></tr></table>");
    }
    else
    {
        echo("<p classs=\"main_text\"><center><b>Our champions!</center></b></p>");
        $link=mysql_connect($db_host,$db_user,$db_password);
        mysql_select_db($db_name);
        echo("<table width=\"500\" border=\"0\" cellspacing=\"1\" cellpadding=\"0\" bgcolor=\"#CCCCCC\" class=\"main_text\">");
        echo("<tr height=\"40\"><td align=center>Уровень сложности<br>Level</td><td align=center>Место<br>Place</td><td align=center>Время, имя<br>Time, name</td></tr>");
        for($j=1; $j<4; $j++)
        {
            $query = "SELECT * FROM puzzle".$j;
            $res=mysql_query($query);
            $num = mysql_num_rows($res);
            $i = 0;
            while($row=mysql_fetch_array($res))
            {
                $i++;
                if($i==1)
                {
                    if($j==1) $l="4x5";
                        else
                        {
                            if($j==2) $l="5x6";
                                else    $l="6x7";
                        }
                    echo("<tr height=\"20\" align=center><td rowspan=\"".$num."\" bgcolor=\"#FFFFFF\" align=center>".$l."</td>");
                    echo("<td bgcolor=\"#FFFFFF\" align=center> ".$i." </td><td bgcolor=\"#FFFFFF\">".gettimes($row['sec']).", ".$row['name']."</td></tr>");
                }
                else
                {
                    echo("<tr height=\"20\" align=center><td bgcolor=\"#FFFFFF\" align=center> ".$i." </td><td bgcolor=\"#FFFFFF\">".gettimes($row['sec']).", ".$row['name']    ."</td></tr>");
                }
            }
            echo("<br>");
        }
        echo("</table>");
echo("<table height=\"90\"><tr height=90><td  valign=\"top\">");
echo("<form action=\"?play=1\" name=\"form1\" method=\"POST\">");
echo("<INPUT TYPE=\"hidden\" name=\"name\" value=".$_POST['name'].">");
echo("<INPUT TYPE=\"hidden\" name=\"level\" value=".$_POST['level'].">");  
echo("<INPUT TYPE=\"image\" src=\"i/cap.jpg\" &#111;&#110;Click=\"form1.submit()\" VALUE=\"Собрать другое изображение\n\rCollect another picture\">");
echo("</td><td valign=\"top\">");
echo("<a href=\"index.php\"><img src=\"i/cp.jpg\" border=\"0\"></a>");
echo("</td></tr></table>");
    }
}
?>
<?php
require("footer.inc");
?>
244
05 октября 2009 года
UAS
2.0K / / 19.07.2006
Посчет ошибок БД - у вас скорее всего таблицы не созданы. Посчет остального - я чет в самом начале кода не узрел синтаксической ошибки.

Мой вам совет - нанять другого адекватного программиста, который это все перепишет. Потому что код - УГ. За такой код я бы даже копейки не дал программисту, так как он просто ужасен и разбираться в нем никто не будет хотеть. Легче переписать все с нуля толковому человеку, что я вам и советую.
92
05 октября 2009 года
Тень Пса
2.2K / / 19.10.2006
Цитата:

[COLOR=red]//Тоже ошибка - предполагается наличие объекта[/COLOR]



это вообще ошибка JS

16K
05 октября 2009 года
alenov
36 / / 20.09.2007
Цитата:
это вообще ошибка JS

Что такое JS? Джава скрипт?

16K
05 октября 2009 года
alenov
36 / / 20.09.2007
По-видимому, действительно не были созданы таблицы. Я впервые сталкиваюсь с Denwer'ом, наверное что-то сделал неправильно.
Знатоки Denwer'а, объясните пожалуйста, как сделать следующее:

2. Создаете в БД mysql (которая поставляется с Denwer) базу puzzle,
3. Выполняете в ней скрипт puzzle,

Обнаружил, что есть вот такая папка:
D:\WebServers\usr\local\mysql5\data\puzzle
в ней файл db.opt.

Что предполагается сделать по этому описанию?

Вы правы на счет программиста, но, к сожалению, не мне решать.
92
05 октября 2009 года
Тень Пса
2.2K / / 19.10.2006
Цитата: alenov
Что такое JS? Джава скрипт?


да, javascript. Вы ищете ошибки JS в коде php, при условии, что ошибки JS возникают на уже отданной браузеру странице

13
05 октября 2009 года
RussianSpy
3.0K / / 04.07.2006
Хватит сношать мозг себе и нам. Ваш уровень знаний по этой теме просто нулевой. Чтобы даже объяснить вам в чем у вас проблема нужно пуститься в длинные объяснения что такое РНР, базы данных, JavaScriptб протокол HTTP и т.д.

UAS вам все верно сказал - наймите программиста.
16K
05 октября 2009 года
alenov
36 / / 20.09.2007
Всем большое спасибо. Разобрался.
16K
05 октября 2009 года
alenov
36 / / 20.09.2007
Цитата:
Хватит сношать мозг себе и нам. Ваш уровень знаний по этой теме просто нулевой. Чтобы даже объяснить вам в чем у вас проблема нужно пуститься в длинные объяснения что такое РНР, базы данных, JavaScriptб протокол HTTP и т.д.

UAS вам все верно сказал - наймите программиста.



Тем не менее заработало. Еще одной корявой страницей в интернете будет больше.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог