[PHP] Functie loopt vast

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Thomas de Roo

Thomas de Roo

29/09/2010 17:25:42
Quote Anchor link
Oke mensen, ik ben bezig met een eigen forumsysteem en vandaag was ik bezig met het schrijven van een functies die wegschrijft wie het topic of de reactie in het topic heeft gelezen...

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)
PHP script in nieuw venster Selecteer het PHP script
1
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();
}
}

?>


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?
 
PHP hulp

PHP hulp

22/12/2024 06:46:22
 

29/09/2010 17:30:19
Quote Anchor link
- Selecteer wat je wilt hebben, gebruik niet *.
- Vairabelen buiten quotes.
- Foutafhandeling ontbreekt.
- Spring juist in.
- Gebruik mysql_fetch_assoc, geen object, is onzin.
- Serialize in db?
- Check je logica.
 
Pieter van Linschoten

Pieter van Linschoten

29/09/2010 17:49:58
Quote Anchor link
Dit mag dus niet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
while($row1 = mysql_fetch_object(mysql_query($query_1))){
?>


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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
$query
= mysql_query($query_1);
while($row1 = mysql_fetch_object($query)){

}

?>
Gewijzigd op 29/09/2010 17:51:15 door Pieter van Linschoten
 
Thomas de Roo

Thomas de Roo

29/09/2010 17:59:18
Quote Anchor link
Pieter, bedankt. :)
Zo werkt het, Karl Karl ik zal mijn functie aan jouw eissen verbeteren
Hoofdzaak is dat het nu werkt :)
 

29/09/2010 18:22:36
Quote Anchor link
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 :)


Hoofdzaak is dat het correct werkt, dan heb je geen fouten.
 
Thomas de Roo

Thomas de Roo

29/09/2010 19:03:59
Quote Anchor link
Inmiddels is het veranderd en werkt het naar behoren, danku :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.