Felhasználói adat módosítása az adatbázisban probléma

Keresés
Hírlevél
 
ASPC#C++CSSDelphiFlashJavaJavaScriptPascalPerlPHPPythonuniPaaSVisual BasicVisual C++  »    
nyitotta: HiperSpeed98, idő: 2012.06.29., moderátor: Árnyék
  Értesítés változás esetén Felvétel kedvencekhez Küldés emailben

Kategóriák:Adatbázisok » MySQL

Sorrend:
Időzóna:
Blokkméret:
Oszd meg!
A kérdésem az lenne, hogy hogyan tudok felhasználókén adatot módosítani az

adatbázisban.
Arra jutottam, hogy nem módosítja, hanem létrehoz egy új felhasználót üres

mezőkkel, kivéve a pént és ott 500-van...
Így néz ki a kód:

<?php
$felhasznalonev = $_SESSION['felhasznalonev'];
$penz = 500;
if ($penz)
{
$kapcsolodas = mysql_connect('localhost','root','');
$adatbazis = mysql_select_db('users',$kapcsolodas);


$query2 = mysql_query("INSERT INTO info VALUES

('','','','','','','','','','','','','$penz','','','','','')");
{
echo "Sikerült!";
}
}
?>

Szerintetek mi lehet a probléma?
Ezt most tényleg komolyan kérdezem:
Ez valami vicc? Az áprilisi tréfával már nagyon elkéstél... előzmény
Ez nem vicc :D előzmény
Biztos nem vicc?

"Arra jutottam, hogy nem módosítja, hanem létrehoz egy új felhasználót"
vs.
$query2 = mysql_query("INSERT INTO info VALUES

"üres mezőkkel, kivéve a pént"
vs.
('','','','','','','','','','','','','$penz','','','','','')");

és ott 500-van...
vs.
$penz = 500;

...és a végén kiíratod, hogy sikerült, de meg sem vizsgálod, hogy tényleg sikerült-e, csak kiírod, hogy sikerült:
{
echo "Sikerült!";
}



A megoldás menete:
1) Megvizsgálod, hogy minden elposztolt adat helyes-e.
2) SELECT-tel lekérdezed a felhasználó aktuális beállításait, melyet mysql_fetch_assoc() függvénnyel bele teszel egy tömbbe.
2) Az elposztolt adatokkal felülírod a tömb ugyanazon elemeit.
3) Rosszul megadott adat(ok) esetén a tömbben lévő adatokkal újra a felhasználó elé tolod az űrlapot, kitöltve a mezőket a tömb adataival.
4) Ha minden jól van megadva, akkor nem INSERT INTO-t használsz, hanem UPDATE-et, hiszen az előbbi tényleg új adatot fűz hozzá, az UPDATE meg már meglévőt írja felül. Az UPDATE-nél figyelj, hogy egyértelműen azonosítsd a módosítandó rekordot (a tábla kulcsmezője jó lesz erre), különben mindenkit felülírsz, nem csak az aktuális felhasználót.
5) Kiíratod, hogy a módosítás sikeres volt.

Hajrá! előzmény
Az INSERT létrehoz egy új adatot. Ha módosítani akarsz, akkor UPDATE előzmény
Így gondoltátok az UPDATE-et???

<?php

$felhasznalonev =$_SESSION['felhasznalonev'];
$penz = 500;
if ($penz)
{
$kapcsolodas = mysql_connect('localhost','root','');
if(!$kapcsolodas)
{
echo "Nincs kapcsolat az Adatbázissal!";
}
$adatbazis = mysql_select_db('users',$kapcsolodas);
if(!$adatbazis)
{
echo "Nem sikerült kiválasztani a felhasználót!";
}

$query = mysql_query("UPDATE info VALUES('','','','','','','','','','','','','$penz','','','','','','')");
if ($query)
{
echo "Sikerült!";
}
else
{
echo "Nem Sikerült!";
}
}
?> előzmény
Annyi sok szép más szakma van, nem akarsz váltani? előzmény
Szerintem ismerkedj meg előbb a MySQL-lel és utána te is rájössz majd mi a hiba. :)
Egy kis segítség:
-A Google a barátod!Keres pl. így: mysql update
-Hivatalos leírás: http://dev.mysql.com/doc/refman/5.0/en/update.html
-W3schools: http://www.w3schools.com/php/php_mysql_update.asp
És még sorolhatnám. előzmény
$query2 = mysql_query("INSERT INTO info VALUES

('','','','','','','','','','','','','$penz','','','','','')");


Azért üres a többi mező, mert nincs benne semmi. A többi idézőjelek közé kell tenni az adatokat...Mellesleg nem árt odarakni, hogy mely oszlopokba helyezed ezeket az adatokat.

$query2 = mysql_query("INSERT INTO info VALUES

('','','','','','','','','','','','','$penz','','','','','')");

Helyett
$query2 = mysql_query("INSERT INTO info
(mezo1,mezo2,mezo3,,,,,,,,penzmezo,,,,,,,,) VALUES
('mezo1value','mezo2value','mezo3value','','','','','','','','','','$penz','','','','','')");
Ha nincs megadva az oszlop és az érték, a mysql azt sem tudja miről beszélsz. előzmény
Ha nincs megadva az oszlop és az érték, a mysql azt sem tudja miről beszélsz.

Khm, ez nem egészen így van. Tessék megismerkedni az insert szintaxisával. Bár hozzátenném, hogy régen kiderült a témában, hogy inkább update-ről van szó és nem insert-ről. előzmény
Oszd meg!