Autor Zpráva
Routh
Profil *
Dobrý večer, již mám v provozu na webu formulář pomocí ktrého zapíši text do sloupců v tabulce, a následně ho vypíši an jiné stránce. Problém nastavá když chci jednotlivé zápisi védst pod ID číslem, každý zápis aby si tvořil další vlastní tabulku a šly ty data přes PHP editovat. Zde jsou použité kódy pro zápis a výpis, děkuji za rady.

Vyplňovací formulář
<form action='odeslani.php' method='POST'>
<ul>  
  <li>
  <div class='ml40 pb10'>    
    <table width='500' border='0'>
    <tr>
    <td align='left' width='200px'>
    <label class='block w140' for='o_name'>Jméno:</label></td><td align='left' width='300px'>
    <input class='w140' name='o_name' value type='text' size='20'> *
    </td>
    </tr>
    <tr>
    <td align='left' width='200px'>
    <label class='block w140' for='o_surname'>Text:</label></td><td align='left' width='300px'>
    <input class='w300' name='o_text' value type='text' size='20'> *
    </td>
    </tr>
    </table>
    </div>
  </li>
</ul>
<input type='submit' value='Odeslat' name='sent'>
</form>
?>


Odesílací soubor
<?php
include("db.php"); 
//Starting app with verify connect to database

$o_name = $_POST['o_name'];
$o_text = $_POST['o_text'];
$sql = "INSERT INTO formular VALUES('$o_name', '$o_text')";

$vysledek_vlozeni = mysql_query($sql);
if (!$vysledek_vlozeni)
die('Nepodařilo se vložit nový řádek.');
?> 


db.php připojovací údaje
<?
$sql = mysql_connect("xxxxx","xxxxx","xxxxx" );
mysql_select_db("xxxxx");
?>


Kód pro výpis dat z db
<? 
include ("db.php");

$sql="SELECT * FROM formular";
//vytvoření sql dotazu
$vysledek = MySQL_Query($sql); // provedení sql dotazu

while ($formular = MySQL_Fetch_Array($vysledek)){
$o_name=$formular["o_name"];
$o_text=$formular["o_text"];
print "<div style=' margin-bottom:2px; padding-left:10px;'>".$o_name."<br>".$o_text."<br></div>";
}
?>
Routh
Profil *
Promiňte pro upřesnění, aby si vytvořili vlastní tabulku, myslím tím html tabulku, pomocí klteré budou data uspořádána na stránce.
Routh
Profil *
Mohl by mi tu někdo poradit ?
Alphard
Profil
tak dejte tabulce sloupec id int auto_increment
nebo v čem je problém? dal jste sem kód, ale nanapsal jste, co nefunguje, pak je každá rada drahá
Routh
Profil *
Tento kód celý funguje, je to jen čistě zápis a výpis z DB. Já potřebuji poradit s editací, aby ty data šly měnit na webu.
Alphard
Profil
$sql = "INSERT INTO formular VALUES('$o_name', '$o_text')";

tabulka formulář nemá sloupec id, bez něho je editace problémová, protože v update dotazu nepůjde specifikovat záznam

1. viz výše, přidejte sloupec id
2. vypíšete požadovaný záznam (asi vybraný ze seznamu) do formuláře, id se většinou dává do input hidden
3. upravíte a odešlete PHP
4. editujete dotazem na databázi: update formular set jmeno = 'nove_jmeno', text = 'text' where id = 12
Routh
Profil *
OK, přidám ID sloupec, ale dál přesně nevím jak popisujete co kam napsat nebo vytvořit další skript pro další stránku kde bude editovat a vybrat zápis.
Alphard
Profil
zajistit editaci je docela pracné :-(
asi budete muset vytáhnout všechny záznamy, vypsat je a dát k nim odkazy pro editaci, např. <a href="edit.php?id=12">Editovat</a> (to je jedna stránka)
pak stránka edit.php bude muset načíst konkrétní záznam a vypsat ho do formuláře (druhá stránka)
po upravení textu ve formuláři se musí odeslat zpět na server, kde se zpracuje, viz výše (třetí stránka)

v kolika souborech to bude záleží na návrhu vašeho systému
Routh
Profil *
Jak se tedy pracuje s těmi ID ? TY tam musí být danné proměnou ne ?
Alphard
Profil
http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html

Pěkný seriál o MySQL v češtině
Routh
Profil *
Hm klasika, já atyk nci moc nečekal, vždy jen hodíte link na obrovské téma a nazdar, mno nic já chtěl jen třeba ukázat na hotovém skriptu co co je. Ale tady se toho nikdy nedoberu.
joe
Profil
Routh
Hm klasika, já atyk nci moc nečekal...

A jak myslíš, že se to asi učili ti, co by ti měli radit..? Když něco chceš umět, musíš tomu taky věnovat nějaký čas.
Routh
Profil *
Já vím, ale kupříkladu linuxsoft bych moc neuváděl, protože z něho lde pochopit jen teorie, pokud vím tak toto je logické programování a k tomu je potřeba praxe a odzkoušet si to, pochopit. Když mi tu někdo hodí zklopčenej skript a lajcky řekne co co dělá, budu mu vděčen, já to pochopím a budu se vtom š´tourat, dokud to nebude hotový. Zjistil jsem že je k tomu používán příkaz UPDATE. Jen nevím jak provést to aby to vybralo správný řádek, jestli by to šlo nějak rozlišit, těm ID nastavit např. čas nebo název.
Alphard
Profil
Routh
já jsem se snažil směrovat vás, navést vás na správnou cestu
ptal jste se na auto_increment, takže jsem vás odkázal na manuál, na tom nevidím nic špatného, je to na pět minut, jestli máte problém s angličtinou, jsou i české návody, koneckonců, google funguje všem stejně
a pro volné chvilky jsem vám odkázal linuxsoft, vím, že je tam tuna teorie, ale bez ní to nejde
nikdo vás nenutí to číst, je to jen doporučení

a nevím, proč se tady rozčilujete, tohle není technická podpora placeného software, s takovouhle moc odpovědí nezískáte

Když mi tu někdo hodí zklopčenej skript a lajcky řekne co co dělá, budu mu vděčen
to máme sypat scripty z rukávů? spusta lidí tady používá frameworky, templatovací systémy apod.
vykopírovat z toho funkční script pro editaci není v žádném případě otázka jednoho Ctrl + C a V
Routh
Profil *
Já se tu nerozčiluji, ale pokavad se zeptám na cokoliv, hned mi odpovídáte nauč se PHP a MySQL, jenže pokavad to mám jako koníček a nemůžu se to učit celej den, tak bych čekal nějakou lepší podporu než hodit link a uč se. Kdybych chtěl odkazy na seriály o tom tak mi postačí google, ale pokud tomu moc nerozumím, tak bych chtěl jen jednoduché vysvětlení, né psaní scriptů a otravování vás. Toť vše.
Mohl by mi tedy někdo poradit jak zakomponuji UPDATE do mého kódu ? prosím.
Mastodont
Profil
UPDATE je v podstatě to samé co INSERT, liší se to jen tím klíčem pro identifikaci záznamu. Takže formulář pro update bude vypadat téměř stejně, jen je při odesílání potřeba načíst hodnoty z databáze a dosadit je do value:
INSERT:
<input class='w300' name='o_text' value type='text' size='20'>

UPDATE:
<input class='w300' name='o_text' value='tohle je načteno ze sloupce Text' type='text' size='20'>


Primární klíč (ID) se dá vložit jako skryté pole do formuláře, ale tomu bych se raději vyhnul a uložil si ho do session, aby ho nějaký fiškus uhřík-hekřík nezměnil. No a v tom odesílacím souboru zkontroluji, zda jde o update nebo insert a podle toho odešlu SQL.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0