Autor | Zpráva | ||
---|---|---|---|
roman_an1 Profil |
někde v tom dotazu DELETE je chyba já už si nevím rady
<?php session_start(); $login = $_SESSION['login'] ; $query = "SELECT * FROM vyrobky WHERE login = '$login'"; $vysledek = mysql_query($query); echo "<table width=50% border=1 rules=none>"; echo mysql_error(); while($clen = mysql_fetch_object($vysledek)) { echo "<tr width='30%'>"; /* echo "<td width='10%'>" . $clen->login . "<td width='10%'> " . $clen->heslo . "<td width='10%'> " . $clen->email . "</td>"; */ echo "<td width='2%'>" . $clen->cislo . "</td>"; echo "<td width='2%'>" . $clen->id2 . "</td>"; echo "<td width='10%'>" . $clen->nazev . "</td>"; if (isset($_POST['id'])) { echo "</tr>"; } $sql= mysql_query("DELETE FROM vyrobky WHERE id2 = '$id'") ; } echo "</table>"; ?> <form action="php.php" method="post"> <input type="hidden" name="id" value="<?php echo $id2; ?>"><input type="submit" value="smazat"> </form> |
||
panther Profil |
#2 · Zasláno: 19. 4. 2012, 20:17:59
roman_an1:
na 42. ř. máš proměnnou $id , která neexistuje. Příště si ten dotaz vypiš, zjistíš, že ti tam něco chybí.
|
||
roman_an1 Profil |
#3 · Zasláno: 19. 4. 2012, 20:23:28
panther:
jo to vím..že v totom je chyba..ja už snad zkoušel všechny proměnné..protože už jsem úplně bezradný..a nevíte náhodou co by tam mělo být? |
||
panther Profil |
#4 · Zasláno: 19. 4. 2012, 20:27:00
roman_an1:
to musíš vědět ty, co chceš smazat. Pravděpodobně $_POST['id'] .
|
||
roman_an1 Profil |
#5 · Zasláno: 19. 4. 2012, 20:36:00
panther:
to nejede..chci tím smazat řádek v tabulce podle toho vlastně jak mi to vypíše formulář |
||
abc Profil |
roman_an1:
Zkus řádek 42 takto: $sql= mysql_query("DELETE FROM vyrobky WHERE id2 =".intval($_POST['id']));
Edit: chyběla mi tam závorka na konci |
||
roman_an1 Profil |
#7 · Zasláno: 19. 4. 2012, 20:43:38
abc:
to zase napíše toto Parse error: syntax error, unexpected ';' in |
||
abc Profil |
#8 · Zasláno: 19. 4. 2012, 20:44:38
roman_an1:
Viz výše, chyběla mi tam závorka na konci. Zkus toto: $sql= mysql_query("DELETE FROM vyrobky WHERE id2 =".intval($_POST['id'])); |
||
roman_an1 Profil |
#9 · Zasláno: 19. 4. 2012, 20:45:51 · Upravil/a: roman_an1
roman_an1:
jo tam chybel konec zavorky :) diky abc: hehe teď jsem to akorat psal :) a co to znamena to intval? abc: a mohu mít ještě jeden dotaz..jak to mám udělat aby se mi to vlasně hned i aktualizovalo? a nemusel jsem si tu stranku aktualizovat F5 aby se ukazala ta změna? roman_an1: jo tu aktualizaci uz jsem si taky doplnil :) |
||
David Klouček Profil |
roman_an1:
„a co to znamena to intval?“ www.strejda-google.cz/?q=php+intval Z manuálu PHP: "intval — Get the integer value of a variable" „.jak to mám udělat aby se mi to vlasně hned i aktualizovalo? a nemusel jsem si tu stranku aktualizovat F5 aby se ukazala ta změna?“ Sice jsem nečetl předchozí příspěvky, ale asi hledáš přesměrování. To se realizuje odesláním hlavičky: header('Location: http://mojeurl.cz/napriklad'); |
||
roman_an1 Profil |
#11 · Zasláno: 19. 4. 2012, 21:33:48
David Klouček:
díky...tedkom se pokouším o editaci tak tam pak bude jak vypadat ten dotaz..ja vymyslel neco takoveho, ale to my to zmeni u vsech $sql= mysql_query("UPDATE vyrobky SET mnozstvi = ".intval($_POST['mnozstvi'])); |
||
mimochodec Profil |
#12 · Zasláno: 19. 4. 2012, 21:36:22
roman_an1:
WHERE ID=14 |
||
roman_an1 Profil |
#13 · Zasláno: 19. 4. 2012, 21:39:15
mimochodec:
jo to vím..ale mě se jedná o to že zase u každého řádku mám tlačítko upravit tak aby to bralo podle toho :) |
||
mimochodec Profil |
roman_an1:
„jo to vím..ale mě se jedná o to že zase u každého řádku mám tlačítko upravit tak aby to bralo podle toho :)“ 1. Máš výpis položek tabulky 2. Pro každou z položek máš nějaký formulář s hiddenem, kterým předáváš ID. 3. Načítáš $_POST["delete"], a to nad tímto výpisem, nejlépe před jakýmkoliv vypsáním html, abys po akci mohl přesměrovat. 4. Provedeš akci, po ní přesměruješ zpátky na výpis. Čemu přesně z tohoho nerozumíš? |
||
roman_an1 Profil |
mimochodec:
to s tím směrováním smazání jsem pochopil ale nechápu tu editaci..to uz neni hidden to uz mam normalně text ve formuláři do kterého se mi to i vpisuje..ale když to chci upravit tak mi to upraví u všech :) jako nevím jak ješte totomu $sql= mysql_query("UPDATE vyrobky SET mnozstvi = ".intval($_POST['mnozstvi'])); přiřadit i že to má vzít danej řádek..pač nechápu jak bych to měl s intvalem zapsat |
||
mimochodec Profil |
roman_an1:
„ale nechápu tu editaci..to uz neni hidden to uz mam normalně text ve formuláři do kterého se mi to i vpisuje..ale když to chci upravit tak mi to upraví u všech :)“ Když edituješ, postup je podobný. 2. Pro každou z položek máš nějaký formulář s hiddenem, kterým předáváš ID. 3. Načítáš $_POST["edit"] 4. Vypíšeš formulář a naplníš ho hodnotami příslušejícímí k tomu ID. Součástí formuláře je hidden, do kterého dáš ID. 5. Po odeslání uděláš UPDATE a přesměrování na výpis. |
||
roman_an1 Profil |
mimochodec:
jj tak jestli jsem to správně pochopil musí to být takto: ale to právě nevím jak mám zakompletovat to WHERE delaj mi tam nějakej bugr ty uvozovky $sql= mysql_query("UPDATE vyrobky SET mnozstvi = ".intval($_POST['mnozstvi']) WHERE id2 = ".intval($_POST['id']) ); Moderátor panther: Vkládej prosím kódy mezi značky [>pre] a [>/pre] (stačí kliknout na ).
|
||
panther Profil |
roman_an1:
„delaj mi tam nějakej bugr ty uvozovky“ si je spočítej, nebo používej nějaký editor, který ti zvýrazní syntaxi. Nyní už to vidíš i zde na diskusi, kde ti chybí, co není červenohnědé. $sql= mysql_query("UPDATE vyrobky SET mnozstvi = ".intval($_POST['mnozstvi']) . " WHERE id2 = ".intval($_POST['id']) ); |
||
mimochodec Profil |
//edit panther předbíhá.
|
||
roman_an1 Profil |
roman_an1:
ale stejně mi to furt změni u všeho..nechápu proč..jo a používám editor..ale já netušil že se to spojuje tečkou |
||
abc Profil |
#21 · Zasláno: 19. 4. 2012, 22:52:57
roman_an1:
Začal bych tim, že to začneš psát ve více krocích tedy: $sql = "UPDATE vyrobky SET mnozstvi = ".intval($_POST['mnozstvi']) . " WHERE id2 = ".intval($_POST['id']) ); echo $sql; //co to tady vypíše? $result = mysql_query($sql); |
||
roman_an1 Profil |
abc:
žádnou hlášku to nevypíše, jen já si v tom formuláři změním číslo, ale ono mi to přepíše zpátky na takovou co tam byla |
||
abc Profil |
roman_an1:
Nemá to vypsat žádnou hlášku, ale ten dotaz, tedy: UPDATE vyrobky set mnozstvi = 123 WHERE ID2 = 456 Když už jsme u toho, proč rovna id2? Jak vypadá struktura databáze? |
||
roman_an1 Profil |
#24 · Zasláno: 19. 4. 2012, 23:04:54
id2, cislo, nazev, mnozstvi, login |
||
mimochodec Profil |
#25 · Zasláno: 19. 4. 2012, 23:04:55
roman_an1:
„jen já si v tom formuláři změním číslo, ale ono mi to přepíše zpátky na takovou co tam byla“ Nechceš tím říct spíš to, že to vypadá, jako by se ten update neprovedl, že ne? |
||
roman_an1 Profil |
#26 · Zasláno: 19. 4. 2012, 23:07:39
jo neprovedl..nevím proč jsem to napsal tak blbě |
||
abc Profil |
#27 · Zasláno: 19. 4. 2012, 23:09:07
roman_an1:
no, a co ti teda vypíše tohleto? $sql = "UPDATE vyrobky SET mnozstvi = ".intval($_POST['mnozstvi']) . " WHERE id2 = ".intval($_POST['id']) ); echo $sql; //co to tady vypíše? |
||
roman_an1 Profil |
to samé..teda ale musel jsem si doplnit závorku $sql = ("UPDATE vyrobky SET mnozstvi = ".intval($_POST['mnozstvi']) . " WHERE id2 = ".intval($_POST['id']) ); echo $sql; //co to tady vypíše? |
||
abc Profil |
#29 · Zasláno: 19. 4. 2012, 23:24:45
roman_an1:
Tak jinak, uprav kód na: $sql = ("UPDATE vyrobky SET mnozstvi = ".intval($_POST['mnozstvi']) . " WHERE id2 = ".intval($_POST['id']) ); echo 'Zacatek SQL>>>'. $sql . '<<<Konec SQL'; A napis potom, co je napsáno mezi Zacatek SQL>>> a <<<Konec SQL |
||
roman_an1 Profil |
#30 · Zasláno: 19. 4. 2012, 23:26:57
Parse error: syntax error, unexpected '*' in |
||
Téma pokračuje na další straně.
|
0