Если оператор или цикл while провалился на мне в php - PullRequest
2 голосов
/ 22 октября 2010

Я довольно новичок в программировании на php и столкнулся с небольшой проблемой, которая, на мой взгляд, очень проста. Я пытаюсь получить IP-адрес любого, кто посещает мой веб-сайт и сохраняет его в моей базе данных. Код выглядит следующим образом, я даже не уверен, что код будет работать, но я получаю следующую ошибку Parse error: синтаксическая ошибка, неожиданный T_INC в строке 29, который я выделю в коде:

$ip = $_SERVER['HTTP_CLIENT_IP']; 
                $query="SELECT * FROM ip";
                $result = mysql_query($query);
                $num = mysql_numrows($result);
                $i = 1;
                $found=false;
                while(($i - 1) < $num){
                    $selection = mysql_query("SELECT ip FROM ip WHERE id=$i");
                    $tip = mysql_fetch_assoc($selection);
                    if($tip == $ip){
                        $found = true;
                    }
                i++; //This is line 29
                }
                if($found == false){
                    $sql = "INSERT INTO `rowley_blog`.`ip` (`ip`) VALUES ('$ip');";
                    mysql_query($sql);
                    mysql_close();
                }

Ответы [ 4 ]

7 голосов
/ 22 октября 2010

Вам необходимо добавить префикс переменных к $, поэтому $i++.

2 голосов
/ 22 октября 2010

Должно быть так:

$i++;
1 голос
/ 22 октября 2010

Помимо синтаксической ошибки: этот код мне кажется взорванным. Разве это не делает то же самое:

$ip = $_SERVER['HTTP_CLIENT_IP'];
mysql_query("REPLACE INTO `ip` (`ip`) VALUES ('" . mysql_real_escape_string($ip) . "')");

Помните: Хороший код - это короткий код;)

Более того: если вы только начинаете кодировать PHP, пожалуйста, даже не начинайте использовать расширение mysql_. Вместо этого используйте PDO :

$ip = $_SERVER['HTTP_CLIENT_IP'];
$db->query("REPLACE INTO `ip` (`ip`) VALUES ('" .$db->quote($ip) . "')");
1 голос
/ 22 октября 2010

Вы должны поставить знак доллара перед всеми вашими переменными - это должно быть

$i++;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...