Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Выборка из разных таблиц

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Выборка из разных таблиц
zorg84
Отправлено: 25 Июня, 2011 - 00:45:09
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Ситуация такая есть база данных в ней две таблицы comments и commentsss мне надо подсчитать количество записей в обеих таблицах обе таблицы одинаковы
id post author text date email




Вот часть кода который считает одну таблицу:

PHP:
скопировать код в буфер обмена
  1. $result01 = mysql_query("SELECT COUNT(*) FROM comments  WHERE post='$id'");        
 
 Top
OrmaJever
Отправлено: 25 Июня, 2011 - 01:02:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT COUNT(c.*) AS count_c, COUNT(cs.*) AS count_cs FROM comments AS c, commentsss AS cs

индексы будут count_c и count_cs


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
zorg84
Отправлено: 25 Июня, 2011 - 01:17:03
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Попробую спасибо!
 
 Top
zorg84
Отправлено: 25 Июня, 2011 - 12:37:44
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Попробовал не чего не получилось



сделал вот так но я думаю не правильно
PHP:
скопировать код в буфер обмена
  1.  $result01 = mysql_query("SELECT COUNT(c.*) AS count_c, COUNT(cs.*) AS count_cs FROM comments AS c, commentsss AS cs WHERE post='$id'");              
 
 Top
OrmaJever
Отправлено: 25 Июня, 2011 - 12:44:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




я про условие забыл
PHP:
скопировать код в буфер обмена
  1.  $result01 = mysql_query("SELECT COUNT(c.*) AS count_c, COUNT(cs.*) AS count_cs FROM comments AS c, commentsss AS cs WHERE c.post='$id' AND cs.post='$id'");

(Добавление)
или даже так
PHP:
скопировать код в буфер обмена
  1.  $result01 = mysql_query("SELECT COUNT(c.*) AS count_c, COUNT(cs.*) AS count_cs FROM comments AS c LEFT JOIN commentsss AS cs USING (post) WHERE post='$id'");

тут не уверен, надо поробовать Растерялся


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
zorg84
Отправлено: 25 Июня, 2011 - 22:11:19
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Попробую ещё раз спасибо тебе.
(Добавление)
Выдаёт ошибки


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Y:\home\localhost\www\sait.com\post.php on line 113

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Y:\home\localhost\www\sait.com\post.php on line 132







часть кода


PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3.  
  4. $result77 = mysql_query("SELECT str FROM options", $db);
  5. $myrow77 = mysql_fetch_array($result77);
  6. $num = $myrow77["str"];
  7. // Извлекаем из URL текущую страницу
  8. @$page = $_GET['page'];
  9. // Определяем общее число сообщений в базе данных
  10. $result01 = mysql_query("SELECT COUNT(c.*) AS count_c, COUNT(cs.*) AS count_cs FROM comments AS c LEFT JOIN commentsss AS cs USING (post) WHERE post='$id'");
  11. 113  ----      $temp = mysql_fetch_array($result01);
  12. $posts = $temp[0];
  13. // Находим общее число страниц
  14. $total = (($posts - 1) / $num) + 1;
  15. $total =  intval($total);
  16. // Определяем начало сообщений для текущей страницы
  17. $page = intval($page);
  18. // Если значение $page меньше единицы или отрицательно
  19. // переходим на первую страницу
  20. // А если слишком большое, то переходим на последнюю
  21. if(empty($page) or $page < 0) $page = 1;
  22.   if($page > $total) $page = $total;
  23. // Вычисляем начиная с какого номера
  24. // следует выводить сообщения
  25. $start = $page * $num - $num;
  26. // Выбираем $num сообщений начиная с номера $start     
  27.        
  28.  
  29. $result33 = mysql_query ("SELECT * FROM comments WHERE post='$id' ORDER BY id  DESC, id DESC LIMIT $start, $num",$db);
  30. 132--------if (mysql_num_rows($result33) > 0)
  31. {
  32. $myrow33 = mysql_fetch_array($result33);
  33.  
  34.  
  35.  
  36.  
  37.  
 
 Top
OrmaJever
Отправлено: 25 Июня, 2011 - 23:05:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




после запроса (10 строки) напиши

и покажешь сюда текст ошибки


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
zorg84
Отправлено: 25 Июня, 2011 - 23:30:41
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) AS count_c, COUNT(cs.*) AS count_cs FROM comments AS c LEFT JOIN commentsss' at line 1
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Y:\home\localhost\www\sait.com\post.php on line 115







Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Y:\home\localhost\www\sait.com\post.php on line 133
(Добавление)
Вот вся страница если будет время посмотри может что то не так


PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP require_once ("blocks/bd.php");
  3. if (isset($_GET['id'])) {$id = $_GET['id']; }
  4. if (!isset($id)) {$id = 1;}
  5. /* Проверяем, является ли переменная числом */
  6. if (!preg_match("|^[\d]+$|", $id)) {
  7. exit ("<p>Неверный формат запроса! Проверьте URL!");
  8. }
  9. $result = mysql_query("SELECT * FROM data WHERE id='$id'",$db);
  10.  
  11. if (!$result)
  12. {
  13. echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору sait.com. <br> <strong>Код ошибки:</strong></p>";
  14. }
  15.  
  16. if (mysql_num_rows($result) > 0)
  17.  
  18. {
  19. $myrow = mysql_fetch_array($result);
  20. $new_view = $myrow["view"] + 1;/*количество проссмотров*/
  21. $update = mysql_query ("UPDATE data SET view='$new_view' WHERE id='$id'",$db); /* количество простмотров*/
  22.  
  23.  
  24. }
  25.  
  26. else
  27. {
  28. echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
  29. exit();
  30. }
  31.  
  32.  
  33. ?>
  34.  
  35.  
  36. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  37. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
  38. <head>
  39.     <title>Something About Sex And Love - Words Of Wisdom</title>
  40.     <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  41.     <meta name="author" content="Konstantin ">
  42.     <meta name="copyright" content="&copy;">
  43.     <meta name="keywords" content="kkk,kkkk">
  44.     <meta name="description" content="\kkkk">
  45. <link rel="stylesheet" href="style.css" type="text/css" />
  46. <script type="text/javascript" src="jquery-1.5.1.min.js"></script>
  47. </head>
  48. <body>
  49.  
  50. <div id="container">
  51.   <div id="header">
  52.  
  53. <div id="title">
  54. <H1>Something </H1>
  55. <H3>...And ..</H3>
  56. </div>
  57.  
  58. <div id="menu">
  59. <table width="583" height="35" border="0" cellpadding="0" cellspacing="0">
  60. <tr>
  61. <TD width="20" align="center"><a href="index.php">Words Of Wisdom</a></td>
  62. <TD width="65"></td>
  63. <TD width="40" align="left"><a href="cat.php">He Say - She Say</a></td>
  64. </tr></table>
  65. </div>
  66. </div>
  67.  <div id="content">
  68.  <H2>Words Of Wisdom!</H2>
  69. <?PHP
  70. printf ("<p class='post_titlel'>%s</p><p class='post_add'>Автор: %s &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Дата: %s</p>%s<p></p>",$myrow["title"],$myrow["author"],$myrow["date"],$myrow["text"]);
  71. ?>
  72.  
  73. <?PHP
  74. $result4 = mysql_query ("SELECT img FROM comments_setting",$db);
  75. $myrow4 = mysql_fetch_array($result4);
  76. ?>
  77. <p class='post_comment'>Добавить Ваш комментарий:</p>
  78. <form action="" method="post"  id="mainForm">
  79. <p><label>Ваше имя: </label></p><p><input name="author" type="text" size="30" maxlength="30"></p>
  80. <p><label>email: </label></p><p><input name="email" type="text" size="30" maxlength="30"></p>
  81. <p><label>Текст комментария: <br> <textarea name="text"  cols="40" rows="4"  maxlength="41" >текст</textarea></label></p><p>Введите сумму чисел с картинки<br>
  82.  <img style='margin-top:10px;' src="<? echo $myrow4["img"]; ?>" width="76" height="28">
  83. <p>
  84.   <input style='margin-bottom:50px;' name="pr" type="text" size="7" maxlength="7">
  85. </p>
  86. <input name="id" type="hidden" value="<? echo $id; ?>">
  87.   <p>
  88. <input name="sub_com" type="submit"  value="woman" onclick="document.getElementById('mainForm').action='comment.php';" />
  89. <input name="sub_com" type="submit" value="man" onclick="document.getElementById('mainForm').action='commentmen.php';" />
  90. </p>
  91. </form>
  92.  
  93. <table width="552" height="239" border="0">
  94.   <tr>
  95.     <td width="284">
  96.        
  97.        
  98.        
  99.        
  100.        
  101.        
  102.        
  103.        
  104.         <?PHP
  105. echo "<p>Кометарии<p>";
  106.  
  107. $result77 = mysql_query("SELECT str FROM options", $db);
  108. $myrow77 = mysql_fetch_array($result77);
  109. $num = $myrow77["str"];
  110. // Извлекаем из URL текущую страницу
  111. @$page = $_GET['page'];
  112. // Определяем общее число сообщений в базе данных
  113. $result01 = mysql_query("SELECT COUNT(c.*) AS count_c, COUNT(cs.*) AS count_cs FROM comments AS c LEFT JOIN  commentsss AS cs USING (post) WHERE post='$id'");
  114. echo mysql_error();
  115. $temp = mysql_fetch_array($result01);
  116. $posts = $temp[0];
  117. // Находим общее число страниц
  118. $total = (($posts - 1) / $num) + 1;
  119. $total =  intval($total);
  120. // Определяем начало сообщений для текущей страницы
  121. $page = intval($page);
  122. // Если значение $page меньше единицы или отрицательно
  123. // переходим на первую страницу
  124. // А если слишком большое, то переходим на последнюю
  125. if(empty($page) or $page < 0) $page = 1;
  126.   if($page > $total) $page = $total;
  127. // Вычисляем начиная с какого номера
  128. // следует выводить сообщения
  129. $start = $page * $num - $num;
  130. // Выбираем $num сообщений начиная с номера $start
  131.  
  132. $result0 = mysql_query ("SELECT * FROM comments WHERE post='$id' ORDER BY id  DESC, id DESC LIMIT $start, $num",$db);
  133. if (mysql_num_rows($result0) > 0)
  134. {
  135. $myrow0 = mysql_fetch_array($result0);
  136. do
  137. {
  138. @printf ("<div class='post_div'><p class='post_comment_add'>Комментарий добавила: <strong>%s</strong> <br> Дата: <strong>%s</strong></p>
  139. <p>%s</p></div>",$myrow0["author"], $myrow0["date"], $myrow0["text"]);
  140. }
  141. while ($myrow0 = mysql_fetch_array($result0));
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148. // Проверяем нужны ли стрелки назад   <a href=post.php?cat='.$cat.'&page='. ($page - 1) .'>Предыдущая</a>  ';
  149. if ($page != 0) $pervpage = '<a href=post.php?post='.$cat.'&page=1><</a>  ';
  150. // Проверяем нужны ли стрелки вперед   <a href=post.php?cat='.$cat.'&page=' .$total. '>Последняя</a>';
  151. if ($page != $total) $nextpage = '  <a href=post.php?post='.$cat.'&page='. ($page + 1) .'>></a> ';
  152.  
  153. // Находим две ближайшие станицы с обоих краев, если они есть
  154. if($page - 5 > 0) $page5left = ' <a href=post.php?post='.$cat.'&page='. ($page - 5) .'>'. ($page - 5) .'</a>  ';
  155. if($page - 4 > 0) $page4left = ' <a href=post.php?post='.$cat.'&page='. ($page - 4) .'>'. ($page - 4) .'</a>  ';
  156. if($page - 3 > 0) $page3left = ' <a href=post.php?post='.$cat.'&page='. ($page - 3) .'>'. ($page - 3) .'</a>  ';
  157. if($page - 2 > 0) $page2left = ' <a href=post.php?post='.$cat.'&page='. ($page - 2) .'>'. ($page - 2) .'</a>  ';
  158. if($page - 1 > 0) $page1left = '<a href=post.php?post='.$cat.'&page='. ($page - 1) .'>'. ($page - 1) .'</a>  ';
  159.  
  160. if($page + 5 <= $total) $page5right = '  <a href=post.php?post='.$cat.'&page='. ($page + 5) .'>'. ($page + 5) .'</a>';
  161. if($page + 4 <= $total) $page4right = '  <a href=post.php?post='.$cat.'&page='. ($page + 4) .'>'. ($page + 4) .'</a>';
  162. if($page + 3 <= $total) $page3right = '  <a href=post.php?post='.$cat.'&page='. ($page + 3) .'>'. ($page + 3) .'</a>';
  163. if($page + 2 <= $total) $page2right = '  <a href=post.php?post='.$cat.'&page='. ($page + 2) .'>'. ($page + 2) .'</a>';
  164. if($page + 1 <= $total) $page1right = '  <a href=post.php?post='.$cat.'&page='. ($page + 1) .'>'. ($page + 1) .'</a>';
  165.  
  166. // Вывод меню если страниц больше одной
  167.  
  168. if ($total > 1)
  169. {
  170. Error_Reporting(E_ALL & ~E_NOTICE);
  171. echo "<div class=\"pstrnav\">";
  172. echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
  173. echo "</div>";
  174. }
  175.  
  176.  
  177. }
  178.  
  179. ?></td>
  180. <td width="264">
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.   </tr>
  191. </table>
  192.  
  193. </body>
  194. </html>
  195.  
 
 Top
OrmaJever
Отправлено: 26 Июня, 2011 - 00:08:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




zorg84 пишет:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) AS count_c, COUNT(cs.*) AS count_cs FROM comments AS c LEFT JOIN commentsss' at line 1

нужно считать по одному полю
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT COUNT(c.post) AS count_c, COUNT(cs.post) AS count_cs FROM comments AS c LEFT JOIN commentsss AS cs USING (post) WHERE post='$id'

так должно работать


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
zorg84
Отправлено: 26 Июня, 2011 - 11:33:14
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Спасибо заработало!!
(Добавление)
Ещё один вопрос если нет коментов в таблице то выводится ошибка:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Y:\home\localhost\www\sait.com\post.php on line 134



A если добавить хотябы один всё нормально

(Отредактировано автором: 27 Июня, 2011 - 12:11:28)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB