Tworzenie rekordów przez formularz

PHP/MYSQL  Założony przez  TheShadooow14.

Witam, mam pytanko czy potrafiłby ktoś mi pomóc z tym, że chciałbym aby na stronie był formularz z 2 opcjami do wypełnienia "Temat" "Treść"
I przycisk wyślij, lecz główny problem tkwi w tym, że nie wiem jak zrobić tak, aby to co zostało wpisane do tego formularza dodawało się do bazy mySQL w odpowiednich kolumnach... Jeżeli wiedziałby ktoś jak to zrobić byłbym wdzięczy. Dodam że czytałem wiele poradników i niby działało, ale nie dodawało mi nic do bazy :/

Napisałem coś takiego:

<?php
// Sprawdzamy czy do pliku index.php przesłane zostały dane odpowiada za to funkcja empty która sprawdza czy w zmiennej $_POST['temat'] sa jakieś dane
// Poniższa linia oznacza: jeżeli zmienna $_POST['temat'] i $_POST['tresc'] są puste wykonaj działanie
if(empty($_POST['temat'])&&empty($_POST['tresc'])){
// jeżeli do liku nie przesłane zostały żadne dane wyświetlamy formularz
?>
<form action="test.php" method="post">
Imie: <input type="text" value="" name="temat" /><br />
Nazwisko <textarea name="tresc"></textarea><br />
<input type="submit" value="Wyslij" />
</form>
<?php
// Jeżeli dane z formularza zostaną wysłane wykona się kod zawarty w klamrach warunku else
}else{
function lacz_bd()
{  
  $db = new mysqli('mysql-fr1.ServerProject.pl', 'user', 'haslo', 'db_7456');  
    if (! $db)
      return false;
   $db->autocommit(TRUE);
   return $db;
}
$temat = $_POST['temat'];
$temat = addslashes($temat); // zawsze pamiętajmy aby dane były parsowane. Funkcja addslashes dodaje znak przed cudzysłowami dzięki temu nie musimy się obawiać ze zmienna zaszkodzi naszej bazie.
$tresc = $_POST['tresc'];
$tresc = addslashes($tresc);
//połączenie z bazą
$db = lacz_bd();
//zapytanie dodające zmienne $tytul i $tresc do bazy
$zapytanie = "insert into BugTracker (Tytul, Opis) values ('$temat', '$tresc')";
// wykonanie dodawania do bazy
$wynik = $db->query($zapytanie);
        //sprawdzenie czy powiodło się dodawanie
        if($wynik)      echo 'Dodano nowy rekord';
        else            echo 'Błąd podczas dodawania';
}
?>

Ale nie dodaje nic do bazy :/
https://webboard.pl/thread-56945.html


po co dubel?
Podałeś mi tam jakiś przykład, którego w ogóle nie ogarniam.
Skomentował iż napisałeś dwa takie same tematy który jeden z nich jest zbędny..
Chodzi mi o to, że w poprzednim poscie do którego dał link, podał przykład tego, lecz tego nie ogarniam. A tutaj mam jakiś kod i może mógłby mi go jakoś poprawić, albo pokazać co robię źle.
ta,,, dla mnie moj kod jest bardziej przejżysty
powiedz dokladnie czego nie rozumiesz w moi kodzie?
Nie rozumiem co robi ta część kodu
$insert_array = array(
                "uid" => intval($mybb->user['uid']),
                "text" => $db->escape_string($mybb->input['text']),
                "total_likes" => 0,
                "dateline" => TIME_NOW,
                "ip" => get_ip()
            );

Bo tutaj:
if ($mybb->input['action'] == "do_new_status")
        {
            if ($mybb->input['text'] == "")
            {
                error("You didn't entered any status text. Please go back and try again.");
            }

To PHP zbiera informacje z formularza i jeżeli jest on pusty to wywala błąd.

Ale gdzie w tym kodzie ma znaleźć się połączenie z bazą, bo raczej owe musi istnieć?
1
przypisujesz dane w tablicy do pól w bazie
eg

"uid" => intval($mybb->user['uid']),
uid - pole w bazie
intval() - funkcja zamienia wprowadzoną wartość na liczbe, jeśli nią nie jest, takie (int)
$mybb->user['uid'] - nic innego jak $_POST['uid']
2
wciskasz button bo taka akcje ma podpisaną w formularzu
sprawdza czy pole w formluarzy nie jest puste, bo po co wprowadzac puste pole do bazy, jeśli jest puste pokaze blad error()
Czyli na samej górze skryptu PHP musi znaleźć się połączenie
$link = mysql_connect('host','user','haslo');
mysql_select_db('nazwa_bazy',$link);


A później ta reszta kodu? Dobrze rozumiem?
Ps. Teraz zaczynam coś kminić :)
Gdybyś próbował sam a nie kopiował gotowce ... już dawno podał bym Ci gotowy kod

najpierw trzeba dodać
require "./global.php"
oczywiscie z odpowiednią scieżka

http://mybbsite.pl/dodawanie-nowej-podstrony
polącz link wyżej z tym co ja podalem jako przyklad formularzu, do bazy też można się polączyć przez klasy MYBB (przyklad w moim pluginie ostatnie bany z amxbans)

powodzenia, informacji dostałeś dużo, trochę inicjatywy
(27.10.2014, 06:30)TheShadooow14 napisał(a): Czyli na samej górze skryptu PHP musi znaleźć się połączenie
$link = mysql_connect('host','user','haslo');
mysql_select_db('nazwa_bazy',$link);


A później ta reszta kodu? Dobrze rozumiem?
Ps. Teraz zaczynam coś kminić :)

MyBB do połączenia z bazą danych ma własną funkcje
require_once MYBB_ROOT."inc/db_".$config['database']['type'].".php";
        switch(
$config['database']['type'])
        {
            case 
"sqlite":
                
$new = new DB_SQLite;
                break;
            case 
"pgsql":
                
$new = new DB_PgSQL;
                break;
            case 
"mysqli":
                
$new = new DB_MySQLi;
                break;
            default:
                
$new = new DB_MySQL;
        }
        
$con['hostname'] = '';
        
$con['username'] = '';
        
$con['password'] = '';
        
$con['database'] = '';
        
$new->connect($con); 



Użytkownicy przeglądający ten wątek:

1 gości