Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите найти ошибку
 
 автор: sitkar   (07.11.2007 в 10:13)   письмо автору
 
 

Всем добрый день. Помогите пожалуйста найти ошибку. Вроде бы сделал все правильно но ничего не работает, я уже и по книгам смотрел и по форумам лазил но ничего на нашел. Вот имею такой код.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
</head>

<body>

<?php
include "connect.php"
$count mysql_query("select * from vsi"); 
if(
$count

echo 
"<form action='' method='post'>";
  echo 
"<select name='countr_in[]' >"
   while(
$List mysql_fetch_array($count)) 
  { 
    echo 
"<option value=".$List['id_country'].">".$List['country']."</OPTION><br>"
  } 
echo 
"</select><br><br>";

else 

  echo 
"<p><b>Error: ".mysql_error()."</b><p>"
  exit(); 

 

$reg mysql_query("select * from vsi WHERE id_country='countr_in'"); 
if(
$reg

 echo 
"<select name='region_in[]'>";
  echo 
"<option value=".$Lit['id_region'].">".$Lit['region']."</OPTION><br>";  
     while(
$Lit mysql_fetch_array($reg)) 
  
echo 
"</select><br><br>";

else 

  echo 
"<p><b>Error: ".mysql_error()."</b><p>"
  exit(); 


$ci mysql_query("select * from vsi WHERE id_region='region_in'"); 
if(
$ci

  echo 
"<select name='city_in[]'>"
    echo 
"<option value=".$Lis['id_city'].">".$Lis['city']."</OPTION><br>";
      while(
$Lis mysql_fetch_array($ci)) 
  
echo 
"</select><br><br><input type='submit' value='Пошук'>";
}
else 

  echo 
"<p><b>Error: ".mysql_error()."</b><p>"
  exit(); 


echo 
"</form>"


?>



</body>
</html>



Пробовал и с одной таблице и с тремя а результат один и тотже. Помогите пожалуйста

   
 
 автор: Саня   (07.11.2007 в 10:16)   письмо автору
 
   для: sitkar   (07.11.2007 в 10:13)
 

id_country и id_region какой имеют тип в таблице?

   
 
 автор: sitkar   (07.11.2007 в 10:43)   письмо автору
 
   для: Саня   (07.11.2007 в 10:16)
 

id_country и id_region у меня имеют тип integer

   
 
 автор: Dimka31   (07.11.2007 в 10:25)   письмо автору
 
   для: sitkar   (07.11.2007 в 10:13)
 

у вас проблема с циклом вы поставили его не в том месте, попробуйте как нибудь вот так

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> 
<title>Untitled Document</title> 
</head> 

<body> 

<?php 
  
include "connect.php";  
  
$count mysql_query("select * from vsi");  
  if(
$count)  
  {  
    echo 
"<form action='' method='post'>"
    echo 
"<select name='countr_in[]' >";  
    while(
$List mysql_fetch_array($count))  
    {  
      echo 
"<option value=".$List['id_country'].">".$List['country']."</OPTION><br>";  
    }  
    echo 
"</select><br><br>"
  }  
  else  
  {  
    echo 
"<p><b>Error: ".mysql_error()."</b><p>";  
    exit();  
  }  
  
  
$reg mysql_query("select * from vsi WHERE id_country='countr_in'");  
  if(
$reg)  
  {  
    echo 
"<select name='region_in[]'>"
    while(
$Lit mysql_fetch_array($reg))  
    {
      echo 
"<option value=".$Lit['id_region'].">".$Lit['region']."</OPTION><br>";   
    }
    echo 
"</select><br><br>"
  }  
  else  
  {  
    echo 
"<p><b>Error: ".mysql_error()."</b><p>";  
    exit();  
  }  

  
$ci mysql_query("select * from vsi WHERE id_region='region_in'");  
  if(
$ci)  
  {  
    echo 
"<select name='city_in[]'>";   
    while(
$Lis mysql_fetch_array($ci))  
    {
      echo 
"<option value=".$Lis['id_city'].">".$Lis['city']."</OPTION><br>"
    }
    echo 
"</select><br><br><input type='submit' value='Пошук'>"
  } 
  else  
  {  
    echo 
"<p><b>Error: ".mysql_error()."</b><p>";  
    exit();  
  }  

  echo 
"</form>";  


?> 



</body> 
</html> 

   
 
 автор: sitkar   (07.11.2007 в 10:53)   письмо автору
 
   для: Dimka31   (07.11.2007 в 10:25)
 

проблема в том что сейчас все правильно но с таблицы ничего не вибирается кроме имени страны. У меня таблица такого типа:
id_country integer, country varchar, id_region integer, region varchar, id_city integer, city varchar.
При выборе страны в второй селект не загружается название региона. И никак не могу понять почему

   
 
 автор: Faraon   (07.11.2007 в 11:08)   письмо автору
 
   для: sitkar   (07.11.2007 в 10:53)
 

так не пробовали

$reg = mysql_query("select * from vsi WHERE id_country=$_POST[countr_in]");  
  $ci = mysql_query("select * from vsi WHERE id_region=$_POST[region_in]"); 

   
 
 автор: sitkar   (07.11.2007 в 11:25)   письмо автору
 
   для: Faraon   (07.11.2007 в 11:08)
 

Пробовал выдает такую ошибку:
Notice: Undefined index: countr_in in d:\project\www\31.php on line 31

   
 
 автор: sim5   (07.11.2007 в 11:18)   письмо автору
 
   для: sitkar   (07.11.2007 в 10:53)
 

Что прямо так и пишите: id_country='countr_in' ? Может $countr_in, да и в кавычки обрамить правильно.

   
 
 автор: sitkar   (07.11.2007 в 11:30)   письмо автору
 
   для: sim5   (07.11.2007 в 11:18)
 

Вот сделал как вы сказали все равно не выходит

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
</head>

<body>

<?php
include "connect.php"
$count mysql_query("select * from vsi"); 
if(
$count

echo 
"<form action='' method='post'>";
  echo 
"<select name='countr_in[]' >"
   while(
$List mysql_fetch_array($count)) 
  { 
    echo 
"<option value=".$List['id_country'].">".$List['country']."</OPTION><br>"
  } 
echo 
"</select><br><br>";

else 

  echo 
"<p><b>Error: ".mysql_error()."</b><p>"
  exit(); 

 
 

$reg mysql_query("select * from vsi WHERE id_country='$countr_in'");
if(
$reg

 echo 
"<select name='region_in[]'>";
  echo 
"<option value=".$Lit['id_region'].">".$Lit['region']."</OPTION><br>";  
     while(
$Lit mysql_fetch_array($reg)) 
  
echo 
"</select><br><br>";

else 

  echo 
"<p><b>Error: ".mysql_error()."</b><p>"
  exit(); 


$ci mysql_query("select * from vsi WHERE id_region='$region_in'");
if(
$ci

  echo 
"<select name='city_in[]'>"
    echo 
"<option value=".$Lis['id_city'].">".$Lis['city']."</OPTION><br>";
      while(
$Lis mysql_fetch_array($ci)) 
  
echo 
"</select><br><br><input type='submit' value='Пошук'>";
}
else 

  echo 
"<p><b>Error: ".mysql_error()."</b><p>"
  exit(); 


echo 
"</form>"
 

?>



</body>
</html>

   
 
 автор: Faraon   (07.11.2007 в 11:35)   письмо автору
 
   для: sitkar   (07.11.2007 в 11:30)
 

Выключен register_globals, пропишите явно $_POST[region_in]

   
 
 автор: sitkar   (07.11.2007 в 11:41)   письмо автору
 
   для: Faraon   (07.11.2007 в 11:35)
 

Сделал но все равно ошибка в 31 строке


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
</head>

<body>

<?php
include "connect.php"
$count mysql_query("select * from vsi"); 
if(
$count

echo 
"<form action='' method='post'>";
  echo 
"<select name='countr_in[]' >"
   while(
$List mysql_fetch_array($count)) 
  { 
    echo 
"<option value=".$List['id_country'].">".$List['country']."</OPTION><br>"
  } 
echo 
"</select><br><br>";

else 

  echo 
"<p><b>Error: ".mysql_error()."</b><p>"
  exit(); 

 
 

$reg mysql_query("select * from vsi WHERE id_country='$_POST[countr_in]'");
if(
$reg

 echo 
"<select name='region_in'>";
  echo 
"<option value=".$Lit['id_region'].">".$Lit['region']."</OPTION><br>";  
     while(
$Lit mysql_fetch_array($reg)) 
  
echo 
"</select><br><br>";

else 

  echo 
"<p><b>Error: ".mysql_error()."</b><p>"
  exit(); 


$ci mysql_query("select * from vsi WHERE id_region='$_POST[region_in]'");
if(
$ci

  echo 
"<select name='city_in[]'>"
    echo 
"<option value=".$Lis['id_city'].">".$Lis['city']."</OPTION><br>";
      while(
$Lis mysql_fetch_array($ci)) 
  
echo 
"</select><br><br><input type='submit' value='Пошук'>";
}
else 

  echo 
"<p><b>Error: ".mysql_error()."</b><p>"
  exit(); 


echo 
"</form>"
 

?>



</body>
</html>

   
 
 автор: Faraon   (07.11.2007 в 12:20)   письмо автору
 
   для: sitkar   (07.11.2007 в 11:41)
 

замените

echo "<option value=".$Lit['id_region'].">".$Lit['region']."</OPTION><br>";
     while($Lit = mysql_fetch_array($reg))

на

  while($Lit = mysql_fetch_array($reg)) {
  echo "<option value=".$Lit['id_region'].">".$Lit['region']."</OPTION><br>";
  }


это

echo "<option value=".$Lis['id_region'].">".$Lis['region']."</OPTION><br>";
     while($Lis = mysql_fetch_array($ci))

на

while($Lis = mysql_fetch_array($ci)) {
    echo "<option value=".$Lis['id_city'].">".$Lis['city']."</OPTION><br>";
 }

   
 
 автор: sitkar   (07.11.2007 в 12:46)   письмо автору
 
   для: Faraon   (07.11.2007 в 12:20)
 

не помогло



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
</head>

<body>

<?php
include "connect.php"
$count mysql_query("select * from vsi"); 
if(
$count

echo 
"<form action='' method='post'>";
  echo 
"<select name='countr_in[]' >"
   while(
$List mysql_fetch_array($count)) 
  { 
    echo 
"<option value=".$List['id_country'].">".$List['country']."</OPTION><br>"
  } 
echo 
"</select><br><br>";

else 

  echo 
"<p><b>Error: ".mysql_error()."</b><p>"
  exit(); 

 
 

$reg mysql_query("select * from vsi WHERE id_country='$_POST[countr_in]'");
if(
$reg

 echo 
"<select name='region_in'>";
  while(
$Lit mysql_fetch_array($reg)) { 
  echo 
"<option value=".$Lit['id_region'].">".$Lit['region']."</OPTION><br>"
  }
  
echo 
"</select><br><br>";

else 

  echo 
"<p><b>Error: ".mysql_error()."</b><p>"
  exit(); 


$ci mysql_query("select * from vsi WHERE id_region='$_POST[region_in]'");
if(
$ci

  echo 
"<select name='city_in[]'>"
    while(
$Lis mysql_fetch_array($ci))
     { 
    echo 
"<option value=".$Lis['id_city'].">".$Lis['city']."</OPTION><br>"
       }
  
echo 
"</select><br><br><input type='submit' value='Пошук'>";
}
else 

  echo 
"<p><b>Error: ".mysql_error()."</b><p>"
  exit(); 


echo 
"</form>"
 

?>



</body>
</html>

   
 
 автор: Faraon   (07.11.2007 в 12:53)   письмо автору
 
   для: sitkar   (07.11.2007 в 12:46)
 

А у Вас все эти данные хранятся в одной таблице vsi ?
Интересно было бы посмотреть ее структуру, и взаимосвязи полей

   
 
 автор: sitkar   (07.11.2007 в 13:00)   письмо автору
 
   для: Faraon   (07.11.2007 в 12:53)
 

Хорошо я счас попробую дамп сделать, если не выйдет тогда пропишу здесь структуру таблицы

   
 
 автор: sitkar   (07.11.2007 в 13:12)   письмо автору
 
   для: Faraon   (07.11.2007 в 12:53)
 

Я прикрепляю всю базу целиком она маленькая там все 3 строчки для теста

   
 
 автор: Faraon   (07.11.2007 в 13:29)   письмо автору
 
   для: sitkar   (07.11.2007 в 13:12)
 

Да-а интересно и что из этих файлов можно увидеть, давайте дамп таблицы

   
 
 автор: sitkar   (07.11.2007 в 14:29)   письмо автору
 
   для: Faraon   (07.11.2007 в 13:29)
 

У меня не получаэтся сделать дамп. Я пробую майскюелдампом делать а он ничего не делает. Чем еще посоветуете.

   
 
 автор: sitkar   (07.11.2007 в 14:44)   письмо автору
 
   для: Faraon   (07.11.2007 в 13:29)
 

Вот что у меня получилось сделать с помощью phpmyadmin

   
 
 автор: Faraon   (07.11.2007 в 15:40)   письмо автору
 
   для: sitkar   (07.11.2007 в 14:44)
 

Сложно от вас нормальный дамп получить
Вы можете в PhpMy Admin`e выбрать таблицу, нажать кнопку "Экспорт" и затем просто ничего не выбирая кнопку "Пошел" и то что выгрузилось, скопировать и вставить как текст в пост

   
 
 автор: sitkar   (07.11.2007 в 15:50)   письмо автору
 
   для: Faraon   (07.11.2007 в 15:40)
 

Извените меня пожалуйста, мне всего 13 лет, поэтому я так долго во всем разбираюс.


CREATE TABLE IF NOT EXISTS `vsi` (
  `id_country` int(11) default NULL,
  `country` varchar(20) default NULL,
  `id_region` int(11) default NULL,
  `region` varchar(20) default NULL,
  `id_city` int(11) default NULL,
  `city` varchar(20) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


   
 
 автор: Faraon   (07.11.2007 в 16:08)   письмо автору
 
   для: sitkar   (07.11.2007 в 15:50)
 

Вот че я в вашем скрипте пропустил,
зачем вы в селекте имя обозначаете как массив???
"<select name='countr_in[]' >
эаместо name=countr_in[], просто пишите countr_in
и так во всех селектах

   
 
 автор: sitkar   (07.11.2007 в 16:25)   письмо автору
 
   для: Faraon   (07.11.2007 в 16:08)
 

ВСЕ РАБОТАЕТ!!! ОГРОМНОЕ ВАМ СПАСИБО!!!!!!!!!! С МЕНЯ ПРЕЧЕТАЕТСЯ!!!!!!

   
 
 автор: KPETuH   (07.11.2007 в 11:37)   письмо автору
 
   для: sitkar   (07.11.2007 в 11:30)
 

ребята ну совесть то имейте если беретесь писать программы ознакомтесь хотя бы с основами... что такое переменная, как она обозначается види и типы переменных.... и тд...

   
 
 автор: sitkar   (07.11.2007 в 11:44)   письмо автору
 
   для: KPETuH   (07.11.2007 в 11:37)
 

Пордскажите пожалуйста что я не так сделал

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования