Toon posts:

[MySql] UPDATE eigenaardigheid

Pagina: 1
Acties:

Verwijderd

Topicstarter
Na al uren zoek en debug werk wil ik jullie toch het volgende eigenaardigheid delen:

Dit is wat ik doe:
- eerst iets uit de database halen mbv SELECT
- die waarde afprinten, omvormen en terug wegschrijven naar de database mbv een UPDATE query
- ter controle terug uit de database halen mbv SELECT en dit in een for-loop om het effect te demonstreren

code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$Query1->fnRunQuery
("
    SELECT dbPhotoGroupContent FROM dbPhotoGroup WHERE dbPhotoGroupRegisteredId='$dbRegisteredId' AND dbPhotoGroupId='$pGroupId'
");

if ( $Query1->fnGetResults() )
{
    $dbPhotoGroupContent    = $Query1->Result["dbPhotoGroupContent"];
    $Query1->fnFreeResults();
} 
echo "<br>gelezen1+++++$dbPhotoGroupContent<br>";


  //omvorm code voor $dbPhotoGroupContent volgt hier
  //komt er op neer dat er twee getallen van plaats verwisseld worden

$Query1->fnRunQuery
("
    UPDATE dbPhotoGroup SET dbPhotoGroupContent=\"$newPhoto\"
");
echo "<br>geschreven----$newPhoto<br>";

for ( $i=2;$i<50;$i++)
{
$Query1->fnRunQuery
("
    SELECT dbPhotoGroupContent FROM dbPhotoGroup WHERE dbPhotoGroupRegisteredId='$dbRegisteredId' AND dbPhotoGroupId='$pGroupId'
");

$Query1->fnGetResults();
$dbPhotoGroupContent    = $Query1->Result["dbPhotoGroupContent"];
    $Query1->fnFreeResults();

echo "gelezen".$i."+++++$dbPhotoGroupContent<br>";
}


Dit is de output van het script:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
gelezen1+++++37+36+35+38+42+34+40+41++
Array ( [0] => 37 [1] => 36 [2] => 35 [3] => 38 [4] => 42 [5] => 34 [6] => 40 [7] => 41 [8] => [9] => ) Array ( [0] => 37 [1] => 35 [2] => 36 [3] => 38 [4] => 42 [5] => 34 [6] => 40 [7] => 41 [8] => [9] => ) 
geschreven----37+35+36+38+42+34+40+41++
gelezen2+++++37+35+36+38+42+34+40+41++
gelezen3+++++37+35+36+38+42+34+40+41++
gelezen4+++++37+35+36+38+42+34+40+41++
gelezen5+++++37+35+36+38+42+34+40+41++
gelezen6+++++37+35+36+38+42+34+40+41++
gelezen7+++++37+35+36+38+42+34+40+41++
gelezen8+++++37+36+35+38+42+34+40+41++
gelezen9+++++37+36+35+38+42+34+40+41++
gelezen10+++++37+36+35+38+42+34+40+41++
gelezen11+++++37+36+35+38+42+34+40+41++
gelezen12+++++37+36+35+38+42+34+40+41++
gelezen13+++++37+36+35+38+42+34+40+41++
gelezen14+++++37+36+35+38+42+34+40+41++
...


Zoals je ziet wordt in de 8ste uitlezing opnieuw de originele waarde uit de database gelezen. In dit geval bij de 8ste uitlezing. Meestal veel later. Punt is dat die UPDATE na verloop te niet wordt gedaan. En nog eigenaardiger is dat dit alleen voorkomt met Internet Explorer. Met Firefox heb ik dit probleem helemaal niet!!!! Ik code al verschillende jaren achtereen PHP/MySql maar dit heb ik nog nooit gezien. Misschien zie ik iets over het hoofd?

Begrijpen wie gegrijpen kan.
FraG

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Je update mist een WHERE. Is dat wel wat je wil? Verder heb ik totaal geen idee wat je wil en wat het moet doen... Wat stond er al in je tabel?

Ik waag het trouwens mijn twijfels te zetten bij je datamodel. Waarom al die getallen gescheiden door een +? :?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Die WHERE heb ik uit puur debug miserie weg gehaald omdat ik wou uitsluiten dat het het enkel om 1 rij ging of zo.

De opzet is niet zo van belang. Wel het fenomeen. De bedoeling is uitgelegd in het begin: namelijk iets uitlezen uit database, veranderen en terug wegschrijven.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Dat kan wel zijn, maar je laat het meest belangrijke weg: het deel waar $newPhoto gevuld wordt. Je SQL klot gewoon, en je zal je probleem dus zeer vermoedelijk moeten zoeken in je PHP code.

Ervanuitgaande dat de klasse die je gebruikt om je queries uit te voeren überhaupt werkt natuurlijk.

[ Voor 22% gewijzigd door NMe op 10-04-2005 16:24 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.