Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » php, mysql: вопросы по оптимизации

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Код не работает, не выводит данные из таблицы, как переделать его?  

для начала посмотреть результат
$qr_result = mysql_query(... ваш запрос ...) or die(mysql_error());
выдаст ли какое то сообщение об ошибке

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 10:29 21-01-2014
LordMicro



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
entelexiya77
Во-первых используй идентификатор коннекта к базе.

Цитата:
$qr_result = mysql_query('SELECT * FROM  aent_ostatok WHERE Kontragent = "' . mysql_real_escape_string($Kontragent) . '"', $connect_to_db);

 
Во-вторых, скрипт совсем не выводит или выводит пустые строки?
Я к чему, sql-запросу пофик на то как ты напишешь название столбца... Kontragent, да хоть так: KontrAGENT... они у него всё равно в одном регистре хранятся. А вот когда ты выводишь через
Цитата:
$row = mysql_fetch_assoc(...
, то в $row имеет значение регистр названия. То есть возможно у тебя там есть
Цитата:
$row['kontragent']
, но нет
Цитата:
$row['Kontragent']
.
 
Есть три варианта решения проблемы.
 
1) Использовать везде один регистр, например строчный.
2) Явно указывать что запрашиваешь:

Цитата:
$qr_result = mysql_query('SELECT `Name` as `Name`, `Kontragent` as `Kontragent`, `Dogovor` as `Dogovor` FROM  aent_ostatok WHERE Kontragent = "' . mysql_real_escape_string($Kontragent) . '"', $connect_to_db);

Тогда на выходе ты получишь свои
Цитата:
$row['Name'], $row['Kontragent'], $row['Dogovor']

3) Использовать mysql_fetch_row:

Цитата:
$qr_result = mysql_query('SELECT `Name`, `Kontragent`, `Dogovor` FROM  aent_ostatok WHERE Kontragent = "' . mysql_real_escape_string($Kontragent) . '"', $connect_to_db);


Цитата:
       while($row = mysql_fetch_row($qr_result)){
          echo '<tr>';
          echo '<td>' . $row[0] . '</td>';
          echo '<td>' .$row[1]. '</td>';
          echo '<td>' .$row[2]. '</td>';
          echo '</tr>';
       }
 

P.S. В целом посмотри что у тебя там происходит:

Цитата:
 
$qr_result = mysql_query('SELECT * FROM  aent_ostatok WHERE Kontragent = "' . mysql_real_escape_string($Kontragent) . '"', $connect_to_db);
echo '<pre>';
while($row = mysql_fetch_assoc($qr_result)) {
var_dump($row);
}
echo '</pre>';
 

Всего записей: 141 | Зарегистр. 17-02-2006 | Отправлено: 10:55 21-01-2014
entelexiya77



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Есть три варианта решения проблемы.  

Извиняюсь, но не разобралься. Кажеться у меня не получает данные из этой формы:

Код:
 
<form method='post' action='action.php'>
   <p><select size="1">
    <option disabled>Выберите имя</option>
    <?php header('Content-type: text/html; charset=utf-8');
    while($object = mysql_fetch_object($result_select))>
    <option name='Name' value ="<?=$object->Name?>"><?=$object->Name?></option>
    <?php endwhile;?>
   </select></p>
   <p><input type=submit value=Отправить></p>
  </form>
 

По этой форме у меня два вопроса:
1. action.php получает значение которое option name='Name'?
2. Русские буквы не показывает, как сделать чтобы показывал?
 

Цитата:
2) Явно указывать что запрашиваешь:  

Я хочу все столбцы выташить, потом таблицу разширю.
 

Цитата:
Во-вторых, скрипт совсем не выводит или выводит пустые строки?  

совсем не выводит, пустых строк нету.
 
А вот в action.php
Name Kontragent Dogovor это столбцы в таблице же?
 

Код:
 
$Kontragent = $_POST['Name'];
        // соединяемся с сервером базы данных
        $connect_to_db = mysql_connect($db_host, $db_username, $db_password)
          or die("Could not connect: " . mysql_error());
      
        // подключаемся к базе данных
        mysql_select_db($db_name, $connect_to_db)
          or die("Could not select DB: " . mysql_error());
      
    // выбираем все значения из таблицы "Contacts"
        
        $qr_result = mysql_query('SELECT * FROM  aent_ostatok WHERE Kontragent = "' . mysql_real_escape_string($Kontragent) . '"', $connect_to_db);  
        
        // выводим на страницу сайта заголовки HTML-таблицы
        echo '<table border="1">';
       echo '<thead>';
       echo '<tr>';
       echo '<th>Имя</th>';
       echo '<th>Телефон</th>';
       echo '<th>E-Mail</th>';
       echo '</tr>';
       echo '</thead>';
       echo '<tbody>';
        
       // выводим в HTML-таблицу все данные клиентов из таблицы MySQL
       while($row = mysql_fetch_row($qr_result)){
          echo '<tr>';
          echo '<td>' . $row['Name'] . '</td>';  
          echo '<td>' .$row['Kontragent']. '</td>';
          echo '<td>' .$row['Dogovor']. '</td>';
          echo '</tr>';
       }
        
        echo '</tbody>';
       echo '</table>';
      
        // закрываем соединение с сервером  базы данных
        mysql_close($connect_to_db);
 
 

 
Напишите что да как надо сделать, пожалуйста.
 
 
Добавлено:
А вообще можно это все в одну страницу записать, ну после выбора и после нажатия кнопки показывался вот эта таблица?  
 
Добавлено:
Ребята помогите, мне еще вверх таблицы надо вставить Open flash chart диаграмму, и логи показать на сайте.  
В долгу не останусь, материально помогу на онлайн кошелек.  
скайп entelexiya
 
Добавлено:

Цитата:
$qr_result = mysql_query(... ваш запрос ...) or die(mysql_error());
выдаст ли какое то сообщение об ошибке

Ошибок нету, проверил.

Всего записей: 73 | Зарегистр. 20-05-2012 | Отправлено: 11:25 21-01-2014 | Исправлено: entelexiya77, 11:46 21-01-2014
LordMicro



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
entelexiya77
У option не может быть атрибут name. Он должен быть у select.
То есть так:

Код:
 
<form method='post' action='action.php'>  
   <p><select size="1" name='Name'>  
    <option disabled>Выберите имя</option>  
    <?php header('Content-type: text/html; charset=utf-8');  
    while($object = mysql_fetch_object($result_select))>  
    <option value ="<?=$object->Name?>"><?=$object->Name?></option>  
    <?php endwhile;?>  
   </select></p>  
   <p><input type=submit value=Отправить></p>  
  </form>  
 

 
Читай внимательно: http://www.w3schools.com/tags/tag_select.asp
или на русском: http://htmlbook.ru/html/select

Всего записей: 141 | Зарегистр. 17-02-2006 | Отправлено: 13:16 21-01-2014
entelexiya77



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
То есть так:  

Ребята все равно не работает.
 
Добавлено:

Цитата:
$qr_result = mysql_query('SELECT * FROM  aent_ostatok WHERE Kontragent = "' . mysql_real_escape_string($Kontragent) . '"', $connect_to_db);  

а как написать что если данных нету то ошибку что данных нету.
и чтобы дальше таблицу не выводил.

Всего записей: 73 | Зарегистр. 20-05-2012 | Отправлено: 14:46 21-01-2014
LordMicro



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
entelexiya77
Так, до вопросов детского сада я опускаться не буду. Скажу просто: используй var_dump.
 
Если мой совет не поможет, то тебе сюда: http://forum.ru-board.com/topic.cgi?forum=24&topic=2604 или покупай учебник PHP и читай раздел диагностики.

Всего записей: 141 | Зарегистр. 17-02-2006 | Отправлено: 15:00 21-01-2014
entelexiya77



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята последний вопрос

Цитата:
mysql_query('SELECT * FROM  aent_ostatok WHERE Kontragent = "' . mysql_real_escape_string($Kontragent) . '"',

 

Цитата:
Во-вторых, скрипт совсем не выводит или выводит пустые строки?  

 
Без условия выводит пустой список, как его нормально показать?

Всего записей: 73 | Зарегистр. 20-05-2012 | Отправлено: 16:07 21-01-2014
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
entelexiya77

Цитата:
Без условия выводит пустой список, как его нормально показать?

http://www.php.net/mysql_num_rows
если 0 или false, то запрос ничего не вернул.
 
и забывайте об MySQL - нужно использовать MySQLi или PDO  
 
 
ps: и что значит "пустой" - ничего нет в базе?
while($row = mysql_fetch_row($qr_result)){  
var_dump($row);
}
 
что выводит?  
 
pps:  

Цитата:
while($object = mysql_fetch_object($result_select))>  

должно быть
 
while($object = mysql_fetch_object($result_select)): ?>

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:08 22-01-2014 | Исправлено: Cheery, 03:34 22-01-2014
entelexiya77



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
ps: и что значит "пустой" - ничего нет в базе?
while($row = mysql_fetch_row($qr_result)){  
var_dump($row);
}
 
что выводит?  

выводит значения из Name
 

Цитата:
while($object = mysql_fetch_object($result_select)): ?>

Он таки стоить.

Всего записей: 73 | Зарегистр. 20-05-2012 | Отправлено: 10:38 22-01-2014
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
entelexiya77

Цитата:
выводит значения из Name  

ну, тогда что не так? значения из базы получаются.
 
потому что фраза
Цитата:
Без условия выводит пустой список

не совсем понятна

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 10:39 22-01-2014
entelexiya77



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Без условия выводит пустой список  

Данные в базе то есть, с условием он выводит только таблицу, а без условии он выводит пустую строку типа данные вывел.
Условием я имею ввиду вот эту:

Цитата:
'SELECT * FROM  aent_ostatok WHERE Kontragent = "' . mysql_real_escape_string($Kontragent) . '"', $connect_to_db


Всего записей: 73 | Зарегистр. 20-05-2012 | Отправлено: 11:22 22-01-2014
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
entelexiya77

Цитата:
 а без условии он выводит пустую строку типа данные вывел

что значит "без условия"??
ну нет у нас телепатов, выражайте мысли внятнее.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 11:31 22-01-2014
entelexiya77



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Условием я называю строку в Sql ниже которая

Цитата:
Условием я имею ввиду вот эту:
 
Цитата:
'SELECT * FROM  aent_ostatok WHERE Kontragent = "' . mysql_real_escape_string($Kontragent) . '"', $connect_to_db  

 
без условия 'SELECT * FROM  aent_ostatok;

Всего записей: 73 | Зарегистр. 20-05-2012 | Отправлено: 11:43 22-01-2014 | Исправлено: entelexiya77, 12:00 22-01-2014
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
entelexiya77

Цитата:
SELECT * FROM  aent_ostatok;

не может ничего не вывести, если выводит с условием.
значит в чем то еще ошибаетесь

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 12:27 22-01-2014
entelexiya77



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Заработало наконецто!
Дело было, надо было поменять mysql_fetch_row на mysql_fetch_assoc и дело было ["Kontragent"] в двойных кавычках вместо одинарных
 

Код:
while($row = mysql_fetch_assoc($qr_result)){
          echo '<tr>';
          echo '<td>' . $row["Name"] . '</td>';
          echo '<td>' .$row["Kontragent"]. '</td>';
          echo '<td>' .$row["Dogovor"]. '</td>';
          echo '</tr>';
       }

 
Всем большое спасибо!!!
Извиняюсь если занозил.

Всего записей: 73 | Зарегистр. 20-05-2012 | Отправлено: 12:56 22-01-2014
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
entelexiya77

Цитата:
в двойных кавычках вместо одинарных

не играет роли
 

Цитата:
надо было поменять mysql_fetch_row на mysql_fetch_assoc  

var_dump показывает тип данных - можно было бы обратить внимание

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:59 22-01-2014
entelexiya77



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята с модулем помогите пожалуйста.
Создал модуль из двух страниц:
1 страница. выбираем значение.
2 страница. показываем результат из бд.
Типа отчета.
Когда выбираем значение и нажимаем на кнопку, переход на другую страницу, но Joomla говорит что такой страницы нету.
В чем дело как быть с этим?
Это в xml файле что то надо дописать?
 
 
p.s.  а без Joomla все нормально работает.
Установка и копирование файлов в каталоги все работает, нормально.

Всего записей: 73 | Зарегистр. 20-05-2012 | Отправлено: 08:41 28-01-2014
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
entelexiya77

Цитата:
В чем дело как быть с этим?  
Это в xml файле что то надо дописать?  

искать телепатов, наверное..
откуда мы знаем что и как у вас реализовано?
 
вопросы о модулях Joomla - я уже показал где спрашивать.
если нет, то Портал Joomla (часть 2)
 
потому что как и чем у вас перехватывается URL с Joomlой и без - никто лучше вас знать не может.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 08:48 28-01-2014 | Исправлено: Cheery, 08:49 28-01-2014
entelexiya77



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот именно что в xml файле почти ничего не написано.  
 
 

Код:
 
<files>
                <filename module="mod_ostatok_REZ">mod_ostatok_REZ.php</filename>
                <filename>mod_ostatok_REZ.xml</filename>
                <filename>index.html</filename>        
                <filename>action.php</filename>    
                <folder>tmpl</folder>
                <folder>images</folder>
                <folder>css</folder>
        </files>
        <config>
            <fields name="params">
                <!-- Основные параметры для модуля -->
                <fieldset name="basic">
                    <field name="text" type="text"
                        label="mod_ostatok_REZ_TEXT_FIELD_LABEL"
                        description="mod_ostatok_REZ_TEXT_FIELD_DESC" />    
                </fieldset>
                <!-- Дополнительные параметры для модуля -->
                <fieldset name="advanced">
                    <field name="layout" type="modulelayout"
                        label="JFIELD_ALT_LAYOUT_LABEL"
                        description="JFIELD_ALT_MODULE_LAYOUT_DESC" />                
                </fieldset>
            </fields>
        </config>
 
 

Всего записей: 73 | Зарегистр. 20-05-2012 | Отправлено: 08:58 28-01-2014
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
entelexiya77
я еще раз повторю - с вопросами о Joomla в ту тему.
здесь нет никого, кто бы знал специфику модулей Joomla или ее API
 
так что либо у вас форма получается не с тем action, либо Joomla не знает как обрабатывать тот URI.
здесь вы вряд ли дождетесь ответа.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 09:03 28-01-2014 | Исправлено: Cheery, 09:05 28-01-2014
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Интернет » Web-программирование » php, mysql: вопросы по оптимизации


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru