Pai, trebuie pus id-ul in link, cel din tabel, la selectul care preia datele din mysql.
Adica, la ce ai acolo trebuie pus asa:
echo '... <a class="button" onclick="return confirm (' . $confirm_message . ');" href="stergere_gand.php?id='. $rand['id'] . '">Sterge</a> ...';
problema functia DELETE
-
- Administratorul site-ului
- Mesaje:4343
problema functia DELETE
trif
Mesaje:500
salut, am facut cum ai zis u, dar nu imi sterge ci imi dispar de pe ecran daca le dau la oricare indiferent iar la o reinprospatare a paginii imi apar exact cum au fost. nu stiu ce sa ii fac. uite codul: si aici am modificat: cred ca aici face stergerea si cred ca aici este hiba sau problema, dar nu stiu care este. multumesc mult, cu stima trif
Cod: Selectaţi tot
<?php
$host = "localhost";
$utilizator = "root";
$parola = "pass";
$numebd = "bd";
$conn = mysql_connect($host, $utilizator, $parola);
if (!$conn) {
echo 'Conectare nereusita la MySQL';
exit;
}
if (!mysql_select_db($numebd, $conn)) {
echo 'Baza de date nu a putut fi selectata deoarece : '. mysql_error();
exit;
}
$sql = "SET NAMES 'utf8'";
mysql_query($sql, $conn);
// Afla cate linii sunt in tabel (MODIFICATI 'un_gand') din baza de date
$sql="SELECT * FROM un_gand ORDER BY id DESC";
$result = mysql_query($sql, $conn) or trigger_error(E_USER_ERROR);
$r = mysql_fetch_row($result);
$numrows = $r[0];
// Stabileste numarul de linii din tabel afisate in pagina
$rowsperpage = 10;
// afla numarul total necesar de pagini
$totalpages = ceil($numrows / $rowsperpage); // ceil face rotunjire la int. maxim
// Obtine pagina curenta sau seteaza default
if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) {
// seteaza variabila ca int
$currentpage = (int) $_GET['currentpage'];
} else {
// pagina care este initial afisata (pagina default)
$currentpage = 1;
}
// daca pagina curenta e mai mare decat total pagini...
if ($currentpage > $totalpages) {
// seteaza pagina curenta la ultima pagina
$currentpage = $totalpages;
}
// daca pagina curenta e mai mica decat prima pagina...
if ($currentpage < 1) {
// seteaza pagina curenta la prima pagina
$currentpage = 1;
}
// lista cu pagini, in functie de pagina curenta
$offset = ($currentpage - 1) * $rowsperpage;
// obtine datele din tabel (MODIFICATI 'un_gand') din baza de date
$confirm_message = "'Stergeti maxima din baza de date?'";
$litera = $_GET['id'];
$sql="SELECT * FROM `un_gand` WHERE `mesaj` LIKE '$litera%' ORDER BY id DESC LIMIT $offset, $rowsperpage";
$result = mysql_query($sql, $conn) or trigger_error(E_USER_ERROR);
echo '<center><table border="0" width="450" >';
// parcurgerea matricei cu datele obtinute
while ($rand=mysql_fetch_array($result)){
echo '<tr> <td><b><div align="left"> '.$rand['mesaj'].' <font color="red"><div align="right"><br>'.$rand['autor'].' </div> </font></div></b></td> <td><a class="button" onclick="return confirm (' . $confirm_message . ');" href="stergere_gand.php?id='. $rand['id'] . '">Sterge</a></td></tr>';
if(isset($_GET['id'])) {
$id = $_GET['id'];
$query = "DELETE FROM `un_gand` WHERE `id`='". $id. "'";
mysql_query($query, $conn);
}
}
echo '</table></center>';
/*** Construirea link-urilor pt. paginare ***/
// raza nr. link-uri din jurul celui curent
$range = 3;
// Link-uri inapoi, daca pagina curenta nu e prima
if ($currentpage > 1) {
// arata << pt. link la prima pagina
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1'>prima </a> ";
// obtine nr. pagina din urma
$prevpage = $currentpage - 1;
// arata < pt. link la o pagina in urma
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$prevpage'>inapoi</a> ";
}
// definirea link-urilor din raza paginii curente
for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) {
// daca e un nr. de pagina valid ...
if (($x > 0) && ($x <= $totalpages)) {
// daca nr. e pagina curenta ...
if ($x == $currentpage) {
// afiseaza nr. pagina fara a fi link
echo " [<b>$x</b>] ";
// daca nr. nu e pagina curenta ...
} else {
// il face link
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$x'>$x</a> ";
}
}
}
// Daca pagina curenta nu e ultima, afiseaza link inainte si spre ultima pagina
if ($currentpage != $totalpages) {
// obtine pagina urmatoare
$nextpage = $currentpage + 1;
// arata > pt. urmatoarea pagina
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage'>inainte</a> ";
// arata >> pt. ultima pagina
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages'>ultima</a> ";
}
?>
Cod: Selectaţi tot
$confirm_message = "'Stergeti maxima din baza de date?'";
$litera = $_GET['id'];
$sql="SELECT * FROM `un_gand` WHERE `mesaj` LIKE '$litera%' ORDER BY id DESC LIMIT $offset, $rowsperpage";
$result = mysql_query($sql, $conn) or trigger_error(E_USER_ERROR);
echo '<center><table border="0" width="450" >';
// parcurgerea matricei cu datele obtinute
while ($rand=mysql_fetch_array($result)){
echo '<tr> <td><b><div align="left"> '.$rand['mesaj'].' <font color="red"><div align="right"><br>'.$rand['autor'].' </div> </font></div></b></td> <td><a class="button" onclick="return confirm (' . $confirm_message . ');" href="stergere_gand.php?id='. $rand['id'] . '">Sterge</a></td></tr>';
if(isset($_GET['id'])) {
$id = $_GET['id'];
$query = "DELETE FROM `un_gand` WHERE `id`='". $id. "'";
mysql_query($query, $conn);
}
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
MarPlo
Mesaje:4343
Codul de stergere trebuie sa fie in pagina care e adaugata la link (stergere_gand.php).
Daca e aceeasi, incearca sa scoti if(isset($_GET['id'])) { ... cod pt. DELETE } din WHILE fiindca la incarcarea paginii cu linkul de stergere acel while nu mai executa ce e in el.
Daca e aceeasi, incearca sa scoti if(isset($_GET['id'])) { ... cod pt. DELETE } din WHILE fiindca la incarcarea paginii cu linkul de stergere acel while nu mai executa ce e in el.
trif
Mesaje:500
salut, multumesc pentru ajutor, merge functia de delete, dar a aparut o mica prob, atunci cand vreau sa sterg ceva am in fatza acest link stergere_gand.php iar dupa ce aleg sa sterg gandul respectiv mi-l sterge dar sterge totul din cauza ca se pune link-ul pe stergere_gand.php?id=6 si nu este bine pt ca pagina este goala iar mie imi trebuie sa fie asa cum era inainte cand le vedem pe toate iar daca am sters un gand sa le vad pe toate in afara de acel gand, intelegeti? multumesc cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
MarPlo
Mesaje:4343
Nu prea inteleg despre ce e vorba.
In link fiind "id=6", iar DELETE unde "... id=6" sterge doar acel rand din tabel.
Iar daca stegerea se face prin deschiderea altei pagini (stergere_gand.php), in acel fisier, dupa stergere puteti adauga un redirect php, cu header('Location: adresa_pagina'); pentru a redeschide acea pagina in loc de "stergere_gand.php".
In link fiind "id=6", iar DELETE unde "... id=6" sterge doar acel rand din tabel.
Iar daca stegerea se face prin deschiderea altei pagini (stergere_gand.php), in acel fisier, dupa stergere puteti adauga un redirect php, cu header('Location: adresa_pagina'); pentru a redeschide acea pagina in loc de "stergere_gand.php".
trif
Mesaje:500
salut,
sa mai expic o data,
cand intru pe pagina, link-ul este stergere_gand.php si dupa ce aleg sa sterg un "gand" apare la link stergere_gand.php?id=4 dar cum s-a sters nu mai este info si atunci pagina este goala, si eu as vrea ca atunci cand sterg sa imi stearga dar sa nu mai imi apara pagina goala. de exemplu:
am pagina asta:
si sterg info2
viitoarea pagina sa imi apara: nu pagian goala. sper ca am explicat mai bine acum. cu stima trif
sa mai expic o data,
cand intru pe pagina, link-ul este stergere_gand.php si dupa ce aleg sa sterg un "gand" apare la link stergere_gand.php?id=4 dar cum s-a sters nu mai este info si atunci pagina este goala, si eu as vrea ca atunci cand sterg sa imi stearga dar sa nu mai imi apara pagina goala. de exemplu:
am pagina asta:
Cod: Selectaţi tot
1 info1
2 info2
3 info3
viitoarea pagina sa imi apara:
Cod: Selectaţi tot
1 info1
3 info3
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
MarPlo
Mesaje:4343
Pai, ori faci redirect cu functia header() la pagina care face afisarile, unde se actioneaza delete (vezi exemple pe net, cautand "redirect php").
Sau, in stergere_gand.php, dupa DELETE, care sa fie mai la inceput, faci iar SELECT si afisare ce a ramas.
Sau, in stergere_gand.php, dupa DELETE, care sa fie mai la inceput, faci iar SELECT si afisare ce a ramas.
trif
Mesaje:500
salut, am facut cum ai zis si la header imi da eroarea asta: . iar cu punerea inca o data a SELECT-ului nu merge ca imi ramane in link stergere_gand.php?id=x si nu mai imi selecteaza ci imi lasa pag goala. nu stiu ce sa ii fac ? cu stima trif
Cod: Selectaţi tot
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\sitefinal\stergere_gand.php:287) in C:\xampp\htdocs\sitefinal\stergere_gand.php on line 424
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
MarPlo
Mesaje:4343
functia header() e ca si session, adica nu functioneaza daca inainte se face vreun "echo" sau alta data de afisare in browser.
Dar in loc de aceasta functie, tot pt. redirect se poate crea cu echo meta-tag HTML Refresh.
echo '<meta HTTP-EQUIV="REFRESH" content="0; url=adresa_pagina">';
Dar in loc de aceasta functie, tot pt. redirect se poate crea cu echo meta-tag HTML Refresh.
echo '<meta HTTP-EQUIV="REFRESH" content="0; url=adresa_pagina">';
trif
Mesaje:500
salut, mie imi trebuie o varianta ca dupa ce sa sterg un gand sa nu imi mai fie pagina goala si sa nu mai fie in link-ul de sus stergere_gand.php?id=x ci sa fie stergere_gand.php. pt ca daca este stergere_gand.php imi arata ceea ce a mai ramas. cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
MarPlo
Mesaje:4343
Incearca la instructiunea de delete, adica doar atunci cand o executa, urmatoarea comanda:
- Normal ar trebui sa functioneze, altfel nu mai stiu.
Cod: Selectaţi tot
// cod sql delete
if(mysql_query($query, $conn)) echo '<meta HTTP-EQUIV="REFRESH" content="0; url=stergere_gand.php">';
trif
Mesaje:500
salut, merge cum ai zis tu, dar mai este o problema, si aceasta este, dupa ce sterg ma trimite in stergere_gand.php DAR aici vad o modificare numai daca reinprospatez pagina, cum fac sa nu trebuiasca asta? am mutat si SELECT-ul in fata DELETE-lui si imi face selectia dar cea veche si dupa ce ii dau eu refresh atunci merge! cum sa fac?
si mai este o problema, am pus ca sa imi arate pe pagina 3 info, iar daca am 3 info in total imi face si pagina 2 dar goala, iar daca am 4 info imi pune si pe a doua dar imi face pe a treia si a patra goala nu stiu care este baiul.
uite codul cu stima trif
si mai este o problema, am pus ca sa imi arate pe pagina 3 info, iar daca am 3 info in total imi face si pagina 2 dar goala, iar daca am 4 info imi pune si pe a doua dar imi face pe a treia si a patra goala nu stiu care este baiul.
uite codul
Cod: Selectaţi tot
$host = "localhost";
$utilizator = "root";
$parola = "pass";
$numebd = "bd";
$conn = mysql_connect($host, $utilizator, $parola);
if (!$conn) {
echo 'Conectare nereusita la MySQL';
exit;
}
if (!mysql_select_db($numebd, $conn)) {
echo 'Baza de date nu a putut fi selectata deoarece : '. mysql_error();
exit;
}
$sql = "SET NAMES 'utf8'";
mysql_query($sql, $conn);
// Afla cate linii sunt in tabel (MODIFICATI 'un_gand') din baza de date
$sql="SELECT * FROM un_gand ORDER BY id DESC";
$result = mysql_query($sql, $conn) or trigger_error(E_USER_ERROR);
$r = mysql_fetch_row($result);
$numrows = $r[0];
// Stabileste numarul de linii din tabel afisate in pagina
$rowsperpage = 4;
// afla numarul total necesar de pagini
$totalpages = ceil($numrows / $rowsperpage); // ceil face rotunjire la int. maxim
// Obtine pagina curenta sau seteaza default
if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) {
// seteaza variabila ca int
$currentpage = (int) $_GET['currentpage'];
} else {
// pagina care este initial afisata (pagina default)
$currentpage = 1;
}
// daca pagina curenta e mai mare decat total pagini...
if ($currentpage > $totalpages) {
// seteaza pagina curenta la ultima pagina
$currentpage = $totalpages;
}
// daca pagina curenta e mai mica decat prima pagina...
if ($currentpage < 1) {
// seteaza pagina curenta la prima pagina
$currentpage = 1;
}
// lista cu pagini, in functie de pagina curenta
$offset = ($currentpage - 1) * $rowsperpage;
// obtine datele din tabel (MODIFICATI 'un_gand') din baza de date
$confirm_message = "'Stergeti maxima din baza de date?'";
$litera = $_GET['id'];
if(isset($_GET['id'])) {
$id = $_GET['id'];
$query = "DELETE FROM `un_gand` WHERE `id`='". $id. "'";
if(mysql_query($query, $conn)) echo '<meta HTTP-EQUIV="REFRESH" content="0; url=stergere_gand.php">';
}
$sql="SELECT * FROM `un_gand` WHERE `mesaj` LIKE '$litera%' ORDER BY id DESC LIMIT $offset, $rowsperpage";
$result = mysql_query($sql, $conn) or trigger_error(E_USER_ERROR);
echo '<center><table border="0" width="450" >';
// parcurgerea matricei cu datele obtinute
while ($rand=mysql_fetch_array($result)){
echo '<tr> <td><b><div align="left"> '.$rand['mesaj'].' <font color="red"><div align="right"><br>'.$rand['autor'].' </div> </font></div></b></td> <td><a class="button" onclick="return confirm (' . $confirm_message . ');" href="stergere_gand.php?id='. $rand['id'] . '">Sterge</a></td></tr>';
//echo '<meta HTTP-EQUIV="REFRESH" content="0; url=stergere_gand.php">';
}
echo '</table></center>';
/*** Construirea link-urilor pt. paginare ***/
// raza nr. link-uri din jurul celui curent
$range = 3;
// Link-uri inapoi, daca pagina curenta nu e prima
if ($currentpage > 1) {
// arata << pt. link la prima pagina
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1'>prima </a> ";
// obtine nr. pagina din urma
$prevpage = $currentpage - 1;
// arata < pt. link la o pagina in urma
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$prevpage'>inapoi</a> ";
}
// definirea link-urilor din raza paginii curente
for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) {
// daca e un nr. de pagina valid ...
if (($x > 0) && ($x <= $totalpages)) {
// daca nr. e pagina curenta ...
if ($x == $currentpage) {
// afiseaza nr. pagina fara a fi link
echo " [<b>$x</b>] ";
// daca nr. nu e pagina curenta ...
} else {
// il face link
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$x'>$x</a> ";
}
}
}
// Daca pagina curenta nu e ultima, afiseaza link inainte si spre ultima pagina
if ($currentpage != $totalpages) {
// obtine pagina urmatoare
$nextpage = $currentpage + 1;
// arata > pt. urmatoarea pagina
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage'>inainte</a> ";
// arata >> pt. ultima pagina
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages'>ultima</a> ";
}
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
Subiecte similare
- Problema curs de Engleza
Sesizari Erori si Greseli Primul mesaj
Buna.Ultimul mesaj
Am descarcat cursul curs_eurocor-engleza_incepatori_1-16.rar si cand vreau sa-l dezarhivez imi da eroarea asta:
An error occures whilw...
Buna,
Poti sa descarci cursul de engleza, nivel intermediar, de la urmatoarele linkuri:
- Lectiile 1-16... - O mica problema de animatie CSS
HTML - XHTML - CSS Primul mesaj
Noroc, MarPlo!Ultimul mesaj
1. Am vizitat pe twitter un site de animatie, in care website-ul actual se numeste CSS-Challenges,com. In respectivul website, sunt...
1. Multumesc pentru raspuns.
2. Am inteles raspunsul tau: este un mic examen oferit voluntarilor online, pentru a le afla capacitatile de rezolvare...