[PHP] Functie loopt vast
de hierbij betrokken velden uit de database zijn
type - t of r (topic of reaction)
id - topic of reaction id
topic_index - als het een reactie is een id van het topic waarin het staat
vieuws - aantal keer bekeken
read_by - gelezen door, een serialized array
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
function addView($id) {
$q = "SELECT * FROM par_content WHERE id = $id";
$row = mysql_fetch_row(mysql_query($q));
$am = $row[13];
$query_1 = "SELECT * FROM par_content WHERE type = 't' AND id = $id OR type = 'r' AND topic_index = $id";
if(isset($_COOKIE['user_id']))
{
while($row1 = mysql_fetch_object(mysql_query($query_1)))
{
$readby = unserialize($row1->read_by);
$readby[] = $_COOKIE['user_id'];
$readby_new = serialize($readby);
$q = "UPDATE par_content SET read_by = '".$readby_new."' WHERE type = 't' AND id = $id OR type = 'r' AND topic_index = $id";
$res = mysql_query($q);
}
$am = $am + 1;
$q = "UPDATE par_content SET views = $am WHERE id = $id ";
$res = mysql_query($q);
echo mysql_error();
}
}
?>
function addView($id) {
$q = "SELECT * FROM par_content WHERE id = $id";
$row = mysql_fetch_row(mysql_query($q));
$am = $row[13];
$query_1 = "SELECT * FROM par_content WHERE type = 't' AND id = $id OR type = 'r' AND topic_index = $id";
if(isset($_COOKIE['user_id']))
{
while($row1 = mysql_fetch_object(mysql_query($query_1)))
{
$readby = unserialize($row1->read_by);
$readby[] = $_COOKIE['user_id'];
$readby_new = serialize($readby);
$q = "UPDATE par_content SET read_by = '".$readby_new."' WHERE type = 't' AND id = $id OR type = 'r' AND topic_index = $id";
$res = mysql_query($q);
}
$am = $am + 1;
$q = "UPDATE par_content SET views = $am WHERE id = $id ";
$res = mysql_query($q);
echo mysql_error();
}
}
?>
de fout is: Fatal error: Maximum execution time of 60 seconds exceeded in C:\wamp\www\include\functions.php on line 745
Wat gaat hier mis?
- Vairabelen buiten quotes.
- Foutafhandeling ontbreekt.
- Spring juist in.
- Gebruik mysql_fetch_assoc, geen object, is onzin.
- Serialize in db?
- Check je logica.
Met mysql_query() open je een nieuwe mysql_resource, waarbij PHP bijhoud, op welke rij je bent. Wat je nu doet, is elke keer een nieuwe resource openen, die de vorige overschrijft, startend bij rij 0.
Zo doe je het:
Gewijzigd op 29/09/2010 17:51:15 door Pieter van Linschoten
Zo werkt het, Karl Karl ik zal mijn functie aan jouw eissen verbeteren
Hoofdzaak is dat het nu werkt :)
Thomas de Roo op 29/09/2010 17:59:18:
Pieter, bedankt. :)
Zo werkt het, Karl Karl ik zal mijn functie aan jouw eissen verbeteren
Hoofdzaak is dat het nu werkt :)
Zo werkt het, Karl Karl ik zal mijn functie aan jouw eissen verbeteren
Hoofdzaak is dat het nu werkt :)
Hoofdzaak is dat het correct werkt, dan heb je geen fouten.
Inmiddels is het veranderd en werkt het naar behoren, danku :)