Keresés
Hírlevél
 
Kiemelt témák
»Hogy viszonyul ehhez a család?
»Legjobb metodika emberi relációk tárolására
»A programozó hibája, hogy törik a programját?
»Jogosultság kezelés mezőszinten
Állás/munka
»Wordpress szakértőt keresünk
»Kamu álláshirdetők listája
»Front-end fejlesztő / Sitebuilder
»DataStore Developer
»PHP programozó, webfejlesztő munkát keres
» több téma
Tudástár
Oldalon keresés 8x írja ki az eredményt
?XML-ből sok szövegmező
?Input mezőből visszakapott adat probléma
TinyMCE és az ékezetek
?Rengeteg hasonló kép betöltése gyorsan (PHP)
Ékezetes kar. nem minden táblában jól
?Shelltreeview gond
Grafikon rajzolás probléma
?Onclick= php függvény
?Egyenes megrajzolása
?Access-ből adott xml fájl kinyerése
Listázás időpont szerint
Exportálás változó könyvtárba
*Link eredményének kiolvasása
Imagemapre képet
» több téma
Társalgó
»A programozásból jól meg lehet élni?
»MFC tanulás
»Könyvet adok-veszek
»Hogy viszonyul ehhez a család?
»Nintendo wii
»Letölthető az új Rad Studio XE és Delphi XE
»Weblap véleményezés
»Játékmotor elmélet
»Informatikai bulvárlap
»Delphi-ről C++-ra váltás
» több téma
ASP  |  C#  |  C++  |  CSS  |  Delphi  |  Flash  |  HTML  |  Java  |  JavaScript  |  Pascal  |  Perl  |  PHP  |  Python  |  Visual Basic  |  Visual C++  |    »    

Tudástár

»

Mysql update hiba

»

Mysql update hiba

nyitotta: zsocatetuna, idő: 2010.03.13., moderátor: Árnyék
  Értesítés változás esetén Felvétel kedvencekhez Küldés emailben Nyomtatható verzió

Kategóriák:Programozási nyelvek » PHP
Adatbázisok » MySQL

Sorrend:
Időzóna:
Blokkméret:
Sziasztok!

Azt szeretném kérdezni, hogy van 1 olyan hibám, hogy megírtam egy scriptet, ami minden funkciót elvégez amit szeretnék, kiirja az sql-es adatokat, de ha update-lni akarom, nem történik seemi, lefut, kiírja hogy updatelve, de sajnos a háttérben nem történik seemi!

A kód:


<?php
$con = mysql_connect("localhost","root","kurvensine");
if (!$con)
{
die('Nem tudok kapcsolódni: ' . mysql_error());
}

mysql_select_db("web_admin", $con);

$result = mysql_query("SELECT * FROM tartalom");

while($row = mysql_fetch_array($result))
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Szövegszerkeszto</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="index.php?ment=mentes">
  <label>
  <div align="center">
    <textarea name="tartalom" cols="100" rows="20" id="tartalom"><?php echo $row['tartalom']; ?></textarea>
    <br />
    <br />
    <input type="submit" name="Submit" value="Ment&eacute;s" />
</div>
  </label>
</form>
</body>
</html>
 <?php
 if($_GET[ment]=="mentes")
{
mysql_query("UPDATE web_admin SET tartalom = '".$_POST["tartalom"]."' WHERE id='1'");
echo ("<br>Sikeresen módosítva!");
}
?>
<?php
}
mysql_close($con);


?>

Mi lehet a baj?

Köszönöm a segítséget!
ne cikluson belül updatelj szerintm.

itt meg látsz egy példát, ha kitöltöd a táblaneved és mezőneveket.

elsődleges kulcs alapján UPDATE -el.

Módosító kódhoz generótor
Szia!

Kicsit módosítottam, de sajnos így sem hozta az igazát

Most a cikluson kívül és elsődleges kulcsal sem hozza az igazát


<?php
$con = mysql_connect("localhost","root","kurvensine");
if (!$con)
{
die('Nem tudok kapcsolódni: ' . mysql_error());
}

mysql_select_db("web_admin", $con);

$result = mysql_query("SELECT * FROM tartalom");

while($row = mysql_fetch_array($result))
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Szövegszerkeszto</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="index.php?ment=mentes&id=1">
  <label>
  <div align="center">
    <textarea name="tartalom" cols="100" rows="20" id="tartalom"><?php echo $row['tartalom']; ?></textarea>
    <br />
    <br />
    <input type="submit" name="Submit" value="Ment&eacute;s" />
</div>
  </label>
</form>
</body>
</html>
<?php
}
?>
 <?php
 if($_GET[ment]=="mentes")
{
mysql_query("UPDATE web_admin SET tartalom = '".$_POST["tartalom"]."' WHERE id='".$_GET["id"]."'");
echo ("<br>Sikeresen módosítva!");
}
?>
<?php
mysql_close($con);


?>

Akkor a te generátorod használjam? ebből nemlehet varázsolni valami működőt?

Köszi a gyors választ!
nézd meg hogy milyen elven működik, melyik részt hova tettem, és akkor talán közelebb leszel a megoldáshoz.

a formok kirakása az UPDATE elés után történik, ha egyáltalán lett UPDATE esemény kiválasztva az űrlappal.

Az elsődleges kulcsot meg rejtett mezőbe küldd tovább, hogy tudd mit kell átírni.

A fejléc kirakása a cikluson belül sem túl jó ötlet... Azt az UPDATE és az űrlapok közé kéne hogy tedd.
Szia!

Most eljutottam addig, hogy látom, hogy mi történt!

Eredmény: UPDATE tartalom SET `tartalom`='kedves' WHERE `id`=''

Tehát ahogy lejön nekem az idvel, van a gond.

Id-t postolni hogytudok?

Előre is köszi a választ!
rejtett mezőbe teszed

<input type="hidden" name="id" value="<?php echo $row["id"]?>">
Szia!

Megy minden, köszönöm!

Jó hétvégét!
szívesen.
Hello

Gondolom már te nem fogod ezt olvasni, de ha más ide tévedne és ezt látná azért pár kiegészítés.
1. és legfontosabb:
<?php while($row = mysql_fetch_array($result)) {
?>
<!-- HTML rész -->
<?php
}
?>
Ilyen nincs. Vagyis, mint látható működik, de van amit direkt erre találtak ki. while, helyes használata
<?php while($row = mysql_fetch_array($result)): ?>
<!-- HTML rész -->
<?php endwhile; ?>

2., pici fura dolog:
Ha a cikluson belülre teszed a <html>,<head>, stb részeket is, akkor, ha több, mint egyszer hajtódik végre, akkor többször fog szerepelni - mily meglepő, tudom - és ez nem túl "valid" sőt, nem túl értelmes dolog.

3., már szinte nem is számít:
a cikluson belűl az "id" részek nem változnak, az az, ha többször végrehajtódik a ciklus lesz azonos "id"-jű HTML elemeid. És így használhatatlan lesznek, sőt zavaros vagyis kerülendő.

4., már csak gyakorlati hiba:
method="post" action="index.php?ment=mentes&id=1
<?php
 if($_GET[ment]=="mentes")
{
mysql_query("UPDATE web_admin SET tartalom = '".$_POST["tartalom"]."' WHERE id='".$_GET["id"]."'");
echo ("<br>Sikeresen módosítva!");
}
?>
Ha egyszer "POST"-olod, akkor próbálj meg mindent "post"-olni, ne fele itt, fele ott.
És a $_GET['ment'] azért kell gondolom, hogy lásd, el lett küldve a form. De akkor miért nem a $_POST['Submit']-ot ellenőrzöd, amit úgy is elküldesz és nem kell plusz változót bevezetni.

4.5, mert részben az előzőhöz tartozik:
Vagy a formba beteszed
<input type="hidden" name="id" value="<?php echo $row["id"]?>">

ekkor megtalálod a többi adat mellet a $_POST[] tömbbe.

Vagy ha a formba már beraktál egy változót
action="index.php?ment=mentes&id=1
Akkor azt használd, de redundánsan nincs sok értelme. De ha ezt használnád, azért elöbb javítsd ki, hogy a jó id legyen benne
action="index.php?ment=mentes&<?php echo $row["id"]?>

Így első körbe ennyit vettem észre, de nem ártana egy kis MVC, vagy csak HTML-PHP szétválasztást tanulni.

U.i.: Elírás lehet benne, csupán a dologra való rávilágítás tartalmazza nem feltétlen a feladat pontos, jó megoldását.
Belépés
E-mail cím:
Jelszó:

RSS források
-Hírek
-Cikkek
-Fórumok
-Állás/munka
Top pontgyűjtők
»Micu1.030
»Interlock280
»mezofi150
»Pitta_100
»Frostech0100
»szbzs.2100
»Riha60
»Akhiles50
»mrchandra50
»Bakter50
Top wikieditorok
»Sting
»Doi
»FlamingClaw
»Argathron
»Csaboka2
»Vodka
»Joexy
»Ivn
»Balucinho
»Kelemzol
» ugrás a wikire
A nap kifejezései
»Algoritmus
»Hogyan kezdjem el
»Perl
» ugrás a wikire
Hírek
»Megérkezett a PostgreSQL 9.0 kiadásra jelölt változata
»Letölthető az új Rad Studio XE és Delphi XE
»Function-X digitális művészeti találkozó és demoscene party
»Webfejlesztőknek szóló közösségi oldalt indított a Microsoft
»Letölthető a hardvergyorsított Chrome 7 első fejlesztői kiadása
» több hír
PC Fórum hírek
»Itt az első kép az AMD nyolcmagos processzoráról
»"Szuperdizájnos" érintő-egeret mutatott be a Microsoft
»Szabadalmaztatta a számítógép kikapcsolását a Microsoft
»Vírusriadót váltott ki a webezőknél a Google
»Ingyen iWiW-ezhetnek mobiljaikról a T-Mobile-osok
»Automatikusan kiválogatja legfontosabb leveleink a Google
»OOo4Kids - ingyenes Office csomag gyerekeknek
»Új, gyorsabb Core i3 és Pentium processzorokat jelentett be az Intel
Tagi blogok
»PSP
»Első Programozó
»USB
»PHP, mint sablonmotor egyszerűen