problema functia DELETE

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Avatar utilizator
trif
Mesaje:500

problema functia DELETE

salut, uite am codul asta

Cod: Selectaţi tot

 <?php
   if(isset($_POST['submit'])) 
   {
     $id=$_POST['id'];
	 $anul=$_POST['anul'];
	 $luna=$_POST['luna'];
     $dellists="Delete from anunt where id='$id'";
     mysql_query($dellists) or die("NU se poate sterge anunturile!");
	 $delusers="Delete from anunt where anul='$id'";
     mysql_query($delusers) or die("Atentie, nu se poate sterge anuntul!");
     print "Anunt sters!   <a href='stergere_anunt.php'>Inapoi la stergere!</a>";  
   }   
   else 
   {
      print "Toate anunturile anuale sunt sterse!<br>";
      print "<form action='stergere_anunt.php' method='post'>";
      $getlists="SELECT * from anunt";
      $getlists2=mysql_query($getlists) or die("Nu se poate afisa lista cu anunt!");
      print "<select name='id'>";
      while($getlists3=mysql_fetch_array($getlists2))
      {
         print "<option value='$getlists3[anul]'>$getlists3[anul]</option>";
      }
      print "</select>";
      print "<input type='submit' name='submit' value='Sterge anunt!'></form>";
   }
?>
si atunci cand vreau sa sterg un anunt din 2010 imi sterge toate din 2010 si eu vreau ca daca vreau sa sterg luna octombrie 2010 sa imi stearga doar aceasta luna nu pe toate. 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

MarPlo Mesaje:4343
Depinde cum sunt coloanele si datele adaugate, daca ai coloane separate pt. luna si an.
In principiu se pot folosi mai multe clauze dupa WHERE, cu OR si/sau AND.
De exemplu:
$sql_del = "DELETE FROM `anunt` WHERE `anul`='$an' AND `luna`='$luna'";
- Va sterge randurile care au ambele in ele, si anul si luna cele specificate.

trif Mesaje:500
salut, am ceva de genu:
data luna anul
01-10-2010 Octombrie 2010
culoarea este coloana sunt colorate albastru este o coloana, rosu alta coloana si verde alta coloana si ce este bloduit este capul de tabel. si nu stiu cum sa fac. 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

MarPlo Mesaje:4343
Incearca sa inlocuesti in codul tau cu urmatorul:

Cod: Selectaţi tot

if(isset($_POST['submit']))
{
$anul=$_POST['anul'];
$luna=$_POST['luna'];
 $dellists="DELETE FROM `anunt` WHERE `anul`='$anul' AND `luna`='$luna'";
 mysql_query($dellists) or die("NU se poate sterge anunturile!");
}

trif Mesaje:500
salut, nu merge, nu imi sterge ci imi zice "NU se ....! 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

MarPlo Mesaje:4343
Nu stiu de ce nu merge, codul e simplu si pare corect.
Daca nu da erori care sa indice vreo cauza, nu pot ghici. Vezi in manualul MySQL cum se foloseste functia DELETE.

trif Mesaje:500
salut, mai am o problema la functia delete, am codul

Cod: Selectaţi tot

 <?php
$utilizator=mysql_real_escape_string($_GET['id_materie']);
// Se verifica daca sunt date de la formular
if (isset($_POST['id_materie'])) {
// Se preiau datele
$id_materie=($_POST['id_materie']);
// Se face DELETE
$cerereSQL = "DELETE FROM `materii` WHERE `id_materie` ='".$id_materie."' LIMIT 1";
mysql_query($cerereSQL) or die("NU se poate STERGE!");
}
echo'<a href="afisare_materii.php">inapoi</a>';
?>
dar nu vera sa imi stearga si nu stiu de ce. 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

MarPlo Mesaje:4343
Incearca interogarea SQL asa:
$cerereSQL = "DELETE FROM `materii` WHERE `id_materie`=$id_materie LIMIT 1";

trif Mesaje:500
am incercat dar nu merge:-??. nu stiu de ce. nu sti o alta functie care sa inlocuiasca asta altfel structurat? 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

MarPlo Mesaje:4343
Incearca si asa, cu variabila intre ghilimele simple (mai sus m-am gandit ca id-ul fiind un numar nu e nevoie de ele)
$cerereSQL = "DELETE FROM `materii` WHERE `id_materie`='$id_materie' LIMIT 1";
Daca nu merge, explicatia este ca nu se gaseste egalitatea `id_materie`='$id_materie'

trif Mesaje:500
nici asa nu merge. bd materii este formata din id_materie | disciplina | forma | credit | an | semestru si atunci cum sa fac? avand codul acela sau altul daca se poate. 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

MarPlo Mesaje:4343
Codul pare corect.
Vezi ce numere ai la `id_materie` si incearca sa testezi, sa scrii in loc de variabila '$id_materie' unul din numere, iar ca sa vezi daca returneaza mysql vreo eroare, pune comanda asa:
if(!mysql_query($cerereSQL)) echo '<br />'. mysql_errno(). " : ". mysql_error();
- Alta solutie nu mai stiu.

Subiecte similare