Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Zapytanie
Forum PHP.pl > Forum > Przedszkole
ten_typ
Witam, mam kolejny problem. Nie wiem jak wykonać zapytanie, które doda nowy rekord w tabeli która łączy 2 pozostałe.

Baza:
Kod
   -- Table `xxx`.`kurs`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `xxx`.`kurs` (
      `id_kursu` INT NOT NULL AUTO_INCREMENT ,
      `nazwa_kursu` VARCHAR(30) NOT NULL ,
      PRIMARY KEY (`id_kursu`) )
    ENGINE = InnoDB;
    
    
    -- -----------------------------------------------------
    -- Table `xxx`.`poziom`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `xxx`.`poziom` (
      `id_poziomu` INT NOT NULL AUTO_INCREMENT ,
      `nazwa_poziomu` CHAR(2) NOT NULL ,
      `opis_poziomu` VARCHAR(500) NOT NULL ,
      PRIMARY KEY (`id_poziomu`) )
    ENGINE = InnoDB;
    
    
    -- -----------------------------------------------------
    -- Table `xxx`.`poziom_kursu`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `xxx`.`poziom_kursu` (
      `id_poziom_kursu` INT NOT NULL AUTO_INCREMENT ,
      `id_kursu` INT NOT NULL ,
      `id_poziomu` INT NOT NULL ,
      PRIMARY KEY (`id_poziom_kursu`) ,
      INDEX `id_kursu` (`id_kursu` ASC) ,
      INDEX `id_poziomu_poziom_kursu` (`id_poziomu` ASC) ,
      CONSTRAINT `id_kursu`
        FOREIGN KEY (`id_kursu` )
        REFERENCES `xxx`.`kurs` (`id_kursu` )
        ON DELETE NO ACTION
        ON UPDATE NO ACTION,
      CONSTRAINT `id_poziomu_poziom_kursu`
        FOREIGN KEY (`id_poziomu` )
        REFERENCES `xxx`.`poziom` (`id_poziomu` )
        ON DELETE NO ACTION
        ON UPDATE NO ACTION)
    ENGINE = InnoDB;


html:
  1. <html>
  2. <link rel="stylesheet" type="text/css" href="../menu2.css" />
  3. </head>
  4. <body>
  5. <form method="post" action="dodaj.php">
  6. <table width=90% align=center>
  7. <tr><td>Nazwa kursu:</td><td><input type=text name='nazwa_kursu' size=60 maxlength=255></td></tr>
  8. <tr><td>Poziom:</td><td>
  9. <select name="nazwa_poziomu">
  10. <option value="">Wybierz poziom</option>
  11. <option value="a1">A1</option>
  12. <option value="a2">A2</option>
  13. <option value="b1">B1</option>
  14. <option value="b2">B2</option>
  15. <option value="c1">C1</option>
  16. <option value="c2">C2</option>
  17. </select> </td></tr>
  18. <td></td><td><input type=submit value=Dodaj></td></tr>
  19. <td></td><td><input type=reset value=Wyczy&#347;&#263;></td></tr>
  20. </table>
  21. </form>
  22. </body>
  23. </html>

php:
  1. <?php
  2. $nazwa_kursu = $_POST['nazwa_kursu'];
  3.    $nazwa_poziomu = $_POST['nazwa_poziomu'];
  4.  
  5. if($nazwa_kursu and $nazwa_poziomu) {
  6.    
  7.    $connection = @mysql_connect('localhost', 'yyy', '123123')
  8.    or die('Brak połączenia z serwerem MySQL');
  9.    $db = @mysql_select_db('xxx', $connection)
  10.    or die('Nie mogę połączyć się z bazą danych');
  11.    
  12.    
  13.    mysql_query('SET CHARACTER SET utf8, collation_connection = utf8_polish_ci');
  14.    
  15.    $zapytanie = @mysql_query(&#092;"insert into kurs set nazwa_kursu='$nazwa_kursu'\");
  16.    $zapytanie1 = @mysql_query(&#092;"SELECT * FROM poziom WHERE nazwa_poziomu='$nazwa_poziomu'\");
  17.    if($zapytanie and $zapytanie1) echo &#092;"
  18. [b]Nowy kurs zosta&#322; dodany poprawnie[/b]
  19.  
  20.  
  21.  
  22.    [url="pwk.php"]Od&#347;wież[/url]\";
  23.    else echo &#092;"
  24. [b]B&#322;ąd. Nie udało się dodać nowego kursu[/b]
  25. &#092;";
  26.    
  27.    mysql_close($connection);
  28. }
  29. else echo &#092;"
  30. [b]B&#322;ąd. Nie wprowadzono wszystkich wymaganych danych.[/b]
  31. &#092;";
  32.  
  33. ?>


I teraz tak: dodaje nowy kurs, wpisuję nazwę kursu i wybieram jaki ma mieć poziom. W innym skrypcie pokazuje mi wykaz wszystkich rekordów z bazy. Chce użyć zapytania:
  1. "select nazwa_kursu, nazwa_poziomu from kurs inner join poziom_kursu using (id_kursu) inner join poziom using (id_poziomu)";

Ale wyrzuca mi "empty rows". W jaki sposób mogę wykonać zapytanie do bazy o utworzenie w tabeli poziom_kursu rekordu łączącego nazwa_kursu z wybrana nazwa_poziomu ? Proszę o pomoc.
sticker
manual sqla by sie przydał http://dev.mysql.com/doc/refman/5.1/en/insert.html
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.