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

Форум MySQL

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

 

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

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

тема: Вывод данных
 
 автор: lexal   (23.06.2006 в 10:41)   письмо автору
 
 

У меня не выодятся данные, помогите пожалуста
Вот скрипт который я использую:

<form method=post> 
<input name='name'> 
<input type=submit value="Search"> 
</form> 

Записанные ообщения: 

<?php  
$_POST
['name'] = mysql_escape_string($_POST['name']); 
  require_once(
"config.php");  
  
$query "SELECT * FROM $_POST[name]"
  
$_POST['name'] = mysql_query($query); 
  if(!
$_POST['name']) exit(mysql_error()); 
  if(
mysql_num_rows($_POST['name'])) 
  { 
    while(
$table mysql_fetch_array($_POST['name'])) 
    { 
       echo 
$table['field']."<br>"
    } 
  } 
?> 

   
 
 автор: valenok   (23.06.2006 в 10:46)   письмо автору
 
   для: lexal   (23.06.2006 в 10:41)
 



<form method=post> 
<input name='name'> 
<input type=submit value="Search"> 
</form> 

Записанные ообщения: 

<?php 
$n 
mysql_escape_string($_POST['name']); 
  require_once(
"config.php");   
  
$query "SELECT * FROM ".$n
  
$quer mysql_query($query); 
  if(!empty(
mysql_error())){die(mysql_error(););}
  if(
mysql_num_rows($quer)<0) {die();}
  
    while(
$table mysql_fetch_array($quer)) 
    { 
       echo 
$table['field']."<br>"
    } 
  
?>

[поправлено модератором]

   
 
 автор: lexal   (23.06.2006 в 10:50)   письмо автору
 
   для: valenok   (23.06.2006 в 10:46)
 

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /usr/local/www/адрес.ru/WWW/reading.php on line 20
20 строка:

  echo $table['field']."<br>";

   
 
 автор: valenok   (23.06.2006 в 11:24)   письмо автору
 
   для: lexal   (23.06.2006 в 10:50)
 

Чтото тут я ошибки не вижу..
А строки 18-22 можно?
Это теже что и у меня?

   
 
 автор: cheops   (23.06.2006 в 11:32)   письмо автору
 
   для: lexal   (23.06.2006 в 10:41)
 

А они имеются в таблице $_POST[name] - какова структура этой таблицы? В ней есть поле field?

   
 
 автор: lexal   (23.06.2006 в 11:34)   письмо автору
 
   для: cheops   (23.06.2006 в 11:32)
 

да помоему

   
 
 автор: valenok   (23.06.2006 в 11:35)   письмо автору
 
   для: cheops   (23.06.2006 в 11:32)
 

To lexal: "по моему" - это не хорошо
To cheops: А он не должен выдать undefined index 'field'
А не синтакс ерор..

   
 
 автор: lexal   (23.06.2006 в 11:39)   письмо автору
 
   для: valenok   (23.06.2006 в 11:35)
 

Fatal error: Can't use function return value in write context in /usr/local/www/адрес.ru/WWW/reading.php on line 15
когда я использовал:

<form method=post> 
<input name='name'> 
<input type=submit value="Search"> 
</form> 

Записанные ообщения: 

<?php  
$_POST
['name'] = mysql_escape_string($_POST['name']); 
  require_once(
"config.php");  
  
$query "SELECT * FROM $_POST[name]"
  
$_POST['name'] = mysql_query($query); 
  if(!
$_POST['name']) exit(mysql_error()); 
  
?> 
\
15 строка:

 if(!$_POST['name']) exit(mysql_error()); 

   
 
 автор: lexal   (23.06.2006 в 11:40)   письмо автору
 
   для: lexal   (23.06.2006 в 11:39)
 

не то

   
 
 автор: lexal   (23.06.2006 в 11:43)   письмо автору
 
   для: lexal   (23.06.2006 в 11:40)
 

Fatal error: Can't use function return value in write context in /usr/local/www/testing.na.ru/WWW/reading.php on line 15
приэтом коде:


<form method=post> 
<input name='name'> 
<input type=submit value="Search"> 
</form> 

Записанные ообщения: 

<?php 
$n 
mysql_escape_string($_POST['name']); 
  require_once(
"config.php");    
  
$query "SELECT * FROM ".$n
  
$quer mysql_query($query); 
  if(!empty(
mysql_error())){die(mysql_error(););} 
  if(
mysql_num_rows($quer)<0) {die();} 
   
    while(
$table mysql_fetch_array($quer)) 
    { 
       echo 
$table['field']."<br>"
    } 
   
?> 

15 строка:

  if(!empty(mysql_error())){die(mysql_error(););} 

   
 
 автор: valenok   (23.06.2006 в 11:44)   письмо автору
 
   для: lexal   (23.06.2006 в 11:43)
 


{die(mysql_error());}

Там была лишняя точка с запятой.

   
 
 автор: lexal   (23.06.2006 в 11:45)   письмо автору
 
   для: valenok   (23.06.2006 в 11:44)
 

а, точно, ща посмотрю

   
 
 автор: lexal   (23.06.2006 в 11:48)   письмо автору
 
   для: lexal   (23.06.2006 в 11:45)
 

непомогло

   
 
 автор: cheops   (23.06.2006 в 11:47)   письмо автору
 
   для: lexal   (23.06.2006 в 11:39)
 

Что вы вводите в качестве $_POST[name]?
Выведите SQL-запрос в окно браузера
<?php
  
echo "SELECT * FROM $_POST[name]";
?>

   
 
 автор: lexal   (23.06.2006 в 11:50)   письмо автору
 
   для: cheops   (23.06.2006 в 11:47)
 

$_POST[name] - имя табляцы, которое задаёт юзер

   
 
 автор: cheops   (23.06.2006 в 11:54)   письмо автору
 
   для: lexal   (23.06.2006 в 11:50)
 

Какое имя задаёте вы? Вам следует очень жёсткую проверку осуществлять, так как если будет введено имя не существующей таблицы - скрипт завершится ошибкой. Какова цель разрабатываемого скрипта?

   
 
 автор: lexal   (23.06.2006 в 12:00)   письмо автору
 
   для: cheops   (23.06.2006 в 11:54)
 

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

   
 
 автор: cheops   (23.06.2006 в 12:30)   письмо автору
 
   для: lexal   (23.06.2006 в 12:00)
 

Можно воспользоваться следующим скриптом
<?php
  
if(!empty($_GET['no_table'])) echo "Таблица не существует, попробуйте другое имя<br>";
?>
<form method=post> 
<input name='name'> 
<input type=submit value="Search"> 
</form> 
<?php 
  
if(!empty($_POST))
  {
    
// Устанавливаем соединение с базой данных
    
require_once("config.php");   
    
// Экранируем спец-символы
    
if (!get_magic_quotes_gpc())
    {
      
$_POST['name'] = mysql_escape_string($_POST['name']); 
    }
    
// Проверяем имеется ли такая таблица в базе данных
    
$query "SHOW TABLES LIKE '$_POST[name]'";
    
$tbl mysql_query($query);
    if(!
$tbl)
    {
      
// Возвращаемся к форме, сообщая, что таблицы нет
      
echo "<HTML><HEAD>
            <META HTTP-EQUIV='Refresh' CONTENT='0; URL=
$_SERVER[PHP_SELF]?no_table=no_table'>
            </HEAD></HTML>"
;
      exit();
    }
    
$query "SELECT * FROM $_POST[name]"
    
$tbl mysql_query($query); 
    if(!
$tbl) exit("ошибка".mysql_error()); 
    if(
mysql_num_rows($tbl)) 
    { 
      echo 
"Записанные сообщения<br>";
      while(
$table mysql_fetch_array($tbl)) 
      { 
         
// Поле field - должно обязательно присутствовать в таблице
         
echo "Поле field - ".$table['field']."<br>"
      } 
    } 
  }
?>

   
 
 автор: lexal   (23.06.2006 в 13:14)   письмо автору
 
   для: cheops   (23.06.2006 в 12:30)
 

Записанные сообщения
Поле field -

это он пишет когда я ввожу имя таблицы

   
 
 автор: valenok   (23.06.2006 в 13:26)   письмо автору
 
   для: lexal   (23.06.2006 в 13:14)
 

Значит таблица пустая.

   
 
 автор: lexal   (23.06.2006 в 13:45)   письмо автору
 
   для: valenok   (23.06.2006 в 13:26)
 

но при заполнении он пишет типа всё ок, данные знесены

   
 
 автор: lexal   (23.06.2006 в 13:48)   письмо автору
 
   для: lexal   (23.06.2006 в 13:45)
 

конечно стоило бы проверить табрицу, но у меня phpMyAdmin отказывается работать

   
 
 автор: cheops   (23.06.2006 в 14:52)   письмо автору
 
   для: lexal   (23.06.2006 в 13:14)
 

В таблице точно имеется поле field?

   
 
 автор: lexal   (23.06.2006 в 17:43)   письмо автору
 
   для: cheops   (23.06.2006 в 14:52)
 

Да, точно, посмотрел

   
 
 автор: cheops   (23.06.2006 в 23:36)   письмо автору
 
   для: lexal   (23.06.2006 в 17:43)
 

А есть возможность воспользоваться другим клиентом mysql.exe или MySQL-Front, для проверки запроса?

   
 
 автор: lexal   (24.06.2006 в 12:51)   письмо автору
 
   для: cheops   (23.06.2006 в 23:36)
 

у меня тока phpMyAdmin

   
 
 автор: valenok   (24.06.2006 в 12:58)   письмо автору
 
   для: lexal   (24.06.2006 в 12:51)
 

А ты много платишь за трафик?
Скачал бы давно..

   
 
 автор: cheops   (24.06.2006 в 13:25)   письмо автору
 
   для: lexal   (24.06.2006 в 12:51)
 

А в phpMyAdmin посмотрите, после оператора INSERT появляются записи? Т.е. таблица не пустая сейчас?

   
 
 автор: cheops   (23.06.2006 в 11:55)   письмо автору
 
   для: valenok   (23.06.2006 в 11:35)
 

>To cheops: А он не должен выдать undefined index 'field'
>А не синтакс ерор..
Смотря как настроено, если php.ini не изменялся, то да, должно бы...

   
 
 автор: Crazy.Fox   (27.06.2006 в 10:21)   письмо автору
 
   для: cheops   (23.06.2006 в 11:55)
 

Попробуй так,может поможет, привожу на своём примере.

<?
@mysql_connect("$cfconf5""$cfconf6""$cfconf7") or die("Нет связи с сервером БД!");
@
mysql_select_db("$cfconf6") or die("Нет связи с БД!");
$snew4="SELECT nname,nnew FROM hr_news WHERE nid = $new";
$snew5 mysql_query($snew4);
$tpn2 0;
while (
$tpn2 mysql_numrows($snew5)) :
$nv4 mysql_result($snew5$tpn2'nname');
$nv5 mysql_result($snew5$tpn2'nnew');
$tpn2++;
echo
"
<FIELDSET>
<LEGEND><b>&laquo; 
$nv4 &raquo;</b></LEGEND>
<br><table border='0' width='100%'>
<tr>
<td width='589'>
<p align='center'><i>
$nv5</i></p>
</td>
</tr>
</table><center>
__________________________________<br>
<b><A HREF='javascript:history.back()'>&laquo; в раздел новостей &raquo;</a></b></center><br>
</FIELDSET>
"
;endwhile;
mysql_close();
?>

   
Rambler's Top100
вверх

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