Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawanie do tabeli - co robię źle?
Forum PHP.pl > Forum > Bazy danych > MySQL
zyweriusz
Mam skrypt addevent.php
[php:1:83746fede9]<?php
<html>
<head>
<title>Add Event</title>
</head>
<body>
<font size="+2"><b>Add Event</b></font><br><br>
<?php
if ($action == "add") {
include("common.php");
$link = dbConnect();
if ($year < 60) {
$year += 2000;
} else if ($year < 100) {
$year += 1900;
}
$month--;
$event = nl2br($event);
$event = eregi_replace("[nr]+", "", $event);
$query = "INSERT INTO $table (year, month, day, title, event) VALUES ($year, $month, $day, '$title', '$event')";
// Execute query
$result = mysql_query($query);
if ($result)
{
print "<font color="#0000ff">Event added</font><br>n";
}
else
{
// Otherwise, inform user of failure
print "<font color="#ff0000">Couldn't add event</font><br>n";
}
mysql_close($link);
}
?>
<form action="addevent.php" METHOD="post">
<table border="1" cellspacing="2" cellpadding="3">
<tr>
<td>Date</td>
<td>
Day <input type="number" name="day" size="2">&nbsp;&nbsp;
Month <input type="number" name="month" size="2">&nbsp;&nbsp;
Year <input type="number" name="year" size="4">
</td>
</tr>
<tr>
<td>Title</td>
<td><input type="text" name="title" size="50"></td>
</tr>
<tr>
<td>Event</td>
<td><textarea name="event" cols="50" rows="5"></textarea></td>
</tr>
<tr>
<td colspan="2">
<input type="hidden" name="action" value="add">
<input type="submit" value="Add Event">
</td>
</tr>
</table>
</form>
</body>
?>
</html>
[/php:1:83746fede9]
i skrypt common.php
[php:1:83746fede9]
<?

$dbHost = "localhost";
$dbUser = "nazwa";
$dbPass = "nazwa";
$dbName = "nazwa";
$table = "nazwa";
function dbConnect() {
global $dbHost;
global $dbUser;
global $dbPass;
global $dbName;
$link = @mysql_connect($dbHost, $dbUser, $dbPass);
if (!$link) {
fail("Couldn't connect to database server");
}
if (!@mysql_select_db($dbName)) {
fail("Couldn't find database $dbName");
}
return $link;
}
function fail($errorMsg) {
$errorMsg = urlencode($errorMsg);
print "&result=Fail&errormsg=$errorMsg";
exit;
}
?>

Dlaczego nie dodają mi się rekordy do tabeli.
Z wiersza poleceń działa.
Czy moga to być jakies problemy z ustawieniami?
Bo testowałem już (niestety bardzo długo) z różnymi skryptami.
?>[/php:1:83746fede9]
DreeD
zmienne ktore tam uzywasz ($action, $date itd.) wychodza z formularza a wiec nie [php:1:00f1e7ce12]<?php
if ($action == "add") {
?>[/php:1:00f1e7ce12]
tylko[php:1:00f1e7ce12]<?php
if ($_POST['action'] == "add") {
?>[/php:1:00f1e7ce12]

i to samo z reszta... latwiej bedzie uproscic czyli
[php:1:00f1e7ce12]<?php
$action = $_POST['action'];
?>[/php:1:00f1e7ce12]

moze pomoc (nie jestem pewien na 100%)
moje ciut slepawe oko nie widzi wiecej bledow... :wink:
zyweriusz
Dzieki.
Działa.
Jestem tepy.
Jak będe mógł pomóc z Flasha to bardzo
chętnie.
Teraz zabieram się do przejmowania danych z bazy przez Flasha.
Więc pewnie jeszcze się odezwę ...
Ale moze jutro ...
zyweriusz
NIestety pospieszyłem sie
Wywaliło mi
Couldn't add event
[php:1:455896ad15]<?php
$result = mysql_query($query);
// If the query was successfull
if ($result)
{
// Output success msg
print "<font color="#0000ff">Event added</font><br>n";
}
else
{
// Otherwise, inform user of failure
print "<font color="#ff0000">Couldn't add event</font><br>n";
}
?>[/php:1:455896ad15]
BzikOS
Proszę wyedytować wątek i zmienić temat. Do tego czasu proszę nie odpowiadać w tym temacie.
zyweriusz
Czy bład jest tutaj:
[php:1:d2259e9625]<?php
$query = "INSERT INTO $table (year, month, day, title, event) VALUES ($year, $month, $day, '$title', '$event')";

?>[/php:1:d2259e9625]
Majdan
Spróbuj tak:
[php:1:31e83605ee]<?php
$query = "INSERT INTO ".$table." (year, month, day, title, event) VALUES (".$year.", ".$month.", ".$day.", '".$title."', '".$event."')";
?>[/php:1:31e83605ee]
zyweriusz
Niestety ten sam błąd - nie dodaje.
DreeD
powiedz mi gdzie tu jest polaczenie z baza? bo albo moje slepawe oczy nie widza albo ty tylko przypisales do zmiennej:[php:1:98dedead72]<?php
$link = dbConnect();
?>[/php:1:98dedead72]
a nie uzyles tej funkzji :?
Majdan
Spróbuj tego:
[php:1:685a7afbae]<?php
$host = "localhost";
$user = "";
$haslo = "";
$baza = "";

$table = "";
$year = "";
$month = "";
$day = "";
$title = "";
$event = "";


if (!$id = mysql_connect($host, $user, $haslo)) echo mysql_errno($id) . ": " .mysql_error($id). "n";

if (!mysql_select_db($baza, $id)) echo mysql_errno($id) . ": " .mysql_error($id). "n";

$query = "INSERT INTO ".$table." (year, month, day, title, event) VALUES (".$year.", ".$month.", ".$day.", '".$title."', '".$event."')";

if (!$wynik = mysql_query($query)) echo mysql_errno($id) . ": " .mysql_error($id). "n";
?>[/php:1:685a7afbae]
Umieść to w nowym pliku i uzupełnij zmienne.
zyweriusz
Tak - teraz dodaje.
Lecz jak połączyć to z tymi ograniczeniami dotyczącymi dat i polami input?
zyweriusz
Spróbowałem tak:
[php:1:7c7456a0c8]<?php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<title>Add Event</title>
</head>
<body>
<font size="+2"><b>Add Event</b></font><br><br>
<?php
if ($_POST['action'] == "add") {
$host = "localhost";
$user = "janusz";
$haslo = "zywert";
$baza = "phpforflash";
$table = "events";
$id = mysql_connect($host, $user, $haslo);
if (!mysql_select_db($baza, $id)) echo mysql_errno($id) . ": " .
mysql_error($id). "n";
$query = "INSERT INTO ".$table." (year, month, day, title, event) VALUES (".$year.", ".$month.", ".$day.", '".$title."', '".$event."')";
if (!$wynik = mysql_query($query)) echo mysql_errno($id) . ": " .
mysql_error($id). "n";
}
?>
<form action="test.php" METHOD="post">
<table border="1" cellspacing="2" cellpadding="3">
<tr>
<td>Date</td>
<td>
Day <input type="number" name="day" size="2">&nbsp;&nbsp;
Month <input type="number" name="month" size="2">&nbsp;&nbsp;
Year <input type="number" name="year" size="4">
</td>
</tr>
<tr>
<td>Title</td>
<td><input type="text" name="title" size="50"></td>
</tr>
<tr>
<td>Event</td>
<td><textarea name="event" cols="50" rows="5"></textarea></td>
</tr>
<tr>
<td colspan="2">
<input type="hidden" name="action" value="add">
<input type="submit" value="Add Event">
</td>
</tr>
</table>
</form>
</body>
</html>

?>[/php:1:7c7456a0c8]

i otrzymałem to:
1064: You have an error in your SQL syntax near ' , , '', '')' at line 1
Majdan
Spróbuj zmienić tą linię:
[php:1:6be8337016]<?php
$query = "INSERT INTO ".$table." (year, month, day, title, event) VALUES ('".$year."',
'".$month."', '".$day."', '".$title."', '".$event."')";
?>[/php:1:6be8337016]
zyweriusz
Zminiłem kod na taki i zamist danych w bazie powstaja puste pola
Nie wypełnia tabeli
Nie wiem co zrobić

[php:1:08994c89b1]<?php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<title>Add Event</title>
</head>
<body>
<font size="+2"><b>Add Event</b></font><br><br>
<?php
if ($_POST['action'] == "add") {
$host = "localhost";
$user = "janusz";
$haslo = "zywert";
$baza = "phpforflash";
$table = "events";
$id = mysql_connect($host, $user, $haslo);
if (!mysql_select_db($baza, $id)) echo mysql_errno($id) . ": " .
mysql_error($id). "n";
$query = "INSERT INTO ".$table." (year, month, day, title, event) VALUES ('".$year."', '".$month."', '".$day."', '".$title."', '".$event."')";
if (!$wynik = mysql_query($query)) echo mysql_errno($id) . ": " .
mysql_error($id). "n";
}
?>
<form action="test.php" METHOD="post">
<table border="1" cellspacing="2" cellpadding="3">
<tr>
<td>Date</td>
<td><input type="text" name="day" size="50"></td>
</tr>
<tr>
</tr>
<td>Month</td>
<td><input type="text" name="month" size="50"></td>
</tr>
<tr></tr>
<td>Year</td>
<td> <input type="text" name="year" size="50"></td>
</tr>
<tr>
<td>Title</td>
<td><input type="text" name="title" size="50"></td>
</tr>
<tr>
<td>Event</td>
<td><textarea name="event" cols="50" rows="5"></textarea></td>
</tr>
<tr>
<td colspan="2">
<input type="hidden" name="action" value="add">
<input type="submit" value="Add Event">
</td>
</tr>
</table>
</form>
</body>
</html>

?>[/php:1:08994c89b1]
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.