Διαγραφή από πίνακα βάης σεδομένων

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
konstadina
Δημοσιεύσεις: 11
Εγγραφή: 06 Φεβ 2009 15:12

Διαγραφή από πίνακα βάης σεδομένων

Δημοσίευση από konstadina » 06 Φεβ 2009 16:15

Γεια σας!!!
Προσπαθώ να διαγράψω συγκεκριμένες εγγραφές από έναν πίνακα αλλά μου διαγράφεται όλος ο πίνακας.Μήπως μπορείτε να με βοηθήσετε?
Έχω δημιουργήσει έναν πίνακα anakoinwseis ε τα πεδία aukswn_arithmos, imerominia, thema, kuriws_keimeno.Τα εμφανίζω σε μια σελίδα announcement1.php με την εξής μορφή:
Ανακοίνωση 1 [διαγραφή]
Ημερομηνία....
Θέμα.....
......κειμενο......
Ανακοίνωση 2 [διαγραφή]
Ημερομηνία....
Θέμα.....
......κειμενο......
κλπ
.
.
.

Και θέλω πατώντας στον υπερσύνδεσμο διαγραφή να διαγράφεται από τον πίνακα μόνο κάθε φορά η συγκεκριμένη ανακοίνωση.Τί να κάνω?

Ο κώδικας της σελίδας announcement1.php είναι:

<?php
$hostname = "localhost";
$database = "student1200partb.sql";
$username = "myuser";
$password = "mypsw";
$link = mysql_connect( $hostname , $username , $password ) or
die("Prosoxi!Provlima stin sundesi me ton server : " . mysql_error());
if (!$link)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("student1200partb.sql", $link);
mysql_query('set character set greek',$link);
mysql_query("SET NAMES 'greek'",$link);

$result = mysql_query("SELECT * FROM anakoinwseis ORDER BY aukswn_arithmos");
while($row = mysql_fetch_array($result))
{
?>

<blockquote>
<blockquote>
<font color="green"> <h2>Ανακοίνωση
<?php
echo $row['aukswn_arithmos'];
?>
</h2> </font>
<a href="diagrafianakoinwsi.php">[Διαγραφή]</a>
<a href="epeksergasiaanakoinwsi.php">[Επεξεργασία]</a>
</blockquote>
</blockquote>


<blockquote>
<blockquote>
<blockquote>
<b>Ημερομηνία:</b>
<?php
echo $row['imerominia'];
?>
</blockquote>
</blockquote>
</blockquote>


<blockquote>
<blockquote>
<blockquote>
<b>Θέμα:</b>
<?php
echo $row['thema'];
?>
</blockquote>
</blockquote>
</blockquote>


<?php
echo"<blockquote>";
echo"<blockquote>";
echo"<blockquote>";
echo $row['kuriws_keimeno'];
echo"</blockquote>";
echo"</blockquote>";
echo"</blockquote>";
echo"<hr <font color=\"black\" align=\"center\" width=\"100%\"> </font>";
}
?>

<br>
<br>

<blockquote>
<blockquote>
<a href="#top">top</a>
</blockquote>
</blockquote>

</td>
</tr>

</table>

</body>

</html>


Ευχαριστώ!!!

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Διαγραφή από πίνακα βάης σεδομένων

Δημοσίευση από korgr » 06 Φεβ 2009 23:03

μπορεις να μας δειξεις και τι εχεις στο diagrafianakoinwsi.php?

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Διαγραφή από πίνακα βάης σεδομένων

Δημοσίευση από dva_dev » 06 Φεβ 2009 23:26

το $row['aukswn_arithmos'] που χρειάζεται (αν είναι αυτό το primary key) για να κάνει τη διαγραφή δεν το περνάει, απλώς το εμφανίζει.

konstadina
Δημοσιεύσεις: 11
Εγγραφή: 06 Φεβ 2009 15:12

Διαγραφή από πίνακα βάης σεδομένων

Δημοσίευση από konstadina » 07 Φεβ 2009 00:43

Το αρχείο diagrafianakoinwsi.php έχει αυτόν τον κώδικα αλλά στο WHERE δεν ξέρω τί να βάλω για να μου διαγράφει την συγκεκριμένη ανακοίνωση αντίστοιχα από τον πίνακα....



<html>
<body bgcolor="5E90F5">


<?php
$hostname = "localhost";
$database = "student1200partb.sql";
$username = "myuser";
$password = "mypsw";
$tbl_name="anakoinwseis";
$link = mysql_connect( $hostname , $username , $password ) or
die("Prosoxi!Provlima stin sundesi me ton server : " . mysql_error());
if (!$link)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("student1200partb.sql", $link);
mysql_select_db("anakoinwseis", $link);
mysql_query('set character set greek',$link);
mysql_query("SET NAMES 'greek'",$link);

$result = mysql_query("SELECT * FROM anakoinwseis WHERE ");

if (!mysql_query($sql,$link))
{
die('Error: ' . mysql_error());
}

echo "<h2/><b/>Η εγγραφή που επιλέξατε διαγράφηκε επιτυχώς!!!</b/></h2/>";
mysql_close($link);
?>

</body>

</html>

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Διαγραφή από πίνακα βάης σεδομένων

Δημοσίευση από fafos » 07 Φεβ 2009 01:27

to query tou arxeiou diagrafianakoinwsi.php den diagrafei kati!!

sto announcement1.php prepei na stelneis to id pou thes me to link me ena get:

Κώδικας: Επιλογή όλων

<a href="diagrafianakoinwsi.php?id=<?=$row&#91;'aukswn_arithmos'&#93;;?>">&#91;Διαγραφή&#93;</a>
katopin sto diagrafianakoinwsi.php kaneis to query sou etsi:

Κώδικας: Επιλογή όλων

	$result = "DELETE FROM anakoinwseis WHERE aukswn_arithmos='$_GET&#91;id&#93;'";
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
Pavel
Honorary Member
Δημοσιεύσεις: 1046
Εγγραφή: 08 Αύγ 2003 00:05
Τοποθεσία: UK

Διαγραφή από πίνακα βάης σεδομένων

Δημοσίευση από Pavel » 07 Φεβ 2009 15:11

fafos έγραψε:

Κώδικας: Επιλογή όλων

$result = "DELETE FROM anakoinwseis WHERE aukswn_arithmos='$_GET&#91;id&#93;'";
Θα ήταν πιο ασφαλές αν το έκανε

Κώδικας: Επιλογή όλων

$id = intval&#40;$_GET&#91;id&#93;&#41;;
$result = "DELETE FROM anakoinwseis WHERE aukswn_arithmos=".$id;
Εσύ είσαι τρελός.

konstadina
Δημοσιεύσεις: 11
Εγγραφή: 06 Φεβ 2009 15:12

Διαγραφή από πίνακα βάης σεδομένων

Δημοσίευση από konstadina » 07 Φεβ 2009 16:34

Σας ευχαριστώ πάρα πολύ για την βοήθεια!!!!
Τα διαγράφει κανονικά απλά έπρεπε να κάνω μια μικρή διόρθωση

Έπρεπε να γράψω
<a href="diagrafianakoinwsi.php?id=<?php echo $row['aukswn_arithmos'];?>">[Διαγραφή]</a>
αντι για
<a href="diagrafianakoinwsi.php?id=<?=$row['aukswn_arithmos'];?>">[Διαγραφή]</a>
για να τρέξει,αλλιώς μου έβγαζε λάθος.

Και πάλι ευχαριστώ πολυ!!!!

konstadina
Δημοσιεύσεις: 11
Εγγραφή: 06 Φεβ 2009 15:12

Διαγραφή από πίνακα βάης σεδομένων

Δημοσίευση από konstadina » 07 Φεβ 2009 19:28

Μπορείτε να με βοηθήσετε και σε κάτι ακόμη??
Στην ίδια σελίδα τώρα ananouncement1.php θέλω να υπάρχει ένας υπερσύνδεσμος [επεξεργασία] όπου θα μπορώ να τροποποιώ τις αντίστοιχες εγγραφές του πίνακα.Θα έχει τώρα την μορφή
Ανακοίνωση 1 [διαγραφή] [επεξεργασία]
Ημερομηνία....
Θέμα.....
......κειμενο......
Ανακοίνωση 2 [διαγραφή] [επεξεργασία]
Ημερομηνία....
Θέμα.....
......κειμενο......
κλπ
.
.
.


Ο κώδικας της σελίδας epeksergasiaan.php θα είναι παρόμοιος με την διαγραφή αλλά το query
$result = "UPDATE anakoinwseis WHERE ......";
πώς θα το συμπληρώσω??

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Διαγραφή από πίνακα βάης σεδομένων

Δημοσίευση από fafos » 07 Φεβ 2009 20:00

metafereis pali to id sto link:

Κώδικας: Επιλογή όλων

<a href="epeksergasiaan.php?id=<?=$row&#91;'aukswn_arithmos'&#93;;?>">&#91;επεξεργασία&#93;</a> 
sthn selida epeksergasiaan.php kaleis ena query me where aukswn_arithmos=$_GET[id] kai sthn html exeis thn idia forma opos authn pou kaneis kataxorhsh alla mesa sta values vazeis thn timh pou tha parei apo to parapano query..p.x.:

<input type="text" name="title" value="<?echo $title?>">

epano apo ola tha exeis to query pou tha kanei to update EFOSON stalei h forma:

if($_POST[submit]) {

....query update eggrafh...

}


dhladh theleis 2 queries.. ena pou tha "trava" ta dedomena kai ena pou tha kanei to update...

Shm... auta pou sou dinoume einai aples lyseis.. prepei na psakseis pos tha asfaliseis ola auta gia na mhn exeis provlhma asfaleias..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

konstadina
Δημοσιεύσεις: 11
Εγγραφή: 06 Φεβ 2009 15:12

Διαγραφή από πίνακα βάης σεδομένων

Δημοσίευση από konstadina » 07 Φεβ 2009 22:56

Δημιουργώ την epeksergsiaan.php ως εξής

<html>
<body bgcolor="5E90F5">


<?php
$hostname = "localhost";
$database = "student1200partb.sql";
$username = "myuser";
$password = "mypsw";
$link = mysql_connect( $hostname , $username , $password ) or
die("Prosoxi!Provlima stin sundesi me ton server : " . mysql_error());
if (!$link)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("student1200partb.sql", $link);
mysql_query('set character set greek',$link);
mysql_query("SET NAMES 'greek'",$link);

$sql= "UPDATE anakoinwseis WHERE aukswn_arithmos='$_GET[id]'";


if (!mysql_query($sql,$link))
{
die('Error: ' . mysql_error());
}

echo "<h2/><b/>Τα στοιχεία που επιλέξατε τροποποιήθηκαν με επιτυχία!!!</b/></h2/>";
mysql_close($link);
?>

</body>

</html>


και την epeksergasiaan.html ως εξής

<html>
<body bgcolor="5E90F5">
<form action="epeksergasiaan.php" method="post">
Αύξων Αριθμός: <input type="int" name=" aukswn_arithmos" value="<?php echo $aukswn_arithmos?>" />
<p>
Ημερομηνία: <input type="text" name="imerominia" value="<?php echo $imerominia?>"/>
<p>
Θέμα: <input type="text" name="thema" value="<?php echo $thema?>"/>
<p>
Κυρίως Κείμενο: <input type="text" name="kuriws_keimeno" value="<?php echo $kuriws_keimeno?>"/>
<p>
<input type="submit" />
</form>
</body>
</html>


αλλά μου βγάζει λάθος
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE aukswn_arithmos='6'' at line 1

Πού είναι το λάθος;
Τα έχω κάνει σωστά?Αυτό πρέπει να κάνω?

Άβαταρ μέλους
Pavel
Honorary Member
Δημοσιεύσεις: 1046
Εγγραφή: 08 Αύγ 2003 00:05
Τοποθεσία: UK

Διαγραφή από πίνακα βάης σεδομένων

Δημοσίευση από Pavel » 07 Φεβ 2009 23:03

konstadina έγραψε:$sql= "UPDATE anakoinwseis WHERE aukswn_arithmos='$_GET[id]'";
Άλλαξε το UPDATE σε DELETE FROM.

Και μην βάλεις το $_GET['id'] έτσι ξερά επειδή αν στον browser γράψω:

Κώδικας: Επιλογή όλων

0' OR 'a' = 'a
και δεν είναι ενεργοποιημένα τα magic_quotes, θα σβήσουν όλες οι εγγραφές του πίνακα. Κοίτα το post μου λίγο πιο πάνω και κάνε το έτσι αν θέλεις.
Εσύ είσαι τρελός.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Διαγραφή από πίνακα βάης σεδομένων

Δημοσίευση από fafos » 08 Φεβ 2009 00:08

Pavel έγραψε:
konstadina έγραψε:$sql= "UPDATE anakoinwseis WHERE aukswn_arithmos='$_GET[id]'";
Άλλαξε το UPDATE σε DELETE FROM.

Και μην βάλεις το $_GET['id'] έτσι ξερά επειδή αν στον browser γράψω:

Κώδικας: Επιλογή όλων

0' OR 'a' = 'a
και δεν είναι ενεργοποιημένα τα magic_quotes, θα σβήσουν όλες οι εγγραφές του πίνακα. Κοίτα το post μου λίγο πιο πάνω και κάνε το έτσι αν θέλεις.
Pavel.. teleiosame me to delete.. eimaste sthn epeksergasia tora :D

konstadina... to query einai lathos giati den exei sets... otan trexeis ena update query prepei na peis ti theleis na ananeoseis.. p.x.:

Κώδικας: Επιλογή όλων

mysql_db_query&#40;$dbname, "UPDATE `table` SET `title`='$_POST&#91;title&#93;' WHERE `id`='$id'"&#41;;


etsi opos to exeis omos me to pou tha mpeis sthn selida tha sou kanei thn eggrafh kenh... dhladh tha svhsei oles tis times pou exeis dosei..

diavase to prohgoumeno post mou.:
epano apo ola tha exeis to query pou tha kanei to update EFOSON stalei h forma:

if($_POST[submit]) {

....query update eggrafh...

}
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

konstadina
Δημοσιεύσεις: 11
Εγγραφή: 06 Φεβ 2009 15:12

Διαγραφή από πίνακα βάης σεδομένων

Δημοσίευση από konstadina » 08 Φεβ 2009 19:14

Μπερδεύτηκα εντελώς!!!!!!!
Μου βγάζει παντού λάθη.....
Ας το πάρουμε από την αρχή.....
Λοιπόν δημιουργώ την announcement1.php όπου έχει τον υπερσύνδεσμο <a href="epeksergasiaan.html?id=<?php echo $row['aukswn_arithmos'];?>">[Επεξεργασία]</a> για να πάει στην σελίδα html όπου θα καταχωρήσει τα νέα δεδομένα.

<html>

<head>
<title>ΑΝΑΚΟΙΝΩΣΕΙΣ</title>
</head>

<body bgcolor="5E90F5">
<a name="top"> </a>
<table width="100%" border="0">

<tr >
<td width="100%" align="center" colspan="2"> <h1>ΑΝΑΚΟΙΝΩΣΕΙΣ</h1> </td>
</tr>

<tr>
<td width="20%" valign="top">

<a href="index1.php">
<img src="photo/arxiki_selida.gif" border="0" >
</a>

<a href="announcement1.php">
<img src="photo/anakoinwseis.gif" border="0" >
</a>

<a href="communication1.php">
<img src="photo/epikoinwnia.gif" border="0" >
</a>

<a href="documents1.php">
<img src="photo/eggrafa_mathimatos.gif" border="0" >
</a>

<a href="homework1.php">
<img src="photo/ergasies.gif" border="0" >
</a>

<a href="insertxristi.html">
<img src="photo/prosthiki_neou_xristi.gif" border="0" >
</a>

</td>

<td width="80%" align="left">
<hr <font color="black" align="center" width="100%"> </font>

<blockquote>
<blockquote>
<a href="insertanakoinwsi.html">Προσθήκη Νέας Ανακοίνωσης</a>
</blockquote>
</blockquote>

<hr <font color="black" align="center" width="100%"> </font>


<?php
$hostname = "localhost";
$database = "student1200partb.sql";
$username = "myuser";
$password = "mypsw";
$link = mysql_connect( $hostname , $username , $password ) or
die("Prosoxi!Provlima stin sundesi me ton server : " . mysql_error());
if (!$link)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("student1200partb.sql", $link);
mysql_query('set character set greek',$link);
mysql_query("SET NAMES 'greek'",$link);

$result = mysql_query("SELECT * FROM anakoinwseis ORDER BY aukswn_arithmos");
while($row = mysql_fetch_array($result))
{
?>

<blockquote>
<blockquote>
<font color="green"> <h2>Ανακοίνωση
<?php
echo $row['aukswn_arithmos'];
?>
</h2> </font>
<a href="diagrafianakoinwsi.php?id=<?php echo $row['aukswn_arithmos'];?>">[Διαγραφή]</a>
<a href="epeksergasiaan.html?id=<?php echo $row['aukswn_arithmos'];?>">[Επεξεργασία]</a>
</blockquote>
</blockquote>


<blockquote>
<blockquote>
<blockquote>
<b>Ημερομηνία:</b>
<?php
echo $row['imerominia'];
?>
</blockquote>
</blockquote>
</blockquote>


<blockquote>
<blockquote>
<blockquote>
<b>Θέμα:</b>
<?php
echo $row['thema'];
?>
</blockquote>
</blockquote>
</blockquote>


<?php
echo"<blockquote>";
echo"<blockquote>";
echo"<blockquote>";
echo $row['kuriws_keimeno'];
echo"</blockquote>";
echo"</blockquote>";
echo"</blockquote>";
echo"<hr <font color=\"black\" align=\"center\" width=\"100%\"> </font>";
}
?>

<br>
<br>

<blockquote>
<blockquote>
<a href="#top">top</a>
</blockquote>
</blockquote>

</td>
</tr>

</table>

</body>

</html>



H epeksergasiaan.html ειναι
<html>
<body bgcolor="5E90F5">

<form action="epeksergasiaan.php" method="post">
Αύξων Αριθμός: <input type="int" name=" aukswn_arithmos" value="<?php echo $aukswn_arithmos?> />
<p>
Ημερομηνία: <input type="text" name="imerominia" value="<?php echo $imerominia?>/>
<p>
Θέμα: <input type="text" name="thema" value="<?php echo $thema?>/>
<p>
Κυρίως Κείμενο: <input type="text" name="kuriws_keimeno" value="<?php echo $kuriws_keimeno?>/>
<p>
<input type="submit" />
</form>

</body>
</html>


και τέλος η epeksergasiaan.php είναι
<html>
<body bgcolor="5E90F5">


<?php

$hostname = "localhost";
$database = "student1200partb.sql";
$username = "myuser";
$password = "mypsw";
$link = mysql_connect( $hostname , $username , $password ) or
die("Prosoxi!Provlima stin sundesi me ton server : " . mysql_error());
if (!$link)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("student1200partb.sql", $link);
mysql_query('set character set greek',$link);
mysql_query("SET NAMES 'greek'",$link);

$sql= "UPDATE anakoinwseis kuriws_keimeno)
SET (aukswn_arithmos='$_POST[aukswn_arithmos]' ,imerominia='$_POST[imerominia]',thema='$_POST[thema]' ,kuriws_keimeno='$_POST[kuriws_keimeno]'
WHERE aukswn_arithmos='$_GET[id]')";


if (!mysql_query($sql,$link))
{
die('Error: ' . mysql_error());
}

echo "<h2/><b/>Τα στοιχεία που επιλέξατε τροποποιήθηκαν με επιτυχία!!!</b/></h2/>";
mysql_close($link);

?>

</body>

</html>


έτσι όμως όπως τα έχω πατώντας την epeksergasiaan.html μέσα στο κάθε κουτάκι για να γράψω τα δεδομένα μου εμφανίζεται το <?php echo $aukswn_arithmos?> και αντίστοιχα στα άλλα αντί να είναι κενό.
Μετά μου λέει ότι δεν αναγνωρίζει το id στην epeksergasiaan.php.

Και μια ερώτηση το
if($_POST[submit]) {

....query update eggrafh...

}
πού θα το βάλω,σε ποιά σελίδα...

Συγνώμη που ενοχλώ συνέχεια αλλά τώρα μαθαίνω php και παιδεύομαι αρκετά....
Ευχαριστώ!!!!

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Διαγραφή από πίνακα βάης σεδομένων

Δημοσίευση από fafos » 08 Φεβ 2009 21:22

Emeis na deis pos mperdeuthkame tora!! :D

Katarxas na xrhsimopoieis to Code.../Code gia na vazeis mesa ton kodika dioti stravothika..


to epeksergasiaan.html den mporei na typosei PHP giati einai html!!

olon ton kodika tha ton exeis mesa sto epeksergasiaan.php..

epano tha exeis ta queries kai apo kato thn html me thn forma..

ton auksonta arithmo den mporeis na ton epeksergazese giati enoeitai oti einai monadikos gia thn eggrafh.. opote vgalton apo thn forma kai to update query..

to if to vazeis sto query tou update:

Κώδικας: Επιλογή όλων


if&#40;$_POST&#91;submit&#93;&#41; &#123;
$sql= "UPDATE anakoinwseis kuriws_keimeno&#41;
SET &#40;thema='$_POST&#91;thema&#93;' ,kuriws_keimeno='$_POST&#91;kuriws_keimeno&#93;'
WHERE aukswn_arithmos='$_GET&#91;id&#93;'&#41;"; 

&#125;

to koumpi tou submit prepei na einai etsi:

Κώδικας: Επιλογή όλων

<input type="submit" name="submit" value="submit" /> 
den nomizo oti xreiazete na epeksergazese kai thn imerominia... vgale kai authn apo thn forma kai to update query..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Διαγραφή από πίνακα βάης σεδομένων

Δημοσίευση από Apostolis_38 » 09 Φεβ 2009 10:57

fafos έγραψε:epano tha exeis ta queries kai apo kato thn html me thn forma..
Παιδιά, συγνώμη για το άσχετο αλλά αυτό γιατί γίνεται;
Το έχω δει σε πολλά script αλλά εγώ εμφανίζω την html όπου είναι να εμφανιστεί σύμφωνα με την ροή του κώδικα. Δηλαδή καμμία φορά πάει και πάνω απο τα queries.
Είναι λάθος;

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες