Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z połączeniem z bazą
Forum PHP.pl > Forum > Przedszkole
teez
Hej!

Dziś zacząłem swoją przygodę z PHP. Tworzę formularz wysyłający dane do bazy danych. To co aktualnie mam :

  1. <?php
  2. require_once("db_connect.php");
  3. if (!$db_selected) {
  4. if (mysql_query("create detabase baza123", $link)){
  5. echo "Baza została utworzona<br>";
  6. mysql_select_db("baza123", $link);
  7. if (mysql_query("create table News(id int not null auto_increment primary key, data datetime not null,
  8. title varchar(50) not null, content tinytext not null)", $link))
  9. echo "Tabela news ok<br>";
  10. else
  11. echo "Błąd hehe:".mysql_error()."<br>";
  12. }
  13. dodaj ($link);
  14. }
  15. else
  16. dodaj ($link);
  17.  
  18. function dodaj($handle){
  19. if (mysql_query("insert into News value(null,now(),'{$_POST['title']}','{$_POST['tresc']}');",$handle))
  20. echo "Wpis został pomyślnie dodany<br>";
  21. else
  22. echo "Błąd podczas dodawania wpisu:".mysql_error()."<br>";
  23. }
  24. ?>



  1. <?php
  2. $link = mysql_connect("localhost", "root", "123");
  3. if (!$link){
  4. die('Nie połączyłes się haha.gif' .mysql_error());
  5. }
  6. else
  7. $db_selected = mysql_select_db('baza123', $link);
  8. ?>


  1. <title>Formularz</title>
  2. <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
  3. </head>
  4.  
  5. <form action="add_news.php" method="post">
  6.  
  7. Tytuł News-a <input type='text' name='title' size='50' maxlength='50'><br>
  8. <br>
  9. Treść news-a<br>
  10. <textarea name-'tresc' cols='50' rows='10'></textarea>
  11. <br>
  12. <input type='submit'>
  13. </body>
  14. </html>



Niestety, podczas próby dodania wywala mi błąd :

Notice: Undefined index: tresc in C:\xampp\htdocs\js\newsy\add_news.php on line 19
Błąd podczas dodawania wpisu:No database selected

Co jest powodem? Powód pewnie błachy, ale już od 19 się z nim męczę i nic..
Sebek87
Pierwsze co zauważyłem - w formularzu, gdzie masz textarea masz
Cytat
name-'tresc'
zamiast
Cytat
name='tresc'
, dlatego zapewne do skryptu nie jest przesyłana zmienna $_POST['tresc'] i wywala Ci Notice: Undefined index: tresc in C:\xampp\htdocs\js\newsy\add_news.php on line 19.

Drugi błąd mówi Ci jasno, że nie wybrałeś bazy danych.
mmmmmmm
Linia 4 powoduje błąd - tam nie masz obsługi błędu, a masz "CREATE DETABASE" zamiast "DATABASE".
Literówki masz jeszcze:
auto_increment w 7
value w 19
teez
Serdeczne dzięki!

Poprawiłem literówki z 2 postu i pierwsza z 3, lecz
Cytat
Literówki masz jeszcze:
auto_increment w 7
value w 19


Jakie dokładnie literówki? Na co zamienić?

P.s. Wybrałem bazę, komunikat Błąd podczas dodawania wpisu:Table 'test.news' doesn't exist

Czy ona nie powinna się sama utworzyć?

Baza się stworzyła. ;o Ale tabela nie..
Niktoś
Zobacz jaki parametr przekazujesz do funkcji dodaj. W funkcji tej otwierasz połączenie ale już bazy danych nie wybierasz.
teez
Wybacz, ale jak mówiłem wcześniej - nie mam zielonego pojęcia co tu zmienić. Próbowałem
  1. mysql_select_db("baza123", $link);
dodać ale nic z tego. Możesz trochę bardziej naprowadzić? worriedsmiley.gif
Niktoś
W funkcji dodaj użyj zrób tak:
  1. function dodaj($handle){
  2. mysql_select_db("baza123", $handle);
  3. if (mysql_query("insert into News value(null,now(),'{$_POST['title']}','{$_POST['tresc']}');",$handle))
  4. echo "Wpis został pomyślnie dodany<br>";
  5. else
  6. echo "Błąd podczas dodawania wpisu:".mysql_error()."<br>";
  7. }

po wszelakich poprawkach jakie już zastosowałeś usuń całą bazę baza123 i puść skrypt ponownie.
teez
Baza została utworzona
Błąd hehe: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 'datatime not null, title varchar(50) not null, content tinytext not null)' at line 1
Błąd podczas dodawania wpisu:Table 'test.news' doesn't exist

Niktoś
Nie datatime lecz datetime- jak zrobisz poprawiki to usuń całą bazę i puść skrypt ponownie-rób tak przy każdej zmianie dotyczącej tworzenia bazy.
teez
Kurczę! Bardzo Ci dziękuję. Poszło. smile.gif Pozdrawiam.
Niktoś
OK, cieszę się guitar.gif i na przyszłość uważaj na literówki- w językach programowania musi być precyzja.
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.