Chyba pri editaci zaznamu v DB – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Chyba pri editaci zaznamu v DB – PHP – Fórum – Programujte.comChyba pri editaci zaznamu v DB – PHP – Fórum – Programujte.com

 

tribalcz0
Super člen
16. 4. 2012   #1
-
0
-

Ahoj mam problem kdyz chci editovat zaznam v databazi a nejedna se o jedno slovo ale treba o 50 radku tak mam problem ze se mi do textarea nevypise obsah dane bunky a zustane to prazdny :(

Nahlásit jako SPAM
IP: 78.45.181.–
Jelec0
Newbie
16. 4. 2012   #2
-
0
-

A co takhle zdrojový kód? Takhle ti někdo těžko pomůže...

Nahlásit jako SPAM
IP: 89.190.44.–
tribalcz0
Super člen
16. 4. 2012   #3
-
0
-

takze napriklad potrebuji zmenit email uzivatele

<?php
$con = mysql_connect("localhost","root","rootheslo");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("my_db", $con);

mysql_query("UPDATE Persons SET email = '$email'
WHERE id= '$id' AND nick = 'nick'");

mysql_close($con);
?>

dale zjistuji data z databaze podle kterych se bude menit hodnota nasledovne

<?php

$id = $_SESSION["id"];

$nick = $_SESSION["nick"]

?>

vse probehne korektme az na ten fakt ze policko email zustane prazdne v tomto priklade to sice neni nejak extra velka prekazka jedna se jen o email ale v pripade napriklad komentare ci jineho delsi textu se jedna o veliky problem

Nahlásit jako SPAM
IP: 78.45.181.–
Jelec0
Newbie
16. 4. 2012   #4
-
-1
-
Mimo téma

První chyba, kterou vidím po velmi letmém zkouknutí:

mysql_query("UPDATE Persons SET email = '".$email."'
WHERE id= '".$id."' AND nick = '".nick."'");
Nahlásit jako SPAM
IP: 89.190.44.–
z_moravec
~ Redaktor
+3
Posthunter
16. 4. 2012   #5
-
0
-

#3 tribalcz
Problém může být ve struktuře databáze. Pro delší texty je potřeba používat datový typ TEXT, pokud máš VARCHAR, tak se ti tam vejde jen 255 znaků.

Nahlásit jako SPAM
IP: 83.240.110.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
tribalcz0
Super člen
16. 4. 2012   #6
-
0
-

Datovy typ mam nastaveny na TEXT jiz od zakladu takze to patrne vliv na to mit nebude delka kladaneho textu je v plnem poradku horsi je to ze kdyz napisu treba komentar o 500 znacich a pak si rozmislim ze to chci zmenit tak kliknu na upravit ale textarea ktera se zobrazi je uplne prazdna misto toho aby se tam zobrazilobsach ktery sem ulozil predtim

Nahlásit jako SPAM
IP: 78.45.181.–
CZechBoY+4
Věrný člen
16. 4. 2012   #7
-
0
-

#4 Jelec
však to máš úplně stejně jako on, akorát ty tam spojuješ stringy a on to má nalepený v sobě (funkční řešení, stejně jako tvoje)

pošli sem kod na výpis toho formu pro editaci nevimčeho

pošli sem ještě potom ten kod na editaci (zpracování)

a pošli všechno tak jak to máš a ne nějaký kousky kodu

Nahlásit jako SPAM
IP: 213.192.10.–
tribalcz0
Super člen
16. 4. 2012   #8
-
0
-

Ok takže

<?php
include "./connect.php";//

if(isset($_POST['submit'])) {

  $nick = ($_SESSION["nick"]);

  $id = ( $_SESSION ["id"]);

  $email = mysql_real_escape_string($_POST["email"]);

  $over_nick= mysql_real_escape_string($_POST['over_nick']);

  /* --- KONTROLA ZADANÝCH ÚDAJŮ --- */
  if($email==""){
    echo'Nebylo vyplněno pole email, změna neproběhla korektně';
  }

else if($nick!="$over_nick"){
    echo'Váš nick se neshoduje, změna neproběhla korektně';

}
  else{
    $sql= mysql_query("UPDATE Persons SET email = '$email'
WHERE id= '$id' AND nick = 'nick'");
  }
}
?>

<form action="#" method="post">    
  <table>

    <tr>
      <td>Email: </td>
      <td><input type="text" name="over_nick" value="" size="25" tabindex="1" /></td>
    </tr>
    <tr>
      <td>Email: </td>
      <td><input type="text" name="email" value="" size="25" tabindex="2" /></td>
    </tr>
    <tr>
      <td colspan="2"><input type="submit" name="submit" value="Změnit" /></td>
    </tr>
  </table>
</form>

Vím že overeni nicku neni zrovna stastne ale do budoucna planuji overovani pomoci hesla misto nicku

Nahlásit jako SPAM
IP: 78.45.181.–
CZechBoY+4
Věrný člen
18. 4. 2012   #9
-
0
-

"UPDATE Persons SET email = '$email'
WHERE id= '$id' AND nick = 'nick'"

nemá tam náhodou být nick='$nick' ?

"UPDATE Persons SET email = '$email'
 WHERE id= '$id' AND nick = '$nick'"
Nahlásit jako SPAM
IP: 213.192.10.–
tribalcz0
Super člen
19. 4. 2012   #10
-
0
-

hmm asi jo no ale jelikoz sem to nekopiroval nybrz psal tak je ta chyba akorat zde

Nahlásit jako SPAM
IP: 78.45.181.–
CZechBoY+4
Věrný člen
20. 4. 2012   #11
-
0
-

a co teda ještě za problém?

session_start(); tam někde na začátku máš?

Nahlásit jako SPAM
IP: 213.192.10.–
tribalcz0
Super člen
20. 4. 2012   #12
-
0
-

jj mam tak to je zaklad pokud chces pracovat s daty session vse mi funguje tak jak ma ale jak uz jsem uvedl vyse jedine co mi nefunguje je to ze se mi pri editaci do text boxu nevypise obsah dane bunky v DB

Nahlásit jako SPAM
IP: 78.45.181.–
CZechBoY+4
Věrný člen
20. 4. 2012   #13
-
0
-

já nevidim, že bys ho tam vkládal

pošli kod formuláře kterej máš na mysli

Nahlásit jako SPAM
IP: 213.192.10.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 40 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý