Update tbl Set CountField = CountField + 1

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

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

Απάντηση
Άβαταρ μέλους
nikirtsi
Δημοσιεύσεις: 169
Εγγραφή: 02 Ιουν 2006 16:35

Update tbl Set CountField = CountField + 1

Δημοσίευση από nikirtsi » 11 Ιούλ 2006 18:06

Έστω Ένας Πίνακας Έν ' Ονόματι tbl Μέ Κάποιο Πεδίον Έν Ονόματι CountField.
Έστω Καί Ο Κάτωθι Κώδικας :
$sql = "UPDATE tbl SET CountField = CountField + 1";
mysql_query($sql,$dbh) or die ( mysql_error() );

Άν Θεωρήθεί Πώς Τό Πεδίο tbl.CountField Ενημερώνεται Μόνον Από Τήν Σελίδα
Όπου Φιλοξενεί Τόν Άνωθι Κώδικα Τότε Κατανοείται Πώς Θά Έχει Μίαν Σειριακήν
Αρίθμηση.

Τό Πρόβλημα Είναι Πώς Δέν Υσχύει Τό Εξής Αλλά Παρουσιάζεται Μία Μή
Μαθηματικώς Συνεπαγώμενη Λογική Τροποποιήσεως Τού Πεδίου.

Η Συμπεριφορά Αυτών Μετά Από n Εκτελέσεις Τού Κώδικος Είναι Έν παραδείγματι
CountField <- 1 , 2 , 3 , 5 , 7 , 8 , 9 , 11 , 12 , 14 ...


Τά Φώτα Σάς......
Ακόμα και ο ήλιος, στό αριστερό μελίγγι μου ανατέλλει καί στό ζερβό δύει.

Άβαταρ μέλους
EneMe
Super Moderator
Δημοσιεύσεις: 13307
Εγγραφή: 09 Ιούλ 2002 13:29
Τοποθεσία: Στο κέντρο της Ελλάδας!
Επικοινωνία:

Update tbl Set CountField = CountField + 1

Δημοσίευση από EneMe » 11 Ιούλ 2006 18:47

Γιατί γράφεις κάθε λέξη με κεφαλαίο και βάζεις τόνο εκεί που δεν χρειάζεται κι εκεί που δεν πρέπει;
Αφού ξέρεις ορθογραφία, γράψε σωστά για να είναι κι ευανάγνωστα... ;)

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

Update tbl Set CountField = CountField + 1

Δημοσίευση από fafos » 11 Ιούλ 2006 23:52

Leipei Ena Where:

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

UPDATE tbl SET CountField = CountField + 1 WHERE id='$id'
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
nikirtsi
Δημοσιεύσεις: 169
Εγγραφή: 02 Ιουν 2006 16:35

Update tbl Set CountField = CountField + 1

Δημοσίευση από nikirtsi » 13 Ιούλ 2006 11:59

Βάζω Καί Τό WHERE Φίλε Μού..
Αλλά Δέν Ευθύνετε Τούτον...
Δέν Είναι Πολύ Παράξενο....?
Ενασχολούμε Μέ Πληθώρα Συστημάτων Διοίκησις Βάσεων Δεδομένων..
Πρώτη Φορά Μού Συμβαίνει Αυτό...
Ακόμα και ο ήλιος, στό αριστερό μελίγγι μου ανατέλλει καί στό ζερβό δύει.

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Update tbl Set CountField = CountField + 1

Δημοσίευση από Rapid-eraser » 13 Ιούλ 2006 16:52

lipov poloi logoi mporei va sou dimiourgouv to problima afto... kai o protos favtazomai eivai o tropos pou grafeis...

Prosoxi sto case ... sta windows mporei va miv exei simasia alla sto linux exei megali diafora to CountFiled apo to Countfiled kai to countfiled .

episis dokimase va oriseis to pedio pou 8es va kaveis tnv afksis os pivaka kai field opos to orizei me to notation n mysql

Afto simevei pos 8a eprepe va exeis grapsei to query

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

UPDATE `tbl` SET `CountField` = `CountField` + 1
Xoris to where clause eprepe va sou kavei afksis se ka8e row tou pivaka so afto dev to 8eoroume sav sivtaktiko la8os (malov logiko la8os :P alla dev eivai edw to problima pavtos).

afta ta dio gia arxi.


PS: Epidi fevete pos to topic dev exei sxesi me tnv php to metafero stnv sosti katigoria.
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

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

Update tbl Set CountField = CountField + 1

Δημοσίευση από dva_dev » 13 Ιούλ 2006 22:54

Για να πάρεις τα αποτελέσματα που αναφέρεις, έτρεχες μόνο εσύ τη σελίδα από έναν browser ή και κάποιος άλλος ταυτόχρονα με σένα (τουλάχιστον από το 12 -> 14 οπότε δεν είδες την αύξηση στο 13);

Άβαταρ μέλους
nikirtsi
Δημοσιεύσεις: 169
Εγγραφή: 02 Ιουν 2006 16:35

Update tbl Set CountField = CountField + 1

Δημοσίευση από nikirtsi » 14 Ιούλ 2006 18:52

Αποδεκτόν Περί WHERE , Αλλά Τούτον Έχει Νά Κάνει Αποκλειστικά Μέ Τό
Πλήθος Τών Πρός Ενημέρωσιν Εγγραφών Καί Όχι Μέ Τήν Διακριτή Ενημέρωση Αυτών.
Όσον Αναφορά Τήν Ευαισθισία Τής Κεφαλαιογραφής(Case Sensitive)
Τών Unix-Like Λειτουργικών Συστημάτων Είμαι Γνώστης.
Περί Τής Τυποθεωρήσεως Τού Συντακτικού Τού Ερωτήματος (SQL) (Έν '')
Συμπληρώνω Πώς Η Mysql Θεωρεί Απαραίτητη Τήν Ενσωμάτωσι Αυτών Μόνο
Σέ Μεταβλητές Παραμέτρους Πεδίων Πού Εκφράζονται Ώς Αλφαριθμητικές
Και ΟΧΙ Ώς Δηλωτικές Όπως Τό Όνομα Τού Πίνακος ή΄Τών Υπό Χρήσιν Πεδίων
Καί Τά Τί Αύτα....

Επί Συμπληρώσεως Τών Αναφερομένων O Web Server Φιλοξενείτο Σέ Linux.

Επροκειτό Πιθανοτάτως Γιά Απροσδόκιτο Σφάλμα Τό Οποίον Προέρχεται Από Τήν Έκδοσιν
Τής Mysql ή Τής Περί Τεχνολογίας Προσβάσεως Εις Αυτήν Κατά Τήν Τροποποίησιν Μία Εγγραφής.

Παράκαλω Όχι Συμβούλες Επί Τού Θέματος...
Άν Έχει Συμβεί Τό Άνωθι Καί Σέ Κάποιον Σύν-Μέλος Νά Ανάφέρει Τό Λύμμα Τού Προβλήματος Άν Τό Επιθυμεί....
Ακόμα και ο ήλιος, στό αριστερό μελίγγι μου ανατέλλει καί στό ζερβό δύει.

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Update tbl Set CountField = CountField + 1

Δημοσίευση από Rapid-eraser » 14 Ιούλ 2006 19:15

sigvomi giati tovizeis kai tis movosilabes lekseis ? :P
eivai kai afto meros tou Show-off e? xexe

Dev vomizo oti prokete gia sfalma tis mysql to poio pi8avo eivai va ekteleis gia kapoio logo dio fores to idio query . opos protive o dva_dev to opoio pi8avo eivai
va perveis afto to apotelesma logo polaplou hit sto idio page.

Afto pou mporeis va kaveis eivai eva poli mikro debug.

Kave eva select priv to update kai pare tnv timi.
Kavti eva echo va tnv deis .
Stnv stnv sivexeia kave to update stnv timi pou 8es.
Kai ksavapare eva select apo to row.
Tipose pali tiv timi.

Kavto afto arketes fores kai apo ekei pare apotelesmata.

To notation tis mysql dev eivai aparetito idios osov afora tnv xrisi tou backquote, livei omos pola problimata opos to eksis

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

SELECT `FROM` FROM `SELECT` WHERE `WHERE` = 1
Kati tetoio 8a ntav adivato va ektelestei xoris backquotes giati iparxouv reserved words, opos eides omos ta backquotes prolabave eva problima.
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Άβαταρ μέλους
shadow
Script Master
Δημοσιεύσεις: 606
Εγγραφή: 14 Απρ 2005 18:30

Update tbl Set CountField = CountField + 1

Δημοσίευση από shadow » 14 Ιούλ 2006 20:39

nikirtsi έγραψε:
Επροκειτό Πιθανοτάτως Γιά Απροσδόκιτο Σφάλμα Τό Οποίον Προέρχεται Από Τήν Έκδοσιν
Τής Mysql ή Τής Περί Τεχνολογίας Προσβάσεως Εις Αυτήν Κατά Τήν Τροποποίησιν Μία Εγγραφής.
Εφοσον θεωρείς ότι επρόκειτο για κάποιο σφαλμα της mysql, νομίζω ότι εδώ ειναι ο καταλληλότερος χώρος για να το αναφερεις.
Πριν ομως καταλήξεις στο πόρισμα ότι προκειται για bug και εφόσον θες να εχεις consistency στο update που κανεις φρόντισε να βαλεις κανα lock, ωστε να ξερεις οτι η τιμη που διαβαζουν οι χρηστες και βασιζονται σε αυτη για να κανουν write ειναι η σωστή. By the way, πριν πεις οτι ενα προγραμμα εχει bug πρεπει πρωτα να εισαι σίγουρος οτι ο κωδικας που γραφεις ειναι σωστος :evil:
Close your eyes
For your eyes will only tell the truth and the truth isnt what you want to see
In the dark, is it easy to pretend that the truth is it ought to be.
Programmers are programmers because they like to code

Άβαταρ μέλους
nikirtsi
Δημοσιεύσεις: 169
Εγγραφή: 02 Ιουν 2006 16:35

Update tbl Set CountField = CountField + 1

Δημοσίευση από nikirtsi » 18 Ιούλ 2006 13:10

EneMe , Rapid Eraser
Ότι Τονίζετε Στόν Προφορικόν Λόγο Τονίζετέ Καί Εις Τόν Γραπτόν.
Έκ Τών Περί Γλώσσις, Αυτήν Μού Μάθανε Νά Ομιλώ Οί Δάσκαλοί Μου
Καί Σεβούμενος Αυτών Επί Αυτής Ομιλώ.
Δείτε αυτό http://www.astron.gr/comp_lang_gr.htm

dva_dev
Δέν Τίθετο Πρόβλημα Ταυτοχρονισμού Σέ Κρισίμως Περιοχή.

shadow
Τά Κόκκινα Μάτια Σού Πάνε...
Υπό Τόν Λεγομένων Σού
[πριν πεις οτι ενα προγραμμα εχει bug πρεπει πρωτα να εισαι σίγουρος
οτι ο κωδικας που γραφεις ειναι σωστος ]
Απαντώ
[Επροκειτό '''Πιθανοτάτως''' Γιά Απροσδόκιτο Σφάλμα Τό Οποίον Προέρχεται Από Τήν Έκδοσιν
Τής Mysql ή Τής Περί Τεχνολογίας Προσβάσεως Εις Αυτήν Κατά Τήν Τροποποίησιν Μία Εγγραφής. ]

Δέν Επρόκειτο Γιά Ένα (Result Set) Αλλά Γιά Ένα Command.
Ακόμα και ο ήλιος, στό αριστερό μελίγγι μου ανατέλλει καί στό ζερβό δύει.

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

Update tbl Set CountField = CountField + 1

Δημοσίευση από dva_dev » 18 Ιούλ 2006 13:18

Υπάρχει κάποια διαδικασία ώστε να αναπαραχθεί αυτό το πρόβλημα;

Άβαταρ μέλους
nikirtsi
Δημοσιεύσεις: 169
Εγγραφή: 02 Ιουν 2006 16:35

Update tbl Set CountField = CountField + 1

Δημοσίευση από nikirtsi » 19 Ιούλ 2006 19:07

<?php include ("Connection_Script.php"); ?>
<?php include ("CssBody.php"); ?>
<html>
<head>
<title>Αριστοτέλης</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1253">

<script type=text/javascript>
function Certificate()
{//Crtificate(void)
R_Fv = confirm ("Εαν προτίθεσθε νά επαναδιατυπώσετε τήν ερώτησι ή νά τήν διορθώσετε , τότε προτείνεται νά αντιγράψετε τόν τίτλο και τό περιεχόμενο τής ερωτήσεως προσωρινώς σέ κάποιον κειμενογράφο (π.χ σημειωματάριο, Word...) Θέλετε νά συνεχίσετε?")
return R_Fv
}
</script>
</head>
<body>

<?php
//CERTIFICATED USER//
//create and issue the query
$sql = "SELECT IdUsers,CntTmStamp as MDI,AttachSize,TOU FROM Users
WHERE CntTmStamp = '$_GET[G_MDI]' ";
$result = mysql_query($sql, $dbh) or die(mysql_error());

//get the number of rows in the result set; should be 1 if a match
if (mysql_num_rows($result) == 1) {
//if authorized, get the values of fname lname
$Db_IdUsers = mysql_result($result, 0, 'IdUsers');
$Db_MDI = mysql_result($result, 0, 'MDI');
$Db_ASize = mysql_result($result, 0, 'AttachSize');
$Db_TOU = mysql_result($result, 0, 'TOU');
}//if

else
{//else
die ("<B>Προκλήθηκε ανεπανόρθωτο σφάλμα...</B><HR>
Παρακαλώ πληκλτρολογήστε ξανά τά προσωπικά σας στοιχεία.
(Αναγνωριστικό / Πιστοποιητικό)");
}//else
?>


<?php
if ($_GET['G_Questno'] == "")
{//UnInserted Quest_Code
echo "<hr>";
echo "<h2>Απόρριψις αιτήματος</h2><br>";
echo "<hr>";
echo "Δέν αναφέρατε τόν κωδικό τής ερώτησεως πού θέλετε νά προβάλλετε...<br>";
exit();
}//UnInserted Quest_Code


//Authorize Permit
$sql = "SELECT 1 FROM Questions WHERE IdUser = $Db_IdUsers AND IdQuestions = ".$_GET['G_Questno'];
$result = mysql_query ($sql,$dbh) or die( mysql_error() );

if (mysql_num_rows($result) == 0)
{//if Questions Is Not Owned In Run User
$sql = "SELECT 1 FROM Questions,Users_Categories
WHERE Questions.IdCategory = Users_Categories.IdCategory
AND Questions.IdQuestions = ".$_GET['G_Questno']."
AND Users_Categories.Status_Of_Issue <> 'Expired' ";
$result = mysql_query ($sql,$dbh) or die (mysql_error() );


if (mysql_num_rows($result) == 0)
{//Unauthorized Access
echo "<hr>";
echo "<h2>Απόρριψις αιτήματος</h2><br>";
echo "<hr>";

echo "Είτε δέν έχετε πρόσβασι στήν κατηγορία , είτε έληξε τό συμβόλαιό σας <br>
είτε προσπαθείτε νά παραβιάσετε τήν ασφάλεια τού συστήματος.<br>";
echo "Η διαδικασία διεκόπη...<br>";
exit();
}//Unauthorized Access
}//if Questions Is Not Owned In Run User



//Read From Table Questions
$sql= "SELECT Title,Questions.IdCategory,Questions.Description, DATE_FORMAT(InsDate,'%d/%m/%Y') AS Ins_Date,
Categories.Description As DescCat, IdUser,AnsCount,TIME_FORMAT(InsTime , '%H:%i') AS Ins_Time , Priority,CountRead
FROM Questions,Categories
WHERE Questions.IdCategory = Categories.IdCategories
AND IdQuestions =".$_GET['G_Questno'];

$result = mysql_query($sql, $dbh) or die(mysql_error());
$Db_IdQuestions = $_GET['G_Questno'];
$Db_Title = mysql_result($result, 0, 'Title');
$Db_Desc = mysql_result($result, 0, 'Description');
$Db_InsDate = mysql_result($result, 0, 'Ins_Date');
$Db_InsTime = mysql_result($result, 0, 'Ins_Time');
$Db_DescCat = mysql_result($result, 0, 'DescCat');
$Db_CatCode = mysql_result($result, 0, 'IdCategory');
$Db_QuestIdUser = mysql_result($result, 0, 'IdUser');
$Db_Total_Ans= mysql_result($result, 0, 'AnsCount');
$Db_CountRead = mysql_result($result, 0, 'CountRead');
$Db_Priority= mysql_result($result, 0, 'Priority');
if ($Db_Priority == "HIGH") $Db_Priority= "Υψηλή";
else if ($Db_Priority == "MEDIUM") $Db_Priority= "Μέτρια";
else if ($Db_Priority == "LOW") $Db_Priority= "Χαμηλή";


//Update CountRead//
$sql = "UPDATE Questions SET CountRead = CountRead + 1 WHERE IdQuestions = $Db_IdQuestions";
mysql_query ($sql ,$dbh) or die (mysql_error () );

?>


<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="32" bgcolor="#fefac2"><font face="Microsoft Sans Serif"><font color="#FF0000" size="3">
<IMG SRC= Aristotelis_Images/OpenFolder.jpg></IMG><strong>Προβολή ερωτήσεως</strong></font> </font></td>
</tr>
</table>



<table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#E2E2E2">
<tr>
<td width="12%" bgcolor="#97CCE6"><font face="Microsoft Sans Serif"><strong><font size="2">Κωδικός
:</font></strong></font></td>
<td width="13%" bgcolor = "#60bde0"> <?php echo $_GET['G_Questno'];?> </td>
<td width="15%" bgcolor="#97CCE6"><strong><font size="2">Ημ/νία - Ώρα :</font></strong></td>
<td width="20%" bgcolor = "#60bde0"><?php echo "$Db_InsDate - $Db_InsTime";?></td>
<td width="14%" bgcolor="#97CCE6"><strong><font size="2">Προτεραιότητα:</font></strong></td>
<td width="20%" bgcolor = "#60bde0"><?php echo "$Db_Priority";?></td>
</tr>
<tr>
<td width="12%" bgcolor="#97CCE6"><font face="Microsoft Sans Serif"><strong><font size="2">Κατηγορία
:</font></strong></font></td>
<td colspan="3" bgcolor = "#60bde0"> <?php echo $Db_DescCat;?> </td>
<td bgcolor="#97CCE6"><strong><font size="2">Συνημμένο : </font></strong></td>
<td bgcolor = "#60bde0">
<?php
if ($_GET['Uploadno'] <> "")
{//if have attach
$sql = "SELECT FRealName FROM Uploads WHERE IdUploads = ".$_GET['Uploadno'];
$result = mysql_query($sql, $dbh) or die(mysql_error());
$Db_FRealName = mysql_result($result, 0, 'FRealName');
echo "<A HREF = Down_Attach.php?G_MDI=$Db_MDI&Uploadno=".$_GET['Uploadno'].">$Db_FRealName </A>";
}//if have attach
else {echo "-";}
?>
</td>
</tr>
<tr>
<td bgcolor="#97CCE6"><font face="Microsoft Sans Serif"><strong><font size="2">Τίτλος
:</font></strong></font></td>
<td colspan="3" bgcolor = "#60bde0"><?php echo $Db_Title;?></td>
<td bgcolor = "#97CCE6"><strong><font size="2">Αναγνώσθηκε :</font></strong></td>
<td bgcolor = "#60bde0"><?php echo "$Db_CountRead φορές";?></td>
</tr>
</table>

<p>
<?php echo str_replace(chr(13),"<br>",$Db_Desc); echo "<br><hr>"; ?>


<?php
$QC = $_GET['G_Questno'];
if ( ( ($Db_TOU == "TECHNICIAN") OR ($Db_TOU == "ADMIN") ) AND ($_REQUEST['FromAns'] <> 1) )
echo "<button type=button onclick=window.location='New_Ans.php?G_MDI=$Db_MDI&Quest_Code=$QC&IdCategory=$Db_CatCode'
title='Απάντηση προβαλλόμενης ερωτήσεως'>Απάντησις</button>";
?>


<?php
if ($_REQUEST['FromAns'] <> 1)
{
if ( (($Db_IdUsers == $Db_QuestIdUser) AND ($Db_Total_Ans == 0)) OR ($Db_TOU == "ADMIN") )
{//if
echo "<FORM ACTION = 'Del_Quest.php' METHOD='POST' onsubmit='return Certificate()'>";
//'return Certificate()'>";
echo "<button type=button onclick=history.back() title='Επιστροφή'>Επιστροφή</button>";
echo " <INPUT TYPE = 'HIDDEN' NAME='G_MDI' VALUE =".$Db_MDI.">";
echo " <INPUT TYPE = 'HIDDEN' NAME = 'Questno' VALUE =".$_GET['G_Questno'].">";
echo " <INPUT TYPE = 'HIDDEN' NAME = 'IdCategory' VALUE = $Db_CatCode>";
echo "<INPUT TYPE = SUBMIT VALUE= 'Διαγραφή'> &nbsp;";
echo "<button type=button onclick=location='Update_Quest.php?G_MDI=$Db_MDI&Questno=$QC' title='Τροποποίησις'>Τροποποίησις</button>";
echo "</FORM>";
}//if
else echo "<button type=button onclick=history.back() title='Επιστροφή'>Επιστροφή</button>";
}
if ($_REQUEST['FromAns'] == 1) echo "<button type=button onclick=window.close() title='Κλείσιμο'>Κλείσιμο</button>";
?>


</body>
</html>
Ακόμα και ο ήλιος, στό αριστερό μελίγγι μου ανατέλλει καί στό ζερβό δύει.

Απάντηση

Επιστροφή στο “MySQL”

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

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