Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Не добавляет данные в несколько таблиц одной базы данных phpmyadmin

Народ, помогите, не могу разобраться, таблицы связанны по ID
Код PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?
ini_set('error_reporting', E_ALL);
ini_set('display_errors',1);
error_reporting(E_ALL); 
//
$user="root";
$password="867811";
$database="form_db";
$dtable="id, name, tip, otrasl, inn, ogrn, adress ";
if ($db=@mysql_connect("localhost",$user,$password))
{
@mysql_query('SET NAMES `UTF8`'); 
mysql_select_db($database);
 
echo "Добавленно!";
 
$id_pred = $_POST['id_pred'];
$name = $_POST['name'];
$tip = $_POST['tip'];
$otrasl = $_POST['otrasl'];
$ogrn= $_POST['ogrn']; 
$inn= $_POST['inn'];
$oblast= $_POST['oblast'];
$gorod= $_POST['gorod'];
$poselok= $_POST['poselok'];
$ylica= $_POST['ylica'];
$dom= $_POST['dom'];
$index= $_POST['index'];
 
$sql = "INSERT INTO `id`(`id_pred`) VALUES('$id_pred')";
$sql = "INSERT INTO `name`(`name`) VALUES('$name')";
$sql = "INSERT INTO `tip`(`tip`) VALUES('tip')";
$sql = "INSERT INTO `otrasl`(`otrasl`) VALUES('$otrasl')";
$sql = "INSERT INTO `inn`(`inn`) VALUES('$inn')";
$sql = "INSERT INTO `ogrn`(`ogrn`) VALUES('$otrasl')";
$sql = "INSERT INTO `adress`(`oblast`, `gorod`, `poselok`, `ylica`, `dom`, `index`) VALUES('$oblast', '$gorod', '$poselok', '$ylica', '$dom', '$index')";
mysql_query($sql);
 
 mysql_close();
} else { 
 echo "<p>Данные не добавлены!</p>";
}
?>
Не добавляет данные в несколько таблиц одной базы данных phpmyadmin
Ответ: а зачем вообще столько таблиц с одним полем? Не лучше ли одну таблицу с несколькими полями..?
Вопрос: Реализовать вывод данных из MySQL таблицы в выпадающем списке

Приветствую, уважаемые форумчане.
Возникла проблема. Хочу реализовать вывод данных из mysql таблицы в выпадающем списке, для этого сделал вот такой код:
Код PHP
1
2
3
4
5
6
7
8
9
10
11
<select name="name" onchange="show_data()">
     <?php
     $query = "SELECT id, dog_breed FROM dogs";
     $sql = mysqli_query($dbc, $query) or die("Ошибка запроса");
     while($row = mysqli_fetch_assoc($sql)) {
echo<<<HTML
<option id = "option" value = "{$row['id']}"> {$row['dog_breed']}</option>;
HTML;
     }
     ?>
</select>
Функция showdata() - просто для проверки значений, которые приходят в <option>.
Суть проблемы такова: {$row['dog_breed']} помещает все значения из таблицы в выпадающий список, а вот value = "{row['id']}" выдает только одно значение - первое, т.е. id = 1 при выборе любого значения из <select>. Гуглил - не нашел подобного случая. Что я сделал не так?
Ответ:
Цитата Сообщение от pav1uxa Посмотреть сообщение
Но так как у Вас много элементом с одинаковым ID (хотя это неправильно), она просто-напросто выводила value первого...
ок, то что много id - не есть хорошо, я уже понял, собственно и знал Суть в другом: как мне сделать, чтобы в выпадающем списке передавалось разное id, соответствующее id строк из таблицы mysql?
Вопрос: вывод данных из нескольких таблиц mysql php

Доброго времени суток, подскажите пожалуйста, как мне

правильно написать запрос чтобы я получил вывод товаров бренда "x" "8-го размер"?



Таблица 'table_products'

`products_id` 44, 55, 4 ,1 85




Таблица 'brends'

`id` 1, 2, 3, 4, 5

`brend_products_id` 85, 1, 44, 55, 4

`brend`x, x, y, x, z




Таблица 'sizes'

`id` 1, 2, 3, 4, 5

`size_products_id` 4, 55, 1, 44, 85

`size` 8, 66, 8, 90, 8

(Отредактировано автором: 24 Мая, 2016 - 04:24:29)

Ответ:
CODE (SQL):

  1. SELECT *
  2. FROM `table_products`
  3. LEFT JOIN `brends`
  4. ON `brend_products_id`=`products_id`
  5. LEFT JOIN `sizes`
  6. ON `size_products_id`=`products_id`
  7. WHERE `brend`='x'
  8. AND `size`='8'

Но струткура таблиц здесь явно неправильная и если это не учебный пример, то таблицы лучше переделать примерно так:
таблица product - product_id, product_brand_id, product_size_id, product_name
таблица brand - brand_id, brand_name
таблица size - size_id, size_name

(Отредактировано автором: 24 Мая, 2016 - 09:58:03)

Вопрос: MySQL и PHP вывод данных из нескольких таблиц

есть 3 таблицы. база называется phptable
klass, ushitel, predmet.
из klass-нужно вытащить "name"
из ushitel-fa, im, ot
из predmet-name.
Необходимо что бы можно было выбирать данные что-то вроде "combobox".
Ответ: чтобы дать совет, нужно видеть структуру таблиц. фиг его знает как там у вас связи. хотя, судя из названий таблиц, можно предположить, что не хватает связующих таблиц.
Вопрос: Ошибка с выводом данных из нескольких таблиц SQL

Всем добрый день/вечер, нуждаюсь в помощи знающих людей.
Ошибка состоит в ошибке "Warning: Invalid argument supplied for foreach() in /home/bd2sem.fl8.ru/public_html/books.php on line 106"
Сам код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<html>
  <head>
  <link rel="stylesheet" type="text/css" href="style.css" >
  </head>
 
<?php
 
$pdo = new PDO('mysql:host=127.0.0.1;dbname=123', '123', '123');
$pdo ->exec('set names "utf8";');
 
switch (@$_GET['action'])
{
  case 'add':
    $publishing = $pdo->query('SELECT * FROM `publishing`');
    $authors = $pdo->query('SELECT * FROM `authors`');
    $genres = $pdo->query('SELECT * FROM `genres`');
 
    $url = '/books.php?action=create';
    include 'forms/book.php';
  break;
 
  case 'create':
    $sql = $pdo->prepare('INSERT INTO `books` ( `name`, `publish_id`, `author_id`, `genre_id`, `date`) VALUES (:name, :publish_id, :author_id, :genre_id, :date)');
    $sql->execute([
      
      ':name' => $_POST['name'],
      ':publish_id' => (int)$_POST['publish_id'],
      ':author_id' => (int)$_POST['author_id'],
      ':genre_id' => (int)$_POST['genre_id'],
      ':date' => $_POST['date']
    ]);
    echo 'Успешно добавлено!<br><a href="/books.php" class="s1">Список книг</a>';
  break;
  
  case 'edit':
    $sql = $pdo->prepare('SELECT * FROM `books` WHERE `id` = :id');
    $sql->execute([':id' => $_GET['id']]);
    $publish = $sql->fetch();
 
    $publishing = $pdo->query('SELECT * FROM `publishing`');
    $authors = $pdo->query('SELECT * FROM `authors`');
    $genres = $pdo->query('SELECT * FROM `genres`');
 
    $url = '/books.php?action=update&id=' . $_GET['id'];
    include 'forms/book.php';
  break;
  
  case 'update':
    $sql = $pdo->prepare('UPDATE `books` SET `name` = :name, `city` = :city, `country` = :country WHERE `id` = :id LIMIT 1');
    $sql->execute([
      ':id' => $_GET['id'],
      
      ':name' => $_POST['name'],
      ':publish_id' => (int)$_POST['publish_id'],
      ':author_id' => (int)$_POST['author_id'],
      ':genre_id' => (int)$_POST['genre_id'],
      ':date' => $_POST['date']
    ]);
    echo 'обновлена!<br><a href="/books.php" class="s1">Список книг</a>';
  break;
 
  case 'delete':
    $sql = $pdo->prepare('DELETE FROM `books` WHERE `id` = :id LIMIT 1');
    $sql->execute([':id' => $_GET['id']]);
    echo 'Удалено!<br><a href="/books.php" class="s1">Список книг</a>';
  break;
 
  default:
  
    echo '<a href="/books.php?action=add" class="s1">Добавить книгу</a><br>';
 
    $books = $pdo->query(
      'SELECT 
        `b`.`id`, 
        `b`.`date`, 
        `b`.`name`, 
       (" ", `a`.`name`, `a`.`lastname`, `a`.`otche`) `author_name`, 
        `g`.`name` `genre_name`,
        `p`.`name` `publish_name` 
       FROM 
        `books` `b`, 
        `authors` `a`, 
        `publishing` `p`,
          `genre` `g` 
       WHERE 
        `b`.`author_id` = `a`.`id` 
       AND
        `b`.`genre_id` = `g`.`id`
         AND
          `b`.`publish_id` = `p`.`id`
       ');
 
 
    echo '<table border="1" cellspacing="0">';
 
    echo '<tr>';
    echo '<th>ID</th>';
    echo '<th>Название</th>';
    echo '<th>Автор</th>';
    echo '<th>Жанр</th>';
    echo '<th>Публикация</th>';
    echo '<th>Дата</th>';
    echo '<th>&nbsp;</th>';
    echo '</tr>';
 
    foreach ($books as $book)
    {
      echo '<tr>';
      echo 
        '<td>' . $book['id'] . '</td> ' 
      . '<td>' . $book['name'] . '</td> '
      . '<td>' . $book['author_name'] . '</td> ' 
      . '<td>' . $book['genre_name'] . '</td> ' 
      . '<td>' . $book['publish_name'] . '</td> '
      . '<td>' . $book['date'] . '</td> '
      . '<td><a href="/books.php?action=edit&id=' . $book['id'] . '" class="s2">ред.</a> <a href="/publishing.php?action=delete&id=' . $book['id'] . '" class="s2">уд.</a></td>';
      echo '</tr>';
 
    }
    echo '</table>';
 
  break;
}
При создании книги все данные спокойно отправляются в БД, но вот затем не выводит при запросе.
Предполагаю, что ошибка таится здесь:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$books = $pdo->query(
      'SELECT 
        `b`.`id`, 
        `b`.`date`, 
        `b`.`name`, 
       (" ", `a`.`name`, `a`.`lastname`, `a`.`otche`) `author_name`, 
        `g`.`name` `genre_name`,
        `p`.`name` `publish_name` 
       FROM 
        `books` `b`, 
        `authors` `a`, 
        `publishing` `p`,
          `genre` `g` 
       WHERE 
        `b`.`author_id` = `a`.`id` 
       AND
        `b`.`genre_id` = `g`.`id`
         AND
          `b`.`publish_id` = `p`.`id`
       ');
Надеюсь на помощь :>
Ответ: Решил добавить новые данные и они не отображаются, так же не получается редактировать или же удалить.
Вот форма для добавления книг:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<form action="<?= $url ?>" method="post">
 
  <label>Название</label><br>
  <input type="text" name="name" value="<?= @$book['name'] ?>"><br>
  
  <label>Автор</label><br>
  <select name="author_id">
    <?php
    foreach ($authors as $author)
    {
      echo '<option value="' . $author['id'] . '"' . ((int)$book['author_id'] === (int)$author['id'] ? ' selected' : '') . '>';
      echo $author['name'] . ' ' . $author['lastname'] . ' ' . $author['otche'];
      echo '</option>';
      echo "\n";
    }
    ?>
  </select><br>
 
  <label>Публикация</label><br>
  <select name="publish_id">
    <?php
    foreach ($publishing as $publish)
    {
      echo '<option value="' . $publish['id'] . '"' . ((int)$book['publish_id'] === (int)$publish['id'] ? ' selected' : '') . '>';
      echo $publish['name'];
      echo '</option>';
      echo "\n";
    }
    ?>
  </select><br>
  
  <label>Жанр</label><br>
  <select name="genre_id">
    <?php
    foreach ($genres as $genre)
    {
      echo '<option value="' . $genre['id'] . '"' . ((int)$book['genre_id'] === (int)$genre['id'] ? ' selected' : '') . '>';
      echo $genre['name'];
      echo '</option>';
      echo "\n";
    }
    ?>
  </select><br>
  
  
 
  <label>Дата</label><br>
  <input type="date" name="date" value="<?= $book['date'] ?: date('Y-m-d') ?>"><br>
 
  
  
  <br>
  <button type="submit">Сохранить</button>
</form>
Вопрос: Вывод данных из нескольких textbox-ов в txt-файл

Не получается реализовать вывод данных из нескольких textbox в .txt. Всё должно происходить по нажатию кнопки button
Ответ: AppendAllText не перезаписывает файл, а добавляет.
Просто берешь и с каждого textbox добавляешь в файл


C#
1
2
3
4
5
6
7
private void button1_Click(object sender, EventArgs e)
        {
            System.IO.File.AppendAllText(@"D:\file.txt", textBox1.Text);
            System.IO.File.AppendAllText(@"D:\file.txt", textBox2.Text);
            System.IO.File.AppendAllText(@"D:\file.txt", textBox3.Text);
            System.IO.File.AppendAllText(@"D:\file.txt", textBox4.Text);
        }
Вопрос: Вывод данных из связанных таблиц

Есть две таблицы
1 таблицa
aspir (id_aspir, fam, im, otch, data_r, seria_pasport, nomer_pasport, id_spec)
2 таблица
spec (id_spec, code, names,id_fac, id_obuch, id_uchebzaw)
Мне нужно вывести данные первой таблицы чтобы вместо id_spec бралось значение из второй таблицы ячейки names
вот код
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php 
                    $q = mysql_query("SELECT * FROM aspir");
                    
 
                    while ($result = mysql_fetch_array($q))
                    {
                            echo "<tr>";
                            echo "<td>".$result['fam']."</td>";
                            echo "<td>".$result['im']."</td>";
                            echo "<td>".$result['otch']."</td>";
                            echo "<td>".$result['data_r']."</td>";
                            echo "<td>".$result['seria_pasport']."</td>";
                            echo "<td>".$result['nomer_pasport']."</td>";
                            
                    $id_spec = $result['id_spec'];
                            $q1 = mysql_query("SELECT * FROM spec WHERE id = '.$id_spec.'");
                            $sp = mysql_fetch_array($q1);
                            echo "<td>".$sp['names']."</td>";
                            echo "</tr>"; 
                    }
                ?>
данные из первой таблицы выводит, а вот ругается на эти строки из вывода второй таблицы
PHP
1
2
$q1 = mysql_query("SELECT * FROM spec WHERE id = '.$id_spec.'");
                            $sp = mysql_fetch_array($q1);
в чем проблема, как вывести данные???
Ответ:
Сообщение от ALEXandr20333
а вот ругается на эти строки из вывода второй таблицы
потомучто у вас синтаксическая ошибка
PHP
1
$q1 = mysql_query("SELECT * FROM spec WHERE id_spec = '".$id_spec."'");
Добавлено через 1 минуту
или так
PHP
1
$q1 = mysql_query("SELECT * FROM spec WHERE id_spec = ".$id_spec);
Вопрос: Удаление данных из нескольких таблиц

Как удалить одновременно данные из разных таблиц.
1 главная и 6 подчененных, (1 ко многим) связанных по ID.
При помощи SQL. СУБД MySQL.
Ответ: MySQLConnection.StartTransaction;
блокировка твоих MySQL таблиц (если необходимо в принципе это как-бы пофиг и не надо в 99,8% случаев но вдруг)
исполнения твоего кода типа
и да 7 раз написать
MySQL.ExcecSQL('Delete from table1 where id=1');
MySQL.ExcecSQL('Delete from table2 where id=1');
MySQL.ExcecSQL('Delete from table3 where id=1');
ну либо в одном запросе MySQL.ExcecSQL('Delete from table1,table2,table3,table7 where id=1'))
Если ты считаеш что всё прошло успешно то
MySQLConnection.Commit;
Если ты считаеш что нафиг всё и надо отменить то
MySQLConnection.Rollback;
Конкретный вариант написания зависит от того какой драйвер используешь для подключения к БД
в любом случае если отошлёшь SQL комманду старта транзакции то она выполниться вся целиком или не выполниться ничего из состава транзакции только надо будет отследить состояние автоподтверждения транзакций (вдруг у тебя очень крупные запросы)
В принципе 1 запрос всегда выполняется сразу т.е. если у тебя в одном запросе удаление из 7 таблиц то он либо удалит из всех либо не удалит ниоткуда.
Вопрос: Вывод данных из двух таблиц во view

Здравствуйте. В базе есть две таблицы. Вывожу во View данные из них с помощью foreach. То есть у меня два цикла и два блока с выводом данных Но мне необходимо, чтобы данные выводились не раздельно, а в одном блоке, сформированные по дате добавления. Сможете подсказать, как это реализовать?
Ответ: Всё равно не совсем понятно. Эти две таблицы одинаковые c одинаковой структурой?
Если нет - делайте промежуточную модель (список), в неё копируйте записи, сортируйте и выводите
Вопрос: Вывод данных в html таблицу , через php

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

Заранее благодарю!

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<!doctype html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>database connections</title>
    </head>
    <body>
      <?php
      $username = "root";
      $password = "pass";
      $host = "localhost";
 
      $connector = mysql_connect($host,$username,$password)
          or die("Unable to connect");
        echo "Connections are made successfully::";
      $selected = mysql_query("user_info", $connector)
        or die("Unable to connect");
 
      //execute the SQL query and return records
      $result = mysql_query("SELECT * FROM users ");
      ?>
      <table border="2" style= "background-color: #84ed86; color: #761a9b; margin: 0 auto;" >
      <thead>
        <tr>
          <th>Id</th>
          <th>User_info</th>
          <th>Mail</th>
          <th>Time_post</th>
        </tr>
      </thead>
      <tbody>
        <?php
          while( $row = mysql_fetch_array( $result) ){
            echo
            "<tr>
              <td>{$row \['id'\]}</td>
              <td>{$row\['user_info'\]}</td>
              <td>{$row\['mail'\]}</td>
              <td>{$row\['time_post'\]}</td>
            </tr>\n";
          }
        ?>
      </tbody>
    </table>
     <?php mysql_close($connector); ?>
    </body>
    </html>
Ответ: где запрос к базе?
PHP
1
2
3
4
    $resultprov = mysql_query("select * from nametable");
while ($row = mysql_fetch_array($resultprov, MYSQL_ASSOC)) {
//заполняешь таблицу
}