Autor | Zpráva | ||
---|---|---|---|
Trickle Profil |
Zdravím
Mám problém. Mám kod pro vytvoření a zároveň pro editaci kontaktů. Vytvoření záznamu není problém to jde, ale problém je v editaci nechce mi fungovat. A nedokážu najít chybu. Byl by někdo ochoten mi pomoci? Přidávám kod: <? include ("config.db.php"); //Pristupy do DB $Firma_Info=Array(); if ( (isset($Firma_ID)) && (!empty($Firma_ID)) ){ $SQLText="SELECT * FROM TKontakty_Firmy WHERE Firma_ID=$Firma_ID"; $RS=mysql_query($SQLText,$Conn); if (mysql_num_rows($RS)<=0){ mysql_close($Conn); die ("Záznam neexistuje"); } $Firma_Info=mysql_fetch_array($RS); } else $Firma_ID=0; mysql_close($Conn); echo "<!doctype html public \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n"; echo "<html>\n"; echo "<head>\n"; echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1250\">\n"; echo "<title>Kontakty založit/upravit firmu</title>\n"; echo "<link rel=\"STYLESHEET\" href=\"base.css\" type=\"text/css\">\n"; echo "</head>\n"; echo "<body topmargin=5 leftmargin=5 marginheight=5 marginwidth=5>\n"; echo "<table cellpadding=0 cellspacing=0 border=0>\n"; echo "<tr>\n"; echo "<td WIDTH=125 valign=top>\n"; echo "<img src=\"1px.gif\" width=125 height=1 vspace=2><br>\n"; echo "<a href=\"search_person.php\">Hledat osobu</a><br>\n"; echo "<a href=\"search_company.php\">Hledat firmu</a><br>\n"; echo "<br>\n"; echo "<a href=\"edit_person.php\">Přidat osobu</a><br>\n"; echo "<a href=\"edit_company.php\">Přidat firmu</a><br>\n"; echo "</td>\n"; echo "<td valign=top width=7><img src=\"1px.gif\" width=7 height=1></td>\n"; echo "<td WIDTH=\"100%\" valign=top>\n"; echo "<img src=\"1px.gif\" width=1 height=5><br>\n"; echo "<table cellpadding=3 cellspacing=0 border=0>\n"; echo "<tr><td CLASS=SectionTitle colspan=2>Přidání/úprava firmy</td></tr>\n"; echo "<tr>\n"; echo "<FORM ACTION=\"save_company.php?Firma_ID=\"".$Firma_ID."\" METHOD=\"post\" NAME=myform>\n"; echo "<TR>\n"; echo "<TD>Název:</TD>\n"; echo "<TD><INPUT TYPE=text NAME=\"Nazev\" value=\"".$Firma_Info["Nazev"]."\"></TD>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<TD>Ulice:</TD>\n"; echo "<TD><INPUT TYPE=\"\"text\"\" NAME=\"Ulice\" value=\"".$Firma_Info["Ulice"]."\"></TD>\n"; echo "</TR>\n"; echo "<tr>\n"; echo "<TD >Město:</TD>\n"; echo "<TD><INPUT TYPE=text NAME=\"Mesto\" value=\"".$Firma_Info["Mesto"]."\"></TD>\n"; echo "</TR>\n"; echo "<tr>\n"; echo "<TD>PSČ:</TD>\n"; echo "<TD><INPUT TYPE=text NAME=\"PSC\" value=\"".$Firma_Info["PSC"]."\"></TD>\n"; echo "</TR>\n"; echo "<tr>\n"; echo "<TD>Telefon:</TD>\n"; echo "<TD><INPUT TYPE=text NAME=\"Telefon\" value=\"".$Firma_Info["Telefon"]."\"></TD>\n"; echo "</TR>\n"; echo "<tr>\n"; echo "<TD>FAX:</TD>\n"; echo "<TD><INPUT TYPE=text NAME=\"Fax\" value=\"".$Firma_Info["Fax"]."\"></TD>\n"; echo "</TR>\n"; echo "<tr>\n"; echo "<TD>Komentář:</TD>\n"; echo "<TD><TEXTAREA ROWS=\"5\" NAME=\"Komentar\" COLS=\"40\" >\"".$Firma_Info["Komentar"]."\"</TEXTAREA></TD>\n"; echo "</TR>\n"; echo "<tr>\n"; echo "<TD colspan=\"2\" align=\"right\">\n"; echo "<input type=hidden name=Firma_ID value=$Firma_ID>\n"; echo "<input type=button class=button value=Ok onClick=\"SendForm()\">\n"; echo "<input type=reset class=button value=\"Původní\">\n"; echo "</td>\n"; echo "</tr>\n"; echo "</FORM>\n"; echo "</table>\n"; echo "</td>\n"; echo "</tr>\n"; echo "</table>\n"; echo "<script type=\"text/javascript\" language=\"JavaScript\">\n"; echo "<!--\n"; echo "function SendForm(){\n"; echo " var df = document.myform;\n"; echo " if (df.Nazev.value.length==0){\n"; echo " alert(\"Není vyplněn název firmy!\");\n"; echo " df.Nazev.focus();\n"; echo " return;\n"; echo " }\n"; echo " df.submit();\n"; echo "}\n"; echo "// -->\n"; echo "</script>\n"; echo "</body>\n"; echo "</html>\n"; ?> A ještě bych potřeboval pomoci vyřešit. Textareu(Komentář) mám tam kod.. ale vložil jsem to tam asi na prasáka a ukazuje mi to tam uvozovky. Jak by se to dalo správně zapsat?. V kodu je to zvýrazněno. Děkuji |
||
FUYO Profil * |
#2 · Zasláno: 4. 6. 2015, 23:36:31
Trickle:
Nikde nevidím kód na přidávání nebo editaci kontaktu. "A ještě bych potřeboval pomoci vyřešit. Textareu(Komentář) mám tam kod.. ale vložil jsem to tam asi na prasáka a ukazuje mi to tam uvozovky. Jak by se to dalo správně zapsat?. V kodu je to zvýrazněno."[i][/i] ".$Firma_Info["Komentar"]." |
||
Trickle Profil |
FUYO:
Jasně pardon zapomněl jsem přidat ukládací kod. Ten zní takto: <? include ("config.db.php"); //Pristupy do DB if (!isset($Firma_ID)) die ("Neexistující firma"); if ($Firma_ID==0){ $SQLText="INSERT INTO TKontakty_Firmy (Nazev,Ulice,Mesto,PSC,Telefon,Fax,Komentar) VALUES ('$Nazev','$Ulice','$Mesto','$PSC','$Telefon','$Fax','$Komentar')"; mysql_query($SQLText,$Conn); } else { $SQLText="UPDATE TKontakty_Firmy SET "; $SQLText.="Nazev='$Nazev',"; $SQLText.="Ulice='$Ulice',"; $SQLText.="Mesto='$Mesto',"; $SQLText.="PSC='$PSC',"; $SQLText.="Telefon='$Telefon',"; $SQLText.="Fax='$Fax',"; $SQLText.="Komentar='$Komentar'," ; $SQLText.="WHERE Firma_ID=$Firma_ID"; mysql_query($SQLText,$Conn); } mysql_close($Conn); echo "<html><head><meta HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=edit_company.php\"></html>"; ?> V kodu jsou už opravené chyby na které jsem přišel a nebo na které jsem byl již upozorněn |
||
Taps Profil |
#4 · Zasláno: 5. 6. 2015, 11:11:40
Trickle:
co ti vypíše mysql_error? <? mysql_query($SQLText,$Conn) or die (mysql_error()); ?> |
||
Alphard Profil |
#5 · Zasláno: 5. 6. 2015, 11:27:33
Přinejmenším v
"Fax='$Fax' " chybí čárka a navíc se zřejmě spoléháte na register_globlas on a neescapujete vstupy.
Ale rada [#4] Taps k vypsání chyby je dobrá, jen příšerně provedená (to or die). |
||
Trickle Profil |
Díky měl jsem chybu v ukončení 19. a 20. řádku. Nicméně pořád nechce editovat.
mysql_error píše že někde kolem WHERE Firma_ID =$Firma_ID je chyba v syntax |
||
Keeehi Profil |
#7 · Zasláno: 5. 6. 2015, 18:03:39
Trickle:
Za Komentář nemá být čárka ale mezera. |
||
Trickle Profil |
#8 · Zasláno: 6. 6. 2015, 03:09:09
Keeehi:
Díky moc. Funguje to. Njn zkušenosti se poznají . |
||
smiesek Profil |
#9 · Zasláno: 7. 6. 2015, 18:16:51
ráda bych se hloupě zeptala, když už to tu vidím, tak jaký je rozdíl, že autor má části kodu u proměnných bez teček, zatím co já bych to psala s tečkami?
autora $SQLText.="Komentar='$Komentar'" ; moje doměnka $SQLText.="Komentar='.$Komentar.'" ; Jak tedy poznám kdy a co je správně? :( |
||
Fisir Profil |
#10 · Zasláno: 7. 6. 2015, 18:39:08
Reaguji na smieska:
$Komentar = 'toto je komentář'; $SQLText = "Komentar='$Komentar'"; // => Komentar='toto je komentář' $SQLText = "Komentar='".$Komentar."'"; // => Komentar='toto je komentář' $SQLText = 'Komentar=\''.$Komentar.'\''; // => Komentar='toto je komentář' $SQLText = 'Komentar=\'$Komentar\''; // => Komentar='$Komentar' (Ta zpětná lomítka před apostrofy je escapování, aby se nebraly jako konec řetězce.) Jak vidíš, tak při použití uvozovek nemusíš řetězec rozdělovat a spojovat jej, ale proměnnou můžeš vepsat přímo. Pokud ale text obalíš do apostrofů, rozdělit musíš vždy. „ $SQLText.="Komentar='.$Komentar.'" ; “
Z toho by ti vylezlo Komentar='.toto je komentář.' , protože řetězec je uzavřený do uvozovek (a tam se mohou proměnné vepisovat přímo, jak popisuji výše).
|
||
smiesek Profil |
Fisir:
no moc tomu nerozumím - je to na mě až moc terminologie a slovíčkaření, tak si to budu muset nějak napsat na papír a vždy zkoušet pokus omyl dle poučky co jste mi napsal:( proto že i u těch třeba insert bych dala tečky a tedy nevím podle čeho autor je nemusí používat $SQLText="INSERT INTO TKontakty_Firmy (Nazev,Ulice,Mesto,PSC,Telefon,Fax,Komentar) VALUES ('$Nazev','$Ulice','$Mesto','$PSC','$Telefon','$Fax','$Komentar')"; já $SQLText="INSERT INTO TKontakty_Firmy (Nazev,Ulice,Mesto,PSC,Telefon,Fax,Komentar) VALUES ('".$Nazev."','".$Ulice."',...')"; |
||
petr 6 Profil |
#12 · Zasláno: 8. 6. 2015, 09:20:50
|
||
Časová prodleva: 10 let
|
0