| Autor | Zpráva | ||
|---|---|---|---|
| Haďas Profil |
opět vás zdravím programátorští bozi,
opět jsem narazil na problém... mám výpis na stránce ze dvou propojených tabulek z sql a teď jsem tam přidal sloupec kde je tlačítko (59 řádek), které má po stlačení smazat příslušný řádek, zkoušel jsem do toho zacyklovat <form> ale nějak se mu to nelíbí, tak jsem se chtěl zeptat vás jestli někdo nemá nějaký tip? <?php
session_start();
$uzit_jmeno="root";
$hesloo="abcd1234";
$server_jmeno="localhost";
$databaze=mysql_connect($server_jmeno, $uzit_jmeno, $hesloo) or die("Nemůžu se připojit k databázi!");
$vyber_databze=mysql_select_db("stranky_1", $databaze);
$vypis=mysql_query
("SELECT u.ID_uzivatel, u.uzivatelske_jmeno, d.ID_dochazka, d.datum, d.den, d.cas
FROM uzivatele u
JOIN dochazka d
ON u.ID_uzivatel = d.ID_uzivatel ORDER BY u.ID_uzivatel");
?>
<html>
<head>
<link rel="StyleSheet" href="styl.css"></head>
<center>
<title>
</title>
</head>
<body>
<h1>Výpis kapacity docházky</h1>
</br>
<a href="index_1.php">Index</a>
<a href="admin_prava.php">Administrátorské rozhraní</a>
</br>
</br>
<table border="1" bgcolor="#F5F5F5">
<tr>
<th>ID uživatele</th>
<th>Uživatelské jméno</th>
<th>ID docházky</th>
<th>Datum</th>
<th>Den</th>
<th>Čas</th>
<th>Odstranění docházky</th>
</tr>
<?php
while($sloupce=mysql_fetch_assoc($vypis)){
echo"<tr>";
echo"<td>".$sloupce['ID_uzivatel']."</td>";
echo"<td>".$sloupce['uzivatelske_jmeno']."</td>";
echo"<td>".$sloupce['ID_dochazka']."</td>";
echo"<td>".$sloupce['datum']."</td>";
echo"<td>".$sloupce['den']."</td>";
echo"<td>".$sloupce['cas']."</td>";
echo"<td><input type=submit></td>";
echo"</tr>";
}
?>
</table>
</body>
</html> |
||
| Monkeys Profil * |
#2 · Zasláno: 9. 9. 2015, 19:23:12 · Upravil/a: Monkeys
Haďas:
a preco nedas vedla kazdeho vypisu jednoducho <input type="checkbox" name="uzivatel[]" /> a po odskrtnuti a odoslani cez submit vymazes vsetky tie ktore si zaskrtol? dotaz by vyzeral neako takto: mysql_query
("DELETE FROM FROM uzivatele u LEFT JOIN dochazka d
USING(ID_uzivatel) WHERE id_uzivatel IN({$uzivatel})");M. Som zabudol ze do pola toho checkboxu musis pridat ID uzivatela <input type="checkbox" name="uzivatel[<?php ptint $sloupce['ID_uzivatel']; ?>]" /> M. |
||
| Haďas Profil |
#3 · Zasláno: 9. 9. 2015, 19:28:00 · Upravil/a: Haďas
moje chyba... v tomhle seznamu se řídíme podle docházky, takže potřebuju mazat řádky dle ID_dochazka ale tvůj návod se na to dá interpolovat ;) moc děkuji a ozvu jak mi to jde :)
jsem v koncích... + chyba: Notice: Undefined variable: dochazka in C:\Complex-Web-Server-2\www\vypis_dochazky.php on line 75 tu chybu chápu ale nevim jak z toho ven... <?php
session_start();
$uzit_jmeno="root";
$hesloo="abcd1234";
$server_jmeno="localhost";
$databaze=mysql_connect($server_jmeno, $uzit_jmeno, $hesloo) or die("Nemůžu se připojit k databázi!");
$vyber_databze=mysql_select_db("stranky_1", $databaze);
$vypis=mysql_query
("SELECT u.ID_uzivatel, u.uzivatelske_jmeno, d.ID_dochazka, d.datum, d.den, d.cas
FROM uzivatele u
JOIN dochazka d
ON u.ID_uzivatel = d.ID_uzivatel ORDER BY u.ID_uzivatel");
?>
<html>
<head>
<link rel="StyleSheet" href="styl.css"></head>
<center>
<title>
</title>
</head>
<body>
<h1>Výpis kapacity docházky</h1>
</br>
<a href="index_1.php">Index</a>
<a href="admin_prava.php">Administrátorské rozhraní</a>
</br>
</br>
<table border="1" bgcolor="#F5F5F5">
<tr>
<th></th>
<th>ID uživatele</th>
<th>Uživatelské jméno</th>
<th>ID docházky</th>
<th>Datum</th>
<th>Den</th>
<th>Čas</th>
<th>Odstranění docházky</th>
</tr>
<?php
while($sloupce=mysql_fetch_assoc($vypis)){
echo"<tr>";
echo"<td><input type='checkbox' name=dochazka[]/></td>";
echo"<td>".$sloupce['uzivatelske_jmeno']."</td>";
echo"<td>".$sloupce['ID_dochazka']."</td>";
echo"<td>".$sloupce['datum']."</td>";
echo"<td>".$sloupce['den']."</td>";
echo"<td>".$sloupce['cas']."</td>";
echo"<td><input type=submit></form></td>";
echo"</tr>";
}
mysql_query
("DELETE FROM FROM dochazka d USING(ID_dochazka) WHERE ID_dochazka IN({$dochazka})");
?>
</table>
</body>
</html> |
||
| Haďas Profil |
tak mám něco takového ale nefunguje to :D
<?php
session_start();
$uzit_jmeno="root";
$hesloo="abcd1234";
$server_jmeno="localhost";
$databaze=mysql_connect($server_jmeno, $uzit_jmeno, $hesloo) or die("Nemůžu se připojit k databázi!");
$vyber_databze=mysql_select_db("stranky_1", $databaze);
$vypis=mysql_query
("SELECT u.ID_uzivatel, u.uzivatelske_jmeno, d.ID_dochazka, d.datum, d.den, d.cas
FROM uzivatele u
JOIN dochazka d
ON u.ID_uzivatel = d.ID_uzivatel ORDER BY u.ID_uzivatel");
?>
<html>
<head>
<link rel="StyleSheet" href="styl.css"></head>
<center>
<title>
</title>
</head>
<body>
<h1>Výpis kapacity docházky</h1>
</br>
<a href="index_1.php">Index</a>
<a href="admin_prava.php">Administrátorské rozhraní</a>
</br>
</br>
<table border="1" bgcolor="#F5F5F5">
<tr>
<th></th>
<th>ID uživatele</th>
<th>Uživatelské jméno</th>
<th>ID docházky</th>
<th>Datum</th>
<th>Den</th>
<th>Čas</th>
<th>Odstranění docházky</th>
</tr>
<form action="vypis_dochazky.php" method="POST">
<?php
while($sloupce=mysql_fetch_assoc($vypis)){
echo"<tr>";
echo"<td><input type='checkbox' name=smaz_dochazka/></td>";
echo"<td>".$sloupce['ID_uzivatel']."</td>";
echo"<td>".$sloupce['uzivatelske_jmeno']."</td>";
echo"<td>".$sloupce['ID_dochazka']."</td>";
echo"<td>".$sloupce['datum']."</td>";
echo"<td>".$sloupce['den']."</td>";
echo"<td>".$sloupce['cas']."</td>";
echo"<td></td>";
echo"</tr>";
}
if(isset($_POST['submit'])){
$smaz_dochazka=$_POST['smaz_dochazka'];
$sql=mysqli_connect("localhost", "root", "abcd1234","stranky_1") or die("Nemůžu se připojit k databázi!");
if(mysqli_num_rows(mysqli_query($sql, "SELECT * FROM dochazka WHERE ID_dochazka='".$smaz_dochazka."' LIMIT 1")) !=0) {
mysqli_query($sql, "DELETE FROM dochazka WHERE ID_dochazka='$smaz_dochazka'");
echo"Docházka byla smazána.";
}}
?>
</table>
<input type="submit" value="Smazat" name="submit"/>
</form>
</body>
</html> |
||
| Alphard Profil |
#5 · Zasláno: 9. 9. 2015, 21:05:49
Haďas:
„echo"<td><input type=submit></form></td>";“ Tady chybí počáteční <form>. Musí to být kompletní formulář, musí nést informaci o id aktuálního řádku a po odeslání musí být tento stav odchycen (něčím jako if (isset($_POST['delete_item']))).
Ta druhá varianta má podobný problém, když někam dáte name=dochazka[], je třeba k tomu přidat i value položky, která se má mazat a nějaký kód, který to mazání provede.
|
||
| Haďas Profil |
#6 · Zasláno: 9. 9. 2015, 21:09:25
no já se to snažím nakonec vyřešit tím zaškrtáváním ale nevím právě jak získat informace o příslušném řádku alias ID_dochazka co chci smazat a následně to poslat na query($sql, "DELETE... ) aby to promazal
momentálně se peru s <?php
session_start();
$uzit_jmeno="root";
$hesloo="abcd1234";
$server_jmeno="localhost";
$databaze=mysql_connect($server_jmeno, $uzit_jmeno, $hesloo) or die("Nemůžu se připojit k databázi!");
$vyber_databze=mysql_select_db("stranky_1", $databaze);
$vypis=mysql_query
("SELECT u.ID_uzivatel, u.uzivatelske_jmeno, d.ID_dochazka, d.datum, d.den, d.cas
FROM uzivatele u
JOIN dochazka d
ON u.ID_uzivatel = d.ID_uzivatel ORDER BY u.ID_uzivatel");
?>
<html>
<head>
<link rel="StyleSheet" href="styl.css"></head>
<center>
<title>
</title>
</head>
<body>
<h1>Výpis kapacity docházky</h1>
</br>
<a href="index_1.php">Index</a>
<a href="admin_prava.php">Administrátorské rozhraní</a>
</br>
</br>
<table border="1" bgcolor="#F5F5F5">
<tr>
<th></th>
<th>ID uživatele</th>
<th>Uživatelské jméno</th>
<th>ID docházky</th>
<th>Datum</th>
<th>Den</th>
<th>Čas</th>
<th>Odstranění docházky</th>
</tr>
<form action="vypis_dochazky.php" method="POST">
<?php
while($sloupce=mysql_fetch_assoc($vypis)){
echo"<tr>";
echo"<td><input type='checkbox' name='smaz_dochazka'/></td>";
echo"<td>".$sloupce['ID_uzivatel']."</td>";
echo"<td>".$sloupce['uzivatelske_jmeno']."</td>";
echo"<td>".$sloupce['ID_dochazka']."</td>";
echo"<td>".$sloupce['datum']."</td>";
echo"<td>".$sloupce['den']."</td>";
echo"<td>".$sloupce['cas']."</td>";
echo"<td></td>";
echo"</tr>";
}
if(isset($_POST['submit'])){
$smaz_dochazka=$_POST['smaz_dochazka'];
$sql=mysqli_connect("localhost", "root", "abcd1234","stranky_1") or die("Nemůžu se připojit k databázi!");
if(mysqli_num_rows(mysqli_query($sql, "SELECT * FROM dochazka WHERE ID_dochazka='".$smaz_dochazka."' LIMIT 10")) !=0) {
mysqli_query($sql, "DELETE FROM dochazka WHERE ID_dochazka='$smaz_dochazka'");
echo"Docházka byla smazána.";
}}
?>
</table>
<input type="submit" value="Smazat" name="submit"/>
</form>
</body>
</html> |
||
| Alphard Profil |
#7 · Zasláno: 9. 9. 2015, 21:16:08
Dejte si tam
print_r($_POST);, uvidíte, jaká data se posílají na server. Zjistíte, že neobsahují potřebné id.
|
||
| Haďas Profil |
#8 · Zasláno: 9. 9. 2015, 21:22:40
já to chápu, je to logické, že neví o jaké hodnoty se jedná, proto vás tu prosím o pomoc :)
|
||
| Alphard_ Profil * |
#9 · Zasláno: 9. 9. 2015, 21:48:10
<input type='checkbox' name='smaz_dochazka[]' value='id' /> echo "<td><input type='checkbox' name='smaz_dochazka[]' value='$sloupce[ID_uzivatel]' /></td>"; |
||
|
Časová prodleva: 11 let
|
|||
0