Autor | Zpráva | ||
---|---|---|---|
hrouda Profil |
#1 · Zasláno: 5. 12. 2013, 18:22:09
Zdravím,
prosím vás mám tři tabulky . 1. zbozi ( id, nazev, popis, cena, url) 2.kategorie ( id, nazev, url) 3.zbozi_kategorie ( id, id_zbozi, id_kategorie) Problém je v tom, že nemůžu přijít na to, jak zformulovat dotaz aby při vybrání kategorie ze selectu a kliknutí na přidat, tak aby to uložilo do tabulky zbozi_kategorie. př. ID id_zbozi id_kategorie 1 1 3 2 1 4 atd... díky za každou radu. uprava_zbozi.php <?php include "dbc.php"; include "function.php"; header('Content-Type: text/html; charset=utf-8'); $vysledek=mysql_query("SELECT * FROM zbozi ORDER BY RAND() LIMIT 1"); $tmpq=mysql_fetch_array($vysledek); echo <<< HTML <form method="post" action="uprava_zbozi.php"> <input type="hidden" name="akce" value="uprava" /> <table> <tr> <td class="tm">ID</td> <td class="sv"><input type="text" name="id" value="$tmpq[id]" size="30" ></td> </tr> <tr> <td class="tm">Název</td> <td class="sv"><input type="text" name="nazev" value="$tmpq[nazev]" size="30" ></td> </tr> <tr> <td class="tm">Popis zboží</td> <td class="sv"><TEXTAREA NAME="popis" COLS=24 ROWS=5>$tmpq[popis]</TEXTAREA><br></td> </tr> <tr> <td class="tm">Cena zboží</td> <td class="sv"><input type="text" name="cena" value="$tmpq[cena]" size="30" ></td> </tr> <tr> <td class="tm">IMG URL</td> <td class="sv"><input type="text" name="img" value="$tmpq[img]" size="30" ></td> </tr> <tr> <td class="tm"></td> <td class="tm"><input type="submit" value="Aktualizovat" ></td> </tr> </table> </form> <a href=index.html>Zpět</a> HTML; $vysledek=mysql_query("SELECT id_kategorie FROM zbozi_kategorie "); $kategorie=mysql_fetch_array($vysledek5); echo <<< HTML <h2><u>Kategorie</u></h2> <li>$kategorie[id_kategorie]</li> <form method="post" action="uprava_zbozi.php"> <input type="hidden" name="akce" value="add_category" /> <table> <tr> <td class="text">Vyberte kategorii, kterou chcete přidat:</td> <td class="pole"><select name="kategorie"> <option value="1">Tricka</option> <option value="2">Ponozky</option> <option value="3">Bundy</option> <option value="4">Boty</option> <option value="5">Pánské trička</option> <option value="6">Dámské trička</option> <option value="7">Pánské trička s dlouhým rukávem</option> <option value="8">Pánské trička s krátkým rukávem</option> <option value="9">Dámské trička s dlouhým rukávem</option> <option value="10">Dámské trička s krátkým rukávem</option> <option value="11">Jarní ponožky</option> <option value="12">Letní ponožky</option> <option value="13">Podzimní ponožky</option> <option value="14">Zimní ponožky</option> <option value="15">Letní bundy</option> <option value="16">Zimní bundy</option> <option value="17">Pánské letní bundy</option> <option value="18">Dámské letní bundy</option> <option value="19">Dětské letní bundy</option> <option value="20">Pánské zimní bundy</option> <option value="21">Dámské zimní bundy</option> <option value="22">Dětské zimní bundy</option> <option value="23">Boty-Papuče</option> <option value="24">Boty-gumáky</option> <option value="25">Boty-tenisky</option> </select></td> </tr> <tr> <td class="pole"><input type="submit" value="Přidat kategorii" ></td> </tr> </table> </form> HTML; ?> function.php <?php include "dbc.php"; if ($akce=="uprava") { mysql_query("UPDATE zbozi SET nazev='$nazev', popis='$popis', cena='$cena', img='$img' WHERE id='$id'"); header("Location: uprava_zbozi.php?id=$id"); exit; } if ($action1=="update_category"){ mysql_query("UPDATE kategorie SET nazev='$nazev', url='$url', id_nadkategorie='$id_nadkategorie' WHERE id='$id'"); header ("Location: uprava_kategorie.php?id=$id"); exit; } if ($akce1=="vlozit") { mysql_query("INSERT INTO zbozi SET nazev='$nazev', popis='$popis', cena='$cena', img='$img'"); $tmpq1=mysql_fetch_array($vysledek1); header("Location: vlozit_zbozi.php"); exit; } if ($action=="insert_category") { mysql_query("INSERT INTO kategorie SET nazev='$nazev', url='$url', id_nadkategorie='$id_nadkategorie'"); $tmpq2=mysql_fetch_array($vysledek2); header("Location: vlozeni_kategorie.php"); exit; } if ($action=="add_category"){ mysql_query("INSERT INTO zbozi_kategorie SET id_zbozi='$id', id_kategorie='$kategorie'"); exit; } ?> |
||
Kubo2 Profil |
#2 · Zasláno: 5. 12. 2013, 19:16:03
hrouda:
V tabuľke zbozi_kategorie , ktorá ti vytvára vzťah medzi tabuľkami zbozi a kategorie , je úplne zbytočný stĺpec ID .
Dotaz sformuluješ asi takto (príklad): INSERT INTO `zbozi_kategorie`(`id_zbozi`,`id_kategorie`) VALUES('$idZbozi', '$idKategorie'); |
||
hrouda Profil |
#3 · Zasláno: 5. 12. 2013, 19:51:26
ja myslim ale jak mam napsat ten dotaz to function.php add_category...
|
||
Kajman Profil |
#4 · Zasláno: 5. 12. 2013, 20:32:50
hrouda:
Ve formuláři začínajícím na řádku 51 nikde nepředáváte id zboží, ke kterému chcete přidat kategorii. |
||
hrouda Profil |
#5 · Zasláno: 6. 12. 2013, 07:28:15
a nevite prosim jak to ošetřit ?
|
||
Kajman Profil |
#6 · Zasláno: 6. 12. 2013, 08:10:11
Zkuste mezi řádek 52 a 53 dát to id do skrytého formulářového prvku. Něco jako
<input type="hidden" name="id" value="{$tmpq['id']}" /> |
||
hrouda Profil |
#7 · Zasláno: 6. 12. 2013, 08:13:12
a ten dotaz potom bude jak ? zkusil sem
mysql_query("INSERT INTO zbozi_kategorie SET id_zbozi='$id', id_kategorie='$kategorie'"); ale ten nic nedělá
|
||
Tori Profil |
#8 · Zasláno: 6. 12. 2013, 08:18:50
hrouda:
Pokud nemáte zapnuté register_globals (což většinou bývá vypnuté na hostingu), tak musíte použít: mysql_query("INSERT INTO zbozi_kategorie SET id_zbozi=".(int) $_POST['id'].", id_kategorie=".(int) $_POST['kategorie']); |
||
hrouda Profil |
#9 · Zasláno: 6. 12. 2013, 08:21:42
Zkusil sem a taky nic, proste to vubec neplni zbozi_kategorie.
|
||
Kajman Profil |
#10 · Zasláno: 6. 12. 2013, 08:27:31
Vypište si (a pak i do diskuse) chybu dotazu.
|
||
hrouda Profil |
#11 · Zasláno: 6. 12. 2013, 08:30:57
Mě to ale žádnou chybu neháže právě :-(
|
||
Tori Profil |
#12 · Zasláno: 6. 12. 2013, 08:34:32
if ($action=="add_category"){ ... - Kde je definovaná proměnná $action? ($action = $_POST['akce']; )
|
||
hrouda Profil |
Tori:
action se provádí v function.php a definovaná je v uprava_zbozi.php na 51 řádku. |
||
Kajman Profil |
#14 · Zasláno: 6. 12. 2013, 09:01:55
hrouda:
„a definovaná je v uprava_zbozi.php na 51 řádku.“ Není. Na řádku 52 definujete akce ne action. |
||
hrouda Profil |
já se z toho lidově řečeno poseru. Z toho dotazu zešedivím..Vůbec to nic nevrací ten dotaz :-(
|
||
Kajman Profil |
#16 · Zasláno: 6. 12. 2013, 21:21:55
hrouda:
„Vůbec to nic nevrací ten dotaz“ Insert data vkládá, nemá je vracet. |
||
Tori Profil |
hrouda:
No a když si těsně před ten INSERT napíšete nějaké echo "něco"; - zobrazí se to po odeslání formuláře nebo ne? Totiž nejsem si jistá, jestli vůbec je splněná ta podmínka na ř.33.
|
||
Časová prodleva: 3 dny
|
|||
hrouda Profil |
#18 · Zasláno: 9. 12. 2013, 14:32:30
vyřešeno :-) děkuji všem
|
||
Časová prodleva: 10 let
|
0