Autor | Zpráva | ||
---|---|---|---|
mimochodec Profil |
abc:
„Tak jinak, uprav kód na:“ Jestli mu to vypisuje to, co napsal, tak se zřejmě to php neprovádí. roman_an1: Máš to uvnitř <?php ?> ?
|
||
abc Profil |
#2 · Zasláno: 19. 4. 2012, 23:30:52
roman_an1:
Dobře, zkopíruj sem tedy celý aktuální kód |
||
roman_an1 Profil |
#3 · Zasláno: 19. 4. 2012, 23:33:20 · Upravil/a: roman_an1
jo tak to se taky neprovede..nic to nevypíse..ja zapomněl hvězdičku v kodu <?php session_start(); $login = $_SESSION['login'] ; $jmena = $_SESSION['login'] ; $query = "SELECT * FROM vyrobky WHERE login = '$login'"; $query2 = "SELECT * FROM uzivatele WHERE login = '$jmena'"; $vysledek = mysql_query($query); $vysledek2 = mysql_query($query2); echo "<table width=30% border=2 rules=none>"; echo mysql_error(); while($clen2 = mysql_fetch_object($vysledek2)) { echo "<tr width='30%'>"; echo "<td >"; /* echo "<td width='10%'>" . $clen->login . "<td width='10%'> " . $clen->heslo . "<td width='10%'> " . $clen->email . "</td>"; */ /* echo "<tr width='10%'><BR>" . $clen2->jmeno . "<tr width='10%'><BR>" . $clen2->ulice . "<tr width='10%'><BR>" . $clen2->mesto . "<tr width='10%'><BR>" . $clen2->psc . "<tr width='10%'><BR>" . $clen2->telefon . "</td>"; "</tr>"; */ echo '<strong>'; echo"Adresa:"; echo '</strong>'; echo "<tr >"; echo "<td width='10%'> " . $clen2->jmeno . "</td>"; echo "</tr>"; echo "<tr >"; echo "<td width='10%'>" . $clen2->ulice . "</td>"; echo "</tr>"; echo "<tr>"; echo "<td width='10%'>" . $clen2->psc . "</td>"; echo "</tr>"; echo "<tr>"; echo "<td width='10%'>" . $clen2->mesto . "</td>"; echo "</tr>"; echo "<tr>"; echo "<td width='10%'> tel:   " . $clen2->telefon . "</td>"; echo "</tr>"; } echo "</table>"; echo "<table width=80% border=1 rules=none>"; echo mysql_error(); while($clen = mysql_fetch_object($vysledek)) { if(isset($_POST['id'])) { $sql= mysql_query("DELETE FROM vyrobky WHERE id2 =".intval($_POST['id'])); header("location: editace_smazani.php"); /*$sql= mysql_query ("DELETE FROM vyrobky WHERE id2 ") OR die(mysql_error()); ; */ } if(isset($_POST['mnozstvi'])) { $sql = ("UPDATE vyrobky SET mnozstvi = ".intval($_POST['mnozstvi']) . " WHERE id2 = ".intval($_POST['id']) ); echo 'Zacatek SQL>>>'. $sql . '<<<Konec SQL'; /*intval-převod řetězce na číslo*/ header("location: editace_smazani.php"); /*$sql= mysql_query ("DELETE FROM vyrobky WHERE id2 ") OR die(mysql_error()); ; */ } 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->id2 . "</td>"; echo "<td width='2%'>" . $clen->cislo . "</td>"; echo "<td width='90%'>" . $clen->nazev . "<form action=editace_smazani.php method=post><input type=text name=mnozstvi value= $clen->mnozstvi size=3><input type=submit name=upravit value=Upravit></form><form action=editace_smazani.php method=post><input type=hidden name=id value='$clen->id2'> <input type=submit name=smazat value=smazat></form></td>"; echo "</tr>"; } echo "</table>"; /* while($row = mysql_fetch_row($vysledek)) { echo "<tr><td>"; echo $row[1]."</td><BR><td>"; } */ ?> |
||
abc Profil |
roman_an1:
0. Začni formátovat text nějak normálně, logicky. Nenechávej mezi bloky kódu 10 řádek mezeru apod. Pokud to sám nesvedeš, tak si nainstaluj např. Netbeans, ve kterých můžeš formátovat automaticky přes klávesovou zkratu Alt+Shift+F 1. Zakomentuj na ř. 115 ten header 2. na řádek 105 dej echo $_POST['mnozstvi']
3. ř. 134 uprav na: echo '<td width="90%">' . $clen->nazev; echo'<form action = "editace_smazani.php" method="post"> <input type="text" name="mnozstvi" value="" size = "3"/> <input type="submit" name="Upravit" value="Upravit"/> </form>'; ...Zbytek snad zvládneš podle tohoto vzoru. Doporučuju do dalšího echa |
||
mimochodec Profil |
#5 · Zasláno: 20. 4. 2012, 00:01:14
abc:
Těch chyb je tam mnohem víc, první jsou hned tady: $login = $_SESSION['login'] ; $jmena = $_SESSION['login'] ; $query = "SELECT * FROM vyrobky WHERE login = '$login'"; $query2 = "SELECT * FROM uzivatele WHERE login = '$jmena'"; Je to slepenec něčeho, co nemám sílu komentovat. Doporučoval bych smazat, trochu se tady po diskusi rozhlídnout (vyhledávání je užitečná věc) a začít znovu. |
||
roman_an1 Profil |
#6 · Zasláno: 20. 4. 2012, 00:19:09
díky za rady :) no ono je to spíš ještě všechno ve fázi úprav předělávání..zítra se na to kouknu..a mám v tom zmatek..každopádně díky :) |
||
roman_an1 Profil |
#7 · Zasláno: 20. 4. 2012, 09:24:11 · Upravil/a: roman_an1
abc:
tak už to mám, ale to celkem nevyřešilo můj problém s tou editací vypíše mi to tohlen..ale z toho vyplývá že to nevyhovuje..já nechci ať se mi to mění u všeho Zacatek SQL>>>UPDATE vyrobky SET mnozstvi = 3 WHERE id2 = '71'<<Zacatek SQL>>>UPDATE vyrobky SET mnozstvi = 3 WHERE id2 = '72'<<Zacatek SQL>>>UPDATE vyrobky SET mnozstvi = 3 WHERE id2 = '73'<<Zacatek SQL>>>UPDATE vyrobky SET mnozstvi = 3 WHERE id2 = '74'<< |
||
Šéva Profil |
#8 · Zasláno: 20. 4. 2012, 10:36:42
Ahoj,
zkus tohle: <?php session_start(); $login = $_SESSION['login'] ; $jmena = $_SESSION['jmena'] ; $query = mysql_query("SELECT * FROM vyrobky WHERE login = '$login'"); $query2 = mysql_query("SELECT * FROM uzivatele WHERE login = '$jmena'"); echo "<table width=30% border=2 rules=none>"; while($clen2 = mysql_fetch_object($query)) { echo "<tr width='30%'>"; echo "<td >"; echo '<strong>'; echo"Adresa:"; echo '</strong>'; echo "<tr >"; echo "<td width='10%'> " . $clen2->jmeno . "</td>"; echo "</tr>"; echo "<tr >"; echo "<td width='10%'>" . $clen2->ulice . "</td>"; echo "</tr>"; echo "<tr>"; echo "<td width='10%'>" . $clen2->psc . "</td>"; echo "</tr>"; echo "<tr>"; echo "<td width='10%'>" . $clen2->mesto . "</td>"; echo "</tr>"; echo "<tr>"; echo "<td width='10%'> tel:   " . $clen2->telefon . "</td>"; echo "</tr>"; } echo "</table>"; echo "<table width=80% border=1 rules=none>"; while($clen = mysql_fetch_object($query)) { if(isset($_POST['id'])) { $sql= mysql_query("DELETE FROM vyrobky WHERE id2 ='".intval($_POST['id'])."'"); header("location: editace_smazani.php"); } if(isset($_POST['upravit'])) { $sql = ("UPDATE vyrobky SET mnozstvi = '".intval($_POST['mnozstvi']) . "' WHERE id2 = '".intval($_POST['id'])."'"); header("location: editace_smazani.php"); } echo "<tr width='30%'>"; echo "<td width='2%'>" . $clen->id2 . "</td>"; echo "<td width='2%'>" . $clen->cislo . "</td>"; echo "<td width='90%'>" . $clen->nazev . "<form action='editace_smazani.php' method='post'> <input type='text' name='mnozstvi' value='".$clen->mnozstvi."' size='3'> <input type='submit' name='upravit' value='Upravit'> </form> <form action='editace_smazani.php' method='post'> <input type='hidden' name='id' value='".$clen->id2."'> <input type='submit' name='smazat' value='smazat'> </form> </td>"; echo "</tr>"; } echo "</table>"; ?> něco málo jsem tam poupravil a pokusil se to trošku naformátovat... |
||
roman_an1 Profil |
háže to chybu ... Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in |
||
Šéva Profil |
#10 · Zasláno: 20. 4. 2012, 10:48:35
roman_an1:
na jakém řádku? je to první while,nebo ten druhý... nevěděl jsem,jaká session má bejt ta $jmena,tak jsem ji jen typl,tak jestli neni problem v tom |
||
roman_an1 Profil |
#11 · Zasláno: 20. 4. 2012, 10:51:53
Šéva:
tu seasion jsem předelal..tam musí být $jmena = $_SESSION['login'] ; chyba na ř. 12 a ř.38 |
||
Šéva Profil |
#12 · Zasláno: 20. 4. 2012, 10:56:54
roman_an1:
proč tedy máš 2 proměnné, kdyz jejich hodnoty jsou stejné? Máš ty $_SESSION vubec někde naplněné nějakou hodnotou? |
||
roman_an1 Profil |
#13 · Zasláno: 20. 4. 2012, 10:57:15 · Upravil/a: roman_an1
tam ta seassion má správně být takhlenc: to je ještě pozůstatek toho kdy jsem ještě pořádně neuměl se seassion session_start(); $login = $_SESSION['login'] ; $query = mysql_query("SELECT * FROM vyrobky WHERE login = '$login'"); $query2 = mysql_query("SELECT * FROM uzivatele WHERE login = '$login'"); jj mám..přihlašovacím jménem Šéva: právě potřebuju ten update ať mi to nemění u všeho..ale jen u toho řádku podle toho o které id2 se jedná |
||
Šéva Profil |
Co teď
<?php session_start(); $login = $_SESSION['login'] ; $query = mysql_query("SELECT * FROM vyrobky WHERE login='$login'"); $query2 = mysql_query("SELECT * FROM uzivatele WHERE login='$login'"); echo "<table width='30%' border='2' rules='none'>"; while($clen2 = mysql_fetch_array($query2)) { echo "<tr width='30%'>"; echo "<td >"; echo '<strong>'; echo"Adresa:"; echo '</strong>'; echo "<tr >"; echo "<td width='10%'>$clen2[jmeno]</td>"; echo "</tr>"; echo "<tr >"; echo "<td width='10%'>$clen2[ulice]</td>"; echo "</tr>"; echo "<tr>"; echo "<td width='10%'>$clen2[psc]</td>"; echo "</tr>"; echo "<tr>"; echo "<td width='10%'>$clen2[mesto]</td>"; echo "</tr>"; echo "<tr>"; echo "<td width='10%'> tel:   $clen2[telefon]</td>"; echo "</tr>"; } echo "</table>"; echo "<table width='80%' border='1' rules='none'>"; while($clen = mysql_fetch_array($query)) { if(isset($_POST['id'])) { $sql= mysql_query("DELETE FROM vyrobky WHERE id2 ='".intval($_POST['id'])."'"); header("location: editace_smazani.php"); } if(isset($_POST['upravit'])) { $sql = ("UPDATE vyrobky SET mnozstvi = '".intval($_POST['mnozstvi']) . "' WHERE id2 = '".intval($_POST['id'])."'"); header("location: editace_smazani.php"); } echo "<tr width='30%'>"; echo "<td width='2%'>$clen[id2]</td>"; echo "<td width='2%'>$clen[cislo]</td>"; echo "<td width='90%'>$clen[nazev] <form action='editace_smazani.php' method='post'> <input type='hidden' name='id' value='$clen[id2]'> <input type='text' name='mnozstvi' value='$clen[mnozstvi]' size='3'> <input type='submit' name='upravit' value='Upravit'> </form> <form action='editace_smazani.php' method='post'> <input type='hidden' name='id' value='$clen[id2]'> <input type='submit' name='smazat' value='smazat'> </form> </td>"; echo "</tr>"; } echo "</table>"; ?> ještě jsem tam něco upravil |
||
roman_an1 Profil |
#15 · Zasláno: 20. 4. 2012, 11:08:33 · Upravil/a: roman_an1
Šéva:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in u ř.11 a u ř. 37 Šéva: furt ta samá chyba |
||
Šéva Profil |
#16 · Zasláno: 20. 4. 2012, 11:12:33
udělej si echo na session
echo $login; |
||
roman_an1 Profil |
Šéva:
jo to vypíše co má..je k ní přiřazenej normálně ten login |
||
Šéva Profil |
#18 · Zasláno: 20. 4. 2012, 11:17:02
tak teď už mě jen napadá to, jestli jsou v tom dotazu správně napsaný tabulky, jestli při připojení do db rovnou změníš i výchozí databázi, do které se to má připojit a jako snad posledná nápad, jak jsou nastaveny sloupce pro login?
|
||
roman_an1 Profil |
#19 · Zasláno: 20. 4. 2012, 11:19:37
Šéva:
ee je to správně nastavené..předtím my to normálně i mazalo tam jak je DELETE..ale jen my nejde furt ta editace |
||
Šéva Profil |
roman_an1:
do toho editu jsem napoprvé zapomněl přidat tento řádek: <input type='hidden' name='id' value='$clen[id2]'> EDIT: nahraď if(isset($_POST['id'])) if(isset($_POST['smazat'])) |
||
mimochodec Profil |
#21 · Zasláno: 20. 4. 2012, 11:28:25
Šéva:
1. když uživatel není přihlášen, vygeneruješ <table></table> 2. proč předáváš ID osoby hiddenem, když ho máš v session? 3. co dělá header("location: editace_smazani.php"); za echem?
|
||
roman_an1 Profil |
Šéva:
ee to vůbec nejede roman_an1: jenom potřebuju vědět jak má vypadat ten dotaz v tom UPDATE protože už jsem zkoušel fakt vše a nevím..jinak mi to všechno chodí..i v tom mojem funguje DELETE..jen potřebuju ten UPDATE |
||
Šéva Profil |
#23 · Zasláno: 20. 4. 2012, 11:58:33
mimochodec:
1. To se dá ošetřit podmínkou, zda session existuje 2. v te session je jen login uzivatele, ne ID 3. v čem je problém? roman_an1: můžeš sem dát znovu celý kód |
||
roman_an1 Profil |
roman_an1:
jelikož jsem ve fázi kdy zkusím fakt vše tak potřebuju radu v tomto: mám takovýto dotaz: $sql = ("UPDATE vyrobky SET mnozstvi = ".intval($_POST['mnozstvi']) . " WHERE id2 = ".intval($_POST['mnozstvi']) ); echo 'Zacatek SQL>>>'. $sql . '<<<Konec SQL'; no a na stránku při stisknutí tlačítka upravit mi to hodí toto: Zacatek SQL>>>UPDATE vyrobky SET mnozstvi = 1 WHERE id2 = 1<<Zacatek SQL>>>UPDATE vyrobky SET mnozstvi = 1 WHERE id2 = 1<<Zacatek SQL>>>UPDATE vyrobky SET mnozstvi = 1 WHERE id2 = 1<<Zacatek SQL>>>UPDATE vyrobky SET mnozstvi = 1 WHERE id2 = 1<< kdž to mám takto: $sql = ("UPDATE vyrobky SET mnozstvi = ".intval($_POST['mnozstvi']) . " WHERE id2 = ".intval($_POST['id']) ); tak to hodí toto: Notice: Undefined index: id in D:\EasyPHP-5.3.9\www\editace_smazani.php on line 118 Zacatek SQL>>>UPDATE vyrobky SET mnozstvi = 6 WHERE id2 = 0<< Notice: Undefined index: id in D:\EasyPHP-5.3.9\www\editace_smazani.php on line 118 Zacatek SQL>>>UPDATE vyrobky SET mnozstvi = 6 WHERE id2 = 0<< Notice: Undefined index: id in D:\EasyPHP-5.3.9\www\editace_smazani.php on line 118 Zacatek SQL>>>UPDATE vyrobky SET mnozstvi = 6 WHERE id2 = 0<< Notice: Undefined index: id in D:\EasyPHP-5.3.9\www\editace_smazani.php on line 118 Zacatek SQL>>>UPDATE vyrobky SET mnozstvi = 6 WHERE id2 = 0<< no a Šéva: no ale ja to budu mít jakožto takovéto řešení košíku..takže ja defakto v té tabulce budu mít více stejných loginů <?php session_start(); $login = $_SESSION['login'] ; $query = "SELECT * FROM vyrobky WHERE login = '$login'"; $query2 = "SELECT * FROM uzivatele WHERE login = '$login'"; $vysledek = mysql_query($query); $vysledek2 = mysql_query($query2); echo "<table width=30% border=2 rules=none>"; echo mysql_error(); while($clen2 = mysql_fetch_object($vysledek2)) { echo "<tr width='30%'>"; echo "<td >"; echo '<strong>'; echo"Adresa:"; echo '</strong>'; echo "<tr >"; echo "<td width='10%'> " . $clen2->jmeno . "</td>"; echo "</tr>"; echo "<tr >"; echo "<td width='10%'>" . $clen2->ulice . "</td>"; echo "</tr>"; echo "<tr>"; echo "<td width='10%'>" . $clen2->psc . "</td>"; echo "</tr>"; echo "<tr>"; echo "<td width='10%'>" . $clen2->mesto . "</td>"; echo "</tr>"; echo "<tr>"; echo "<td width='10%'> tel:   " . $clen2->telefon . "</td>"; echo "</tr>"; } echo "</table>"; echo "<table width=80% border=1 rules=none>"; echo mysql_error(); while($clen = mysql_fetch_object($vysledek)) { if(isset($_POST['id'])) { $sql= mysql_query("DELETE FROM vyrobky WHERE id2 =".intval($_POST['id'])); header("location: editace_smazani.php"); } if(isset($_POST['mnozstvi'])) { $sql = ("UPDATE vyrobky SET mnozstvi = ".intval($_POST['mnozstvi']) . " WHERE id2 = ".intval($_POST['id']) ); echo 'Zacatek SQL>>>'. $sql . '<<<Konec SQL'; } echo "<tr width='30%'>"; echo "<td width='2%'>" . $clen->id2 . "</td>"; echo "<td width='2%'>" . $clen->cislo . "</td>"; echo "<td width='90%'>" . $clen->nazev . "<form action=editace_smazani.php method=post><input type=text name=mnozstvi value= $clen->mnozstvi size=3><input type=submit name=upravit value=Upravit></form><form action=editace_smazani.php method=post><input type=hidden name=id value='$clen->id2'> <input type=submit name=smazat value=smazat></form></td>"; echo "</tr>"; } echo "</table>"; ?> |
||
mimochodec Profil |
#25 · Zasláno: 20. 4. 2012, 12:10:43
Šéva:
roman_an1: „Zacatek SQL>>>UPDATE vyrobky SET mnozstvi = 6 WHERE id2 = 0<<“ A ty máš nějaké řádky, kde je id2 = 0? Pokusil ses během toho kopírování kousků kódu taky přemýšlet, co to vlastně dělá? Šéva: 2. v te session je jen login uzivatele, ne ID // ok. a myslíš, že je fajn, když jako uživatel s ID=1 můžu smazat výrobek, který patří uživateli ID=2? 3. v čem je problém? // Nejčastější potíže s PHP (FAQ) » headers already sent… |
||
roman_an1 Profil |
ne nemám tam řádek id=0 to je právě že tam nesedí dotaz
ne to pravě, že nemůže být smazanej..když ho ani nevidí..proto tam mám že musí být přidanej login:) |
||
mimochodec Profil |
roman_an1:
„ne nemám tam řádek id=0 to je právě že tam nesedí dotaz“ A co s tím budeš dělat? Proč je tam ta nula? |
||
roman_an1 Profil |
#28 · Zasláno: 20. 4. 2012, 12:32:09
mimochodec:
no jako ja vím jak aby mi to vypsalo číslo řádku ale vygeneruje ale změní to postupně u všech, ale já potřebuju jenom ten jeden daný řádek když to změním takto: $sql = ("UPDATE vyrobky SET mnozstvi = ".intval($_POST['mnozstvi']) . " WHERE id2 = ".intval($clen->id2) ); zapsalo by se to takto: ale já nechci aby se mi ta hodnota zapsala do všech řádků Zacatek SQL>>>UPDATE vyrobky SET mnozstvi = 6 WHERE id2 = 79<<Zacatek SQL>>>UPDATE vyrobky SET mnozstvi = 6 WHERE id2 = 80<<Zacatek SQL>>>UPDATE vyrobky SET mnozstvi = 6 WHERE id2 = 81<<Zacatek SQL>>>UPDATE vyrobky SET mnozstvi = 6 WHERE id2 = 82<< |
||
Šéva Profil |
#29 · Zasláno: 20. 4. 2012, 12:32:56 · Upravil/a: Šéva
mimochodec:
2. to dobře není,ale tohle by mohlo nastat ve chvíli, kdyby něměl ošetřené že uživatel ten a ten může vidět pouze to a to atd, případně, kdyby měl políčko s ID editovatelné... 3. header jsem snad ještě nepoužíval, takže jsem to nevěděl, nebo zapomněl... roman_an1: a už jsi si tam upravil to co jsem ti říkal s tím IDčkem, jak se to mimochodcovi moc nelíbí a upravil tu podmínku? |
||
roman_an1 Profil |
#30 · Zasláno: 20. 4. 2012, 12:39:43
Šéva:
teď momentálně nevím co |
||
Téma pokračuje na další straně.
|
0