ugrás a tartalomhoz

Űrlap feltöltése és lekérdezése

jamijami · 2009. Már. 2. (H), 20.12
Sziasztok!

Egy php űrlapot szeretnék készíteni, ami a kitöltött mezőket feltölti egy adatbázis adott táblájába, majd ezeket a feltöltött adatokat egy másik php oldalon (admin oldalon) kilistázza.

Az űrlapom ennyi:
<form action="siker.php" method="get" enctype="application/x-www-form-urlencoded" name="form1" id="form1">
<input type="text" name="nev" id="nev" />
<input type="submit" name="gomb" id="gomb" value="Submit" />
</form>


Az adatbázis azonosításához szükséges fájl:
<?php
$host ="localhost";
$user ="9139";
$pass ="******";
$database = "9139";
?>


És a bonyodalmak (a php oldal, aminek az adatokat fel kellene dolgozni és feltölteni az sql-be):
<?php
include "sql_eleres.php";
$kapcsolat = mysql_connect($host, $user, $pass);
mysql_select_db($database,$kapcsolat);
$parancs = "SELECT*FROM ajanlat";
$eredmeny = mysql_query($parancs, $kapcsolat);
while ($egy_sor = mysql_fetch_array($eredmeny))
{
$sorszam[] = $egy_sor["sorszam"];
$szoveg[] = $egy_sor["szoveg"];
}
mysql_close($kapcsolat);
?>


Ezt példa alapján csináltam és ha bár az űrlapba bevitt adatokat ki tudom íratni a php oldalra, nem tudom a módját, hogyan tudnám felölteni a táblába. Csak szövegről meg számokról lenne szó, semmi komolyabb. Nagyon fontos lenne a segítség.

Üdv
 
1

INSERT

a.d.a.m · 2009. Már. 2. (H), 21.35
MySQL-ben az INSERT (vagy INSERT INTO) paranccsal tudod ezt a hatást elérni. (A link az angol MySQL oldalára mutat, de a neten számtalan magyar nyelvű olvasmányt is találhatsz a témában.)
INSERT táblaneve (`oszlop1`, `oszlop2`, `oszlopn`) VALUES ('érték1','érték2','értékn');
Ami fontos, hogy ellenőrizd az adatokat (htmlspecialchars stb.) mielőtt az adatbázisba rögzíted! Ezzel kapcsolatban több bejegyzés is talász itt a Weblaboron, pl. itt: http://weblabor.hu/cikkek/phpkeretrendszer.

A beküldött kóddal kapcsolatban: érdemes lenni lekezelned a hibákat és kivételeket (pl. ha nem hozható létre kapcsolat a mysql-lel, vagy nem létezik az adatbázis). Erre találsz példát a manualban a mysql_connect()-nél.
2

INSERT

Poetro · 2009. Már. 2. (H), 21.37
Valami hasonló:
mysql_query(sprintf("INSERT INTO ajanlat (szoveg) VALUES(%s)", 
  mysql_real_escape_string($_GET['nev'])));
Persze nem tudom, hogyan néz ki a táblád, és milyen típusú mezők vannak benne, amiknek a nevét se tudom, de mindenesetre valami hasonló.
3

INSERT

jamijami · 2009. Már. 3. (K), 18.17
Az űrlapot (urlap.php), config fájlt (sql_eleres.php) változatlanul hagytam. Az adatokat feldolgozó és feltöltő siker.php-t változtattam erre:
<?php
include "sql_eleres.php";
$kapcsolat = mysql_connect($host, $user, $pass);
mysql_select_db($database,$kapcsolat);
if (!$kapcsolat) {
    die('Nem lehet csatlakozni ' . mysql_error());
}
echo('A csatlakozás sikerült');
$parancs = "SELECT*FROM ajanlat";
$eredmeny = mysql_query($parancs, $kapcsolat);
while ($egy_sor = mysql_fetch_array($eredmeny))
{
$sorszam[] = $egy_sor["sorszam"];
$szoveg[] = $egy_sor["szoveg"];
}
mysql_query(sprintf("INSERT INTO ajanlat (szoveg) VALUES(%s)",  
mysql_real_escape_string($_GET['nev'])));
print $_GET['nev'];
mysql_close($kapcsolat);
?>


Az adatbázisomban a tábla neve ajanlat, 2 mező van benne: azonosito és szoveg. Az azonosító a kulcs és integer, valamint auto_increment-re van állítva. A szoveg text. Gondolom a siker.php-vel lehet a gond. A beküldött nevet kiírja és azt is, hogy a kapcsolat sikeres, de nem tölti fel az adatbázisba.
4

hiányzik

a.d.a.m · 2009. Már. 3. (K), 18.41
1. Hiányzik a kapcsolatazonosító mysql_query-ből:
mysql_query(sprintf("INSERT INTO ajanlat (szoveg) VALUES(%s)",
mysql_real_escape_string($_GET['nev'])), $kapcsolat);

bár ez nem okoz hibát. A gondot inkább az okozhatja, hogy

2. hiányzik az aposztróf(') az értékek meghatározásánál:
mysql_query(sprintf("INSERT INTO ajanlat (szoveg) VALUES('%s')",
mysql_real_escape_string($_GET['nev'])));

Érdemes, a hibakeresés időtartamára, visszakapcsolni a hibaüzenetek megjelenítését: ini_set('display_errors', 1); Esetleg, ha nem vagy biztos az SQL lekérdezésedben teszteld azt valamilyen adatbázisfelületen (pl. PhpMyAdmin > SQL).
5

működik

jamijami · 2009. Már. 3. (K), 20.40
Javítottam, így már tökéletes, hála Nektek. Köszönöm a segítségeket.