ugrás a tartalomhoz

Nem kerül be a tartományok táblámba az adat (PHP, MySQL)

Anonymous · 2006. Jan. 4. (Sze), 13.49
hali lenne egy ilyen php scriptem. az a baj hogy nem írja be az adatokat az adatbázisba. A kapcsolat az létrejön de nem írja be valamiért az adatokat valaki segítheten !
<?php
$felhasznalo="******";
$jelszo="******";
$adatbazis="adatbazis1";
$kapcsolat=mysql_connect("localhost","$felhasznalo","$jelszo");
mysql_select_db('adatbazis1');
$query = 'SELECT * FROM tartomanyok';
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
$parancs="insert into tartomanyok (tartomany,nem,email)
values ('123xyz.com','F','dfc##kukac##dfg.hu')";
mysql_close( $kapcsolat )
?>
 
1

mysql_query kimaradt

attlad · 2006. Jan. 4. (Sze), 13.56
Melyik sorban küldöd el az INSERT INTO kérést a MySQL szervernek? Ha egyikben sem, akkor nem fog lefutni.
2

Ez lehet a hiba:

Corvus · 2006. Jan. 4. (Sze), 14.19
$result = mysql_query($query, $kapcsolat) or die('Query failed: ' . mysql_error());
A mysql_query() két paraméteres függvény. Az első paraméter a lekérdezés string, a második a kapcsolat azonosító. A manualban igaz h. a masodik paraméter nem kötelezőként van feltüntetve, de azért lehet h. mégis ez a gond.

A másik: a $parancs lekérdezést nem küldöd el a szervernek, tehát ez is hiányzik még:
$parancseredm = mysql_query($parancs, $kapcsolat) or die(mysql_error()." Hiba az insertnel.");
3

<Nincs cím>

Anonymous · 2006. Jan. 4. (Sze), 15.03
<?php
$felhasznalo="******";
$jelszo="8*******";
$adatbazis="adatbazis1";
	$kapcsolat=mysql_connect("localhost","$felhasznalo","$jelszo");
		mysql_select_db('adatbazis1');
    $query = 'SELECT * FROM tartomanyok';
    $result = mysql_query($query, $kapcsolat) or die('Query failed: ' . mysql_error());
$parancseredm = mysql_query($parancs, $kapcsolat) or die(mysql_error()." Hiba az insertnel.");
$parancs="insert into tartomanyok (tartomany,nem,email)
	values ('123xyz.com','F','fg##kukac##fg.hu')";
mysql_close( $kapcsolat )
?>
igy gondoltad?
4

gondolkozz

Hojtsy Gábor · 2006. Jan. 4. (Sze), 15.23
Sorról sorra folyik a végrehajtás. Ha a mysql_query($parancs) azelőtt van, hogy a $parancs valami értelmes értéket kap, akkor hogyan tudna lefutni? Érdemes lenne egy kicsit átgondolni, hogy mit csinál a program, amit leírsz.
5

Kezdő vagyok és még nem tudom annyira a php -t

Anonymous · 2006. Jan. 4. (Sze), 15.33
azért kértem segítséget mert nagyon kezdő vagyok és akár hoy csinálom nem jön össze.
6

Fordítsd meg

Anonymous · 2006. Jan. 4. (Sze), 16.10
Előbb adj értéket a $parancs változónak (INSERT INTO ...) és utána küldd el a MySQL kérést.
7

<Nincs cím>

Anonymous · 2006. Jan. 4. (Sze), 16.23
<?php
$felhasznalo="*****";
$jelszo="*****";
$adatbazis="adatbazis1";
	$kapcsolat=mysql_connect("localhost","$felhasznalo","$jelszo");
		mysql_select_db('adatbazis1');
    $query = 'SELECT * FROM tartomanyok';
    $parancs="insert into tartomanyok (tartomany,nem,email)
                       values ('123xyz.com','F',sdf##kukac##fgh.hu')";
$result = mysql_query($query, $kapcsolat) or die('Query failed: ' . mysql_error());

mysql_close( $kapcsolat )
?>

És így már végre akkor beírja az adatokat az adatbázisba? Mert elvileg az lenne a cél.
8

nézd már meg mit csinálsz!

Hojtsy Gábor · 2006. Jan. 4. (Sze), 16.30
Ezen a ponton már tényleg viccre tudok csak gyanakodni... Nem írtál olyan sok sort, olvasd el mit írtál oda! Beállítod a $query változót a SELECT-re, aztán beállítod a $parancs változót az INSERT-re, de azt sosem használod fel, hanem szépen a $query-ben megadott parancsot használod, tehát lefut a SELECT, az INSERT meg mintha ott sem lenne. Ha nem látod át, hogy mi hova kerül, nem kell ám ennyi változót használni...
<?php
mysql_connect('localhost', 'userneved', 'jelszavad');
mysql_select_db('adatbazisod');
mysql_query('INSERT INTO ...');
?>
Ez ugyanúgy megcsinálja amit akarsz (persze hibakezelés nélkül), és legalább látod, mi hol történik, ha már három soron keresztül nem látod, hogy nem ugyanazt a változót használod.
9

"$ize" != $ize

Anonymous · 2006. Jan. 4. (Sze), 18.20
Nekem még az a "$felhasznalo" és "$jelszo" is gyanús... nem kell idézőjel.
10

De egyenlő

fberci · 2006. Jan. 4. (Sze), 18.54
Tényleg nem kell oda idézőjel, de nem hibás a szintakszis.

Üdv.: fberci
11

Egyenlő?

Balogh Tibor · 2006. Jan. 4. (Sze), 21.09
Mondjuk csak ebben az esetben, de felesleges, és nem feltétlenül egyenlő.
<?php
 $egy_szám = 12;
 echo is_int("$egy_szám")? "igen":"nem";
?>
12

még nem megy

Anonymous · 2006. Jan. 6. (P), 14.50
<html>
<body>
<form action="$PHP_Self" method="POST">
A kívánt tartomány:
<INPUT TYPE="text" NAME="tartomany"><br>
E-mail cím:
<INPUT TYPE="text" NAME="email"><br>
<SELECT NAME="nem">
<option value="N"> Nő
<option value="F"> Férfi
</SELECT>
<INPUT TYPE="submit" value="Elküld">
</form>
</html>
</body>

<?php
$felhasznalo="*****";
$jelszo="******";
$adatbazis="adatbazis1";
$kapcsolat=mysql_connect("localhost","$felhasznalo","$jelszo");
mysql_select_db('adatbazis1');
$query = 'SELECT * FROM tartomanyok';
$parancs="insert into tartomanyok (tartomany,nem,email)
values ('$tartomany','$nem','$email')";
mysql_query($parancs,$kapcsolat) or die('Query failed: ' . mysql_error());
mysql_close($kapcsolat);
?>
Amit a <INPUT TYPE="text" NAME="tartomany"> ba írok nem adjat át és nem rakja be az adatbázisba. Hiányzik még valami ???
13

Felesleges

Anonymous · 2006. Jan. 6. (P), 15.20
Áruld már el, hogy a $query változónak minek adsz értéket? Nem hívod meg sehol.
14

register_globals

Hojtsy Gábor · 2006. Jan. 6. (P), 15.36
Nem tudom a feltételezés honnan származik, hogy a $tartomany váltózónak és társainak az űrlap alapján létre kell jönnie, de ez ma már nincs így PHP-ben. A $_GET illetve $_POST tömbben vannak az adatok az űrlapnevek szerint, pl. $_POST['tartomany'] a te esetedben. $PHP_Self soha nem is volt, esetleg $PHP_SELF volt, de ma az is $_SERVER['PHP_SELF'] ugyanezen ok miatt. Ráadásul ha csak úgy beírod a HTML-be anélkül, hogy PHP módba váltanál, akkor nem kerül be a megfelelő érték...
15

egy lehetőség

breakline · 2006. Jan. 9. (H), 01.25
Elvileg meg kell hogy kapjad...

de egyébként mint kezdő, azt tanácsolom, úgy fejleszd az egészet, hogy először nézd meg, működik-e a form az sql-ek nélkül. Lehet amatőrnek hangzik, de kit érdekel, sztem kifejezetten hasznos.
Pl. először ilyesmit:
if (isset($formodneve))
{
echo "$tartomany<br>";
echo $email;
}

az $formodneve az a név amit a form tagben megadsz (neked hiányzik, sztem adj neki valami nevet). Így alapból ellenőrzöd, hogy elküldtek-e formot és nem csak úgy meghívták az oldalt kamu változókkal. Mivel egyik adatot sem ellenőrzöd, így sztem itt felesleges a GET és a POST tömbökből venni a változókat, de ha nem működik próbáld meg ezt : $HTTP_POST_VARS['tartomany']
Ami még gond lehet az az INSERT, bár az az igazság én sem tudom, mit követel meg a Mysql szintaktikája, de én így csinálnám:
mysql_query("INSERT INTO `tartomanyok` ( `tartomany` , `nem` , `email` )
VALUES ('$tartomany', '$nem', '$email');

Gondolom az $query-vel akartad leellenőrizni, van-e már ilyen az adattáblában, az kicsit hiányos így, de ha nem err, akkor mire kell?

Üdv
breakline