| 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: 13 let
|
|||
0