Męczyłem się 30 min czemu dane nie są w bazie, później dodałem or die(“Wystąpił błąd” ); i pokazuje mi błąd. Może mi ktoś powiedzieć co zrobiłem źle? Połączenie z bazą mam poprawne. A moja baza wygląda tak:
-- phpMyAdmin SQL Dump
-- version 3.3.2deb1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Czas wygenerowania: 26 Wrz 2010, 10:34
-- Wersja serwera: 5.1.41
-- Wersja PHP: 5.3.2-1ubuntu4.5
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Baza danych: `zglaszalnia`
--
-- --------------------------------------------------------
--
-- Struktura tabeli dla `zgloszenia`
--
CREATE TABLE IF NOT EXISTS `zgloszenia` (
`id` int(11) NOT NULL,
`nick` int(11) NOT NULL,
`temat` int(11) NOT NULL,
`tresc` int(11) NOT NULL,
`data` int(11) NOT NULL,
`admin` int(11) NOT NULL,
`status` int(11) NOT NULL,
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Zrzut danych tabeli `zgloszenia`
--
Po 1. Dodaj sobie obsługe spr czy przycisk był wciśnięty…
if ($_POST['submit'])
Po 2. Do ID dodaj AUTO_INCREMENT. Po 3. Dodaj obsługę błędów przy połączeniu i wybieraniu bazy. Po 4. Nie wiem po co
INSERT INTO zgloszenia (`nick`, `temat`, `tresc`, `data` , `status`)
używasz `. :] Po 4,5. Nie brakuje ci w zapytaniu pola admin? Napisane jest, że NOT_NULL a nic nie ustawiasz w tym polu… Po 5. Spróbuj zrobić to tak:
$zap = "Twoje zapytanie";
$res = mysql_query($zap, $mysql_id);
if ($res == 1)
{
Echo 'Dodano!';
}
[/code]
Po 6. Do kodu html dodaj linijke po buttonie:
//action mozesz zmienic na nazwe pliku końcowego. np formularz.php action polega na tym gdzie cie przeniesie po odswiezeniu strony
Twój Nick:
Temat:
Błąd
Skarga
Sugestian
Treść:
<?php include('dodaj.php'); //?>
Twój plik dodaj.php tak:
<?php
if ($_POST['submit'])
{
#include "baza.php";
$mysql_id = mysql_connect('localhost', 'root', 'Kosmos45') or die("Blad");
mysql_select_db('zglaszalnia') or die("Blad");
$nick = $_POST['nick'];
$temat = $_POST['temat'];
$tresc = $_POST['tresc'];
$data = date("Y-m-d H:i:s");
$zapytanie = "INSERT INTO zgloszenia (nick, temat, tresc, data , admin, status) VALUES ('".$nick."', '".$temat."', '".$tresc."', '".$data."', '0', '0')"; //Zakladam ze admin tak = 1 nie = 0 :)
$wyk = mysql_query($zapytanie, $mysql_id);
if ($wyk == 1)
{
//Powiodlo sie...
}
else
{
//Cos poszlo nie tak...
echo 'Blad: '.mysql_error();
}
}
?>
A ja w bazie mam teraz zamiast polskich liter jakieś gzygzaki, zmieniłem w bazie kodowanie z latin1_swedish_ci na utf8_polish_ci i też nie pomaga, co zrobić?
– Dodane 26.09.2010 (N) 14:01 –
**OK wysyłanie już działa na 100% :)**a teraz plik panel.php
<?php
/*
$mysql_id = mysql_connect('localhost', 'root', 'XX') or die("Blad1");
mysql_select_db('zglaszalnia') or die("Blad2");
*/
// łączymy się z bazą danych
if (mysql_connect('localhost', 'root', 'XX') and mysql_select_db('zglaszalnia')) {
// zapytanie do bazy danych
$wynik = mysql_query("SELECT * FROM zgloszenia WHERE status='0'")
or die("Błąd w zapytaniu!");
mysql_close();
}
else echo "Nie mogę połączyć się z bazą danych!";
// wyświetlany wyniki zapytania
while($rek = mysql_fetch_array($wynik)) {
echo $rek['nick']. $rek['temat']. $rek['tresc']. $rek['data']"
zalatwione";
}
}
?>[/code]
i plik good.php
[code]<?php $result = mysql_query("UPDATE zgloszenia SET status = ‘1’); ?>
Chodzi o to że ktoś wysyła zgłoszenie jest zapisywanie do bazy ze statusem 0, i później wszystkie zgłoszenia ze statusem 0 są wyświetlane w panelu, i po kliknięciu na załatwione zamienia się na status 1 i już nie jest wyświetlane w panelu, a w panelu admina są wyświetlane wszystkie zgłoszenia i można je usuwać.
Ech myśl… Jak mamy ci tak pomagać przy wszystkim to zaraz zrobimy całą stronę za ciebie…
Wyświetlanie zgłoszeń ze statusem 0. Więc musisz wybrać z bazy tylko te wiersze gdzie status = ‘0’ i potem je wyświetlasz w tabeli z formularzem.
$zap = mysql_query("SELECT * FROM nazwa_bazy WHERE status = '0'");
while ($wiersz = mysql_fetch_array($zap))
{
$pole1 = $wiersz['pole1'];
echo ''.$pole1.'';
}
W panelu admina wybierasz wszystko i wyświetlasz w jakiejś innej tabeli. :)
[code]
$zap = mysql_query("SELECT * FROM nazwa_bazy");
[/code]
Ale ja chce zrobić jak się kliknie na zalatwione to zamienia się status jednego zgłoszenia na status=1 i znika z panelu – Dodane 26.09.2010 (N) 17:04 –
Nie dam rady sam, mógłbyś mi cała stronę napisać
Panel admina: admin.php ==> Wszystkie zgłoszenia, możliwość usuwania zgłoszeń
Panel: panel.php ==> oglądanie nowych zgłoszeń i Załatwianie, czyli po kliknięciu na odnośnik ‘załatwione’ zgłoszenie znika z panelu i jest u admina