Cronjob.php neemt geen zelf gemaakte catogerieën mee

Status
Niet open voor verdere reacties.
Ik heb de " Foutafhandeling - Query - SQL " gelezen maar dat is mij (denk ik) iets te moeilijk zoveel verstand heb ik niet van PHP.
Welke query moet ik hebben cronjob.php of parser.php in beide komt query voor. Is er misschien iemand die dat voor mij wil/kan doen?
 
Is basiskennis opdoen van PHP niet een optie?
 
Dat is zeker een goede optie en mijn bedoeling om te gaan doen, maar eer dat ik zover ben dat ik dit begrijp en mijn probleem kan oplossen ben ik wel een tijdje verder denk ik.
Tot nu toe alles wat ik niet snapte of iets wat niet werkte of wat ik wilde veranderen kunnen doen. Maar hier kom ik echt niet uit
 
Je kan ook de queries vervangen door er or die(mysql_error());
achter te gooien:

Dus:
Code:
mysql_query(".............") or die(mysql_error());

Het is alleen wel de foutste manier van afhandelen ever, maar het werkt als het eventjes moet.
 
Ok, ik gaat het van het weekend uitproberen. Als er een error is waar krijg ik dat te zien?
En wat is het beste, per query testen of het achter alle queries in de cronjob.php zetten
 
Je kan het per query proberen, geef dan wel even aan welke query het is:

Code:
mysql_query(".............") or die("Error op lijn 12: ".mysql_error());
etc...
 
Ik ben er vandaag weer een paar uurtjes mee bezig geweest met het opzoeken waar de fout zou moeten zitten maar kom niet echt veel verder.
Als eerste heb ik or die(mysql_error()); achter mysql_query gezet en kreeg hier de fout melding PHP Parse error: syntax error, unexpected 'or' (T_LOGICAL_OR) in /home/****/domains/fwdb.nl/public_html/controller/cronjob.php on line 16

Ook heb ik van https://www.phphulp.nl/php/tutorial/...uery--sql/735/ de uitleg gelezen en de regels 5 t/m 22 van voorbeeld 2 toegevoegd zoals beschreven
hier kreeg ik de foutmelding
** PHP Notice: Use of undefined constant cronos - assumed 'cronos' in /home/debruin2/domains/fwdb.nl/public_html/controller/cronjob.php on line 29 **
** PHP Notice: Use of undefined constant cronjobtime - assumed 'cronjobtime' in /home/debruin2/domains/fwdb.nl/public_html/controller/cronjob.php on line 30 **

Heb ik/jullie iets aan deze gegevens?
Graag hoor ik van jullie
 
Laatst bewerkt:
Dan heb je de code verkeerd toegevoegd als je een 'Parse Error' krijgt. Ook over de notices is niks te zeggen zonder een glazen bol.
 
De code die ik aan cronjob.php had toegevoegd die "Parse Error" gaf was deze or die(mysql_error());
Cronjob.php zag er dan als onderstaand uit. (3 andere mysql_query die er ook onderstonden heb ik verwijderd)
____________________________________________________________________________________________________________________

<?php
include 'config.php';
include 'function.php';

$q = mysql_query("SELECT * FROM feed WHERE cronjobtime!=0 AND cronjobtime>3599");
while($result = mysql_fetch_array($q))
{
$stt = strtotime($result[cronos]);
$total = $stt + $result[cronjobtime];

if($total < time())
{
//remove all items out content from $result['id'] feed table
mysql_query("delete from brand_color where name in (select distinct(brand) from content where feed_id='".$result['id']."')"); or die(mysql_error());


//reload items from feed
mysql_query("UPDATE `feed` SET `cronos` = NOW() WHERE `id` ='".$result['id']."';");
header("Location: parser.php?proc=yes&id=$result[id]&val=rel&name=gavetas&content=undefined");
}
}

?>
_________________________________________________________________________________________________________________________________

Wat heb ik hier fout gedaan ? dat ik deze melding kreeg.

Graag hoor ik van jullie
 
Waar is je foutafhandeling op al je querys? Verder zorgt een ; voor een einde van een regel, en dat is neit wat je wilt met die or die.
Check mijn voorbeeld nog maar eens opnieuw.
 
Ok ik ga je voorbeeld weer eens opnieuw bestuderen en uitproberen.
Je hoort van me. Alvast bedankt.
 
Ik heb mijn cronjob.php aangepast zoals beschreven in het voorbeeld (ik hoop dat ik het goed heb gedaan).

De foutmelding die ik nu krijg is:
PHP Parse error: syntax error, unexpected end of file in /home/*****/domains/fwdb.nl/public_html/controller/cronjob.php on line 92

De cronjob.php ziet er nu als volgend uit.

<?php

ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);

# sql debug
define('DEBUG_MODE',true); // true == aan, false == uit

# functie voor sql debug
function showSQLError($sql,$error,$text='Error')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}


include 'config.php';
include 'function.php';

$q = mysql_query("SELECT * FROM feed WHERE cronjobtime!=0 AND cronjobtime>3599");
while($result = mysql_fetch_array($q))
{
$stt = strtotime($result[cronos]);
$total = $stt + $result[cronjobtime];

if($total < time())
{


# zet dit waar je query moet

# de query | bij input: let op sql-injectie -> mysql_real_escape_string()
$sql_get_brand = "SELECT distinct(brand)
FROM content
WHERE id='".$result($_GET['id'])."'
";

$sql_get_color = "SELECT distinct(color)
FROM content
WHERE id='".$result($_GET['id'])."'
";


$sql_get_content = "SELECT content
FROM content
WHERE id='".$result($_GET['id'])."'
";

$sql_get_term = "SELECT distinct(cat)
FROM term
WHERE id='".$result($_GET['id'])."'
";




# Check of query is gelukt
if (($result_get_user = mysql_query($sql_get_user)) === false)
{
# als de query fout is -> foutafhandeling
echo showSQLError($sql_get_user,mysql_error(),'Fout met het ophalen van de gebruiker.');
}
elseif (mysql_num_rows($result_get_user) == 0)
{
# De query is gelukt en we hebben net gekeken met _num_rows of er een rij is:

# -> Als er geen rij is echoën we hier:
echo 'Er is geen lid met dit id!';
}
else
{
# Hier is er wel een rij dus ->

#we kunnen onze naam uit de database halen d.m.v. mysql_fetch_assoc
$row_user = mysql_fetch_assoc($result_get_user);
echo $row_user['naam'];


}

//reload items from feed
mysql_query("UPDATE `feed` SET `cronos` = NOW() WHERE `id` ='".$result['id']."';");
header("Location: parser.php?proc=yes&id=$result[id]&val=rel&name=gavetas&content=undefined");
}

?> Dit is regel 92 waar de fout zou moeten zitten? Maar als ik in een ander .php kijk sluiten ze allemaal hetzelfde

wat zou dit kunnen zijn of hoe kan ik deze foutmelding verhelpen.
 
Je mist ergens een accolade. Tel ze eens goed na, want wat begin moet ook weer gesloten worden.
Verde rklopt er geen hol van je code, waarom opeens controles met: echo 'Er is geen lid met dit id!'?

Lezen we tegenwoordig geen tutorials meer, maar gaan we gewoon alles code maar copy-pasten op goed geluk?
Daar lijkt het op?

Mijn advies:

Reverse de code zoals het was, begin dus bij het begin.
Lees de tutorial aandachtig door
Probeer te begrijpen wat ze doen
Pas het aan....
 
Laatst bewerkt:
Ik heb de tutorial doorgelezen, maar om eerlijk te zijn begrijp ik er weinig van en wat ik er van begrijp heb ik proberen te veranderen.
Met " lid en id " dacht ik dat het id uit deze regel bedoeld werd WHERE id='".$result($_GET['id'])."' zodoende had ik dit laten staan

Ik zal het morgen nog eens goed doorlezen.
 
Ik zou het niet één op één overnemen, maar gewoon aandachtig doorlezen.
 
Ben inmiddels 2 avonden verder en kreeg het nog niet echt werkend. Ben nu helemaal opnieuw begonnen met de cronjob.php en heb nu eerst alleen de twee eerste toegevoegd te weten:
* 1.1 Algemene php-error reporting:
* 1.2 Onze sql-debug functie:

En ik krijg hierbij nu wel een foutmelding.

PHP Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/debr/domains/fwdb.nl/public_html/controller/config.php on line 46

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/debr/domains/fwdb.nl/public_html/controller/config.php on line 46



Alleen die foutmelding zegt mij niets wat moet ik hier doen?

Cronjob zoals hij nu is

if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}




include 'config.php';
include 'function.php';

$q = mysql_query("SELECT * FROM feed WHERE cronjobtime!=0 AND cronjobtime>3599");
while($result = mysql_fetch_array($q))
{
$stt = strtotime($result[cronos]);
$total = $stt + $result[cronjobtime];

if($total < time())
{
//remove all items out content from $result['id'] feed table
mysql_query("delete from brand_color where name in (select distinct(brand) from content where feed_id='".$result['id']."')");
mysql_query("delete from brand_color where name in (select distinct(color) from content where feed_id='".$result['id']."')");
mysql_query("delete from content where feed_id='".$result['id']."'");
mysql_query("delete from term where term_id NOT in (select distinct(cat) from content) AND term_id NOT IN (select distinct(subcat) from content) AND term_id NOT IN (select distinct(subsubcat) from content)");

//reload items from feed
mysql_query("UPDATE `feed` SET `cronos` = NOW() WHERE `id` ='".$result['id']."';");
header("Location: parser.php?proc=yes&id=$result[id]&val=rel&name=gavetas&content=undefined");
}
}

?>

Het in rood aangeven zou dus een foute mysql_query zijn ( regel 46)

Mijn volgende vraag is: moet nu eerst deze fout verholpen worden voordat ik verder ga met het toevoegen uit de tutorial
 
Laatst bewerkt:
Stap over op de MYSQLi-functies binnen PHP.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan