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

Форум MySQL

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

 

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

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

тема: Как вывести 2 таблицы из одной базы данных MySQL на одной странице
 
 автор: antosha23   (15.02.2011 в 23:26)   письмо автору
 
 

всем доброго вечерка, подскажите пожалуйста как Как вывести 2 таблицы из одной базы данных MySQL на одной странице. Пробовал, вот это
тот код

Код:
$result4=mysql_query( "SELECT id,title,description,mini_img,view,date,author, rub FROM lessons, weblessons WHERE lessons.id= weblessons.id_id ORDER BY date DESC, id DESC LIMIT 10", $db );
ничего не получается . пишет ошибку вот эту
Запрос на выборку данных из базы не прошел. Напишите об этом администратору antosha2027@gmail.com.
код ошибки:
Table 'blog.weblesoons' doesn't exist
помогите пожалуйста

  Ответить  
 
 автор: cheops   (16.02.2011 в 00:06)   письмо автору
 
   для: antosha23   (15.02.2011 в 23:26)
 

У вас таблицы weblesoons нет в базе данных blog, имя таблицы указано верно?

  Ответить  
 
 автор: antosha23   (16.02.2011 в 00:12)   письмо автору
55.1 Кб
 
   для: cheops   (16.02.2011 в 00:06)
 

weblessons
вот дам бд

  Ответить  
 
 автор: antosha23   (16.02.2011 в 01:06)   письмо автору
 
   для: antosha23   (16.02.2011 в 00:12)
 

вот верно помогите плиз

  Ответить  
 
 автор: cheops   (16.02.2011 в 04:29)   письмо автору
 
   для: antosha23   (16.02.2011 в 00:12)
 

По прежнему выводится сообщение об ошибке "Table 'blog.weblesoons' doesn't exist"? А база данных blog выбрана? Каким образом осуществляете соединение с MySQL (можете привести этот участок кода)?

  Ответить  
 
 автор: antosha23   (16.02.2011 в 10:50)   письмо автору
 
   для: cheops   (16.02.2011 в 04:29)
 

я написал как правильно weblessons

  Ответить  
 
 автор: Trianon   (16.02.2011 в 10:55)   письмо автору
 
   для: antosha23   (16.02.2011 в 10:50)
 

Теперь зайдите в собственный скрипт(ы) и во всех SQL-запросах проверьте написание названия этой таблицы.
Ну ведь ясно же, что в одном из них опечатались.

можно даже поиск неправильного варианта имени сделать - тут же всё выяснится.

  Ответить  
 
 автор: antosha23   (16.02.2011 в 10:57)   письмо автору
 
   для: Trianon   (16.02.2011 в 10:55)
 

weblessons

  Ответить  
 
 автор: Trianon   (16.02.2011 в 11:22)   письмо автору
 
   для: antosha23   (16.02.2011 в 10:57)
 

parrot mode on?

  Ответить  
 
 автор: cheops   (16.02.2011 в 11:32)   письмо автору
 
   для: antosha23   (16.02.2011 в 10:57)
 

У вас в запросе вместо weblessons написано weblesoons.

  Ответить  
 
 автор: antosha23   (16.02.2011 в 11:33)   письмо автору
 
   для: cheops   (16.02.2011 в 11:32)
 

я же написал как правильно

  Ответить  
 
 автор: cheops   (16.02.2011 в 11:40)   письмо автору
 
   для: antosha23   (16.02.2011 в 11:33)
 

Это понятно, я лишь хотел обратить внимание на то, что сообщает MySQL в сообщении об ошибке
"Table 'blog.weblesoons' doesn't exist"
Если у вас по прежнему выводится это сообщение, то необходимо исправить название таблицы в SQL-запросе.

  Ответить  
 
 автор: antosha23   (16.02.2011 в 11:42)   письмо автору
 
   для: cheops   (16.02.2011 в 11:40)
 

вместо o напишите s

  Ответить  
 
 автор: cheops   (16.02.2011 в 11:45)   письмо автору
 
   для: antosha23   (16.02.2011 в 11:42)
 

Так какую ошибку сейчас выводит СУБД?

PS Проблема до сих пор актуальна?

  Ответить  
 
 автор: antosha23   (16.02.2011 в 11:47)   письмо автору
 
   для: cheops   (16.02.2011 в 11:45)
 

Запрос на выборку данных из базы не прошел. Напишите об этом администратору antosha2027@gmail.com.
код ошибки:
Column 'id' in field list is ambiguous

  Ответить  
 
 автор: cheops   (16.02.2011 в 11:52)   письмо автору
 
   для: antosha23   (16.02.2011 в 11:47)
 

Ага. Дело в том, что у вас в списке выборки после ключевого слова SELECT идет поле id, который одинаково называется в обеих таблицах, нужно использовать для него расширенное имя, указав в начале одну из таблиц, например lessons.id. Вообще хорошо бы это сделать для всех остальных выбираемых полей - это позволит в дальнейшем исключить как класс этот вид ошибок.
SELECT lessons.id, title, description, mini_img, view, date, author, rub 
FROM lessons, weblessons 
WHERE lessons.id= weblessons.id_id 
ORDER BY date DESC, id DESC 
LIMIT 10

  Ответить  
 
 автор: antosha23   (16.02.2011 в 12:04)   письмо автору
 
   для: cheops   (16.02.2011 в 11:52)
 

увы не выводятся данные со второй таблицы даже прописал вот так
 $result4=mysql_query( "SELECT lessons.id,
lessons.title, 
lessons.description, 
lessons.mini_img, 
lessons.view, 
lessons.date, 
lessons.author, 
lessons.rub  
FROM lessons, weblessons 
WHERE lessons.id= weblessons.id 
ORDER BY date DESC, id DESC 
LIMIT 10", $db );

ничего не происходит

  Ответить  
 
 автор: cheops   (16.02.2011 в 12:23)   письмо автору
 
   для: antosha23   (16.02.2011 в 12:04)
 

Если выполнить этот запрос применительно к дампу из вашего второго сообщения, то выводится две записи. После вызова функции mysql_query() вы в дальнейшем как обрабатывате результирующую таблицу (может там уже какой-то сбой происходит)?

  Ответить  
 
 автор: antosha23   (16.02.2011 в 13:31)   письмо автору
 
   для: cheops   (16.02.2011 в 12:23)
 

вот весь запрос
<?php 
$result4
=mysql_query"SELECT id,title, description,mini_img, view, date, author, rub FROM lessons ORDER BY date DESC, id DESC LIMIT 10"$db );
if (!
$result4)
{
    echo
"<p > Запрос на выборку данных из базы  не прошел.  Напишите об  этом администратору antosha2027@gmail.com.<br><strong>код ошибки:</strong></p>";
    exit(
mysql_error());
}
    if (
mysql_num_rows($result4)>0)
{
    
$myrow4=mysql_fetch_array($result4);
do 
    {
$date $myrow4["date"];   
list(
$year$month$day) = explode("-"$date); // Или сразу, за мес{$date = $myrow["date"];   
list($year$month$day) = explode("-"$date); // Или сразу, за место $date, поставить $myrow["date"]
$date "$day.$month.$year"// Дата в новом формате
 
printf("<table class='post_lesons'>
  <tr>
    <td valign='top'>
    <div id='post_les' ><a href='lessons.php?id=%s'>%s</a></div>
    <div id='border_bottom'></div>
     <span class='otstup'><span class='author_desc'>Автор/переводчик:</span >&nbsp;<span class='author'>%s</span><br>
    &nbsp; <span class='post_date'> дата публикации:&nbsp;
$date</span>&nbsp;&nbsp;<span id='post_view'>просмотров: %s</span></span>
            <div class='mini_img'><img src='%s'></div> 
            <div class='post_desc'>%s</div>
 </td>
  </tr>
</table> "
,$myrow4["id"] ,$myrow4["title"],$myrow4["author"],$myrow4["view"],$myrow4["mini_img"],$myrow4["description"] );
    }
    while    (
$myrow4=mysql_fetch_array($result4));
}
else 
    {echo
"<p>Информация по запросу не может быть выбранна в  таблице нет записей.</p>";
    exit();    
    }
?>

  Ответить  
 
 автор: cheops   (16.02.2011 в 13:40)   письмо автору
 
   для: antosha23   (16.02.2011 в 13:31)
 

А что выводит? "Информация по запросу не может быть выбранна в таблице нет записей."?

Кстати, тут используется другой SQL-запрос, в двух-табличном запросе вместо $myrow4["id"] нужно будет использовать элементы вида $myrow4["lessons.id"] или воспользоваться конструкцией AS, чтобы переименовать столбцы.

PS Кстати вместо конструкции do ... while(), которая требует двух вызов mysql_fetch_array(), обыно используется просто конструкция while() - это позволяет обойтись одним вызовом mysql_fetch_array().

  Ответить  
Rambler's Top100
вверх

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