dubbele records voorkomen
(ik heb alleen een voorbeeldje nodig ik stop hem zelf wel in mijn website:P)
zou iemand mij daarmee kunnen helpen?
query uitvoeren
http://nl3.php.net/mysql_affected_rows
als het er meer zijn dan 0 staat hij er in anders
INSERT INTO table en de hele rataplan
Zoiets?
Met een SELECT-query kun je nooit de boel controleren, een SELECT zegt iets over het verleden, nooit over het heden. Je houdt jezelf hiermee voor de gek.
Gewijzigd op 01/01/1970 01:00:00 door simon
simon schreef op 05.09.2008 11:00:
Ja, daar mogen geen dubbele records in, dus zul het daar moeten aanpassen.dus ik moet eigenlijk mijn database aanpassen om het goed werkend te krijgen?
Daarnaast zul je jouw script moeten aanpassen, je weet 100% zeker dat er INSERT-queries zullen gaan mislukken. Deze foutmeldingen moet je gaan opvangen en op een fatsoenlijke wijze presenteren aan de gebruiker.
En wanneer je een serieuze applicatie bouwt, mag je bij het gebruik van MySQL gaan overwegen of je wel met deze rommel wilt blijven werken.
zou ik doen, als je gewoon een select doet met affected rows, gaat hij eerst alles ophalen
iltar van der berg schreef op 05.09.2008 11:30:
Zal ik dan even wat dubbele records in je database zetten?SELECT COUNT(1) as counted FROM table WHERE bestandsnaam = bestandsnaam
zou ik doen, als je gewoon een select doet met affected rows, gaat hij eerst alles ophalen
zou ik doen, als je gewoon een select doet met affected rows, gaat hij eerst alles ophalen
Jongens, hoevaak moet ik het nog zeggen, met een SELECT kun je geen dubbele records voorkomen. Dat is technisch niet mogelijk, dat kun je zelf ook wel bedenken.
1) Dit is in de meeste (zij het niet in alle) gevallen sneller
2) Een database is gemaakt voor het opslaan en terughalen van gegevens, laat hem toch doen waar hij goed voor is!
En inderdaad, kies een echte database als het mogelijk is ;-)
Tuurlijk kun je met PHP code een heleboel dingen ook doen, maar jullie slaan je data toch ook niet op in PHP files met serialized arrays?
hoe kan ik die errors tegengaan? want ik zit nu met het probleem dat de pagina blijft hangen als hij hem wil inserten..
kun je een stuk code posten?
Denk er trouwens aan dat een bestandsnaam niet hetzelfde is als de inhoud van het bestand. Ik kan twee verschillende bestanden met dezelfde bestandsnaam hebben. Daarom moet je even een hash (MD5 of SHA1) van het bestand (niet de naam) maken, en die controleren.
ik weet niet hoe ik het zelf op moet lossen omdat ik niet zo supergoed ben met php/mysql. maar als jullie suggesties hebben dan hoor ik het graag ;)
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
ini_set ('display_errors', 1);
error_reporting (E_ALL | E_STRICT);
set_time_limit(72000);
//de ID's van de autos in een array stoppen.
$result = file_get_contents('autos.html');
preg_match_all('/[0-9]{1,6}/', $result, $autos);
$b=5;
foreach($autos[0] as $auto=>$value){
$url = 'http://www.autoscout24.de/List.aspx?vis=1&make='.$value.'&pricefrom=1000&cy=D&page=1&maxresults=500&results=20&ustate=N&ustate=U&um=True&sort=price&dealcust=True&zipc=D';
$str = convert_page('http://www.autoscout24.de/List.aspx?vis=1&make=9&pricefrom=1000&cy=D&page=2&maxresults=500&results=80&ustate=N&ustate=U&um=True&sort=price&dealcust=True&zipc=D');
$check1 = strpos($str, 'Leider konnten keine Fahrzeuge mit diesen kriterien gefunden werden');
$check2 = strpos($str, 'Es wurden nicht genug Suchkriterien angegeben');
if ($check1 !== false){
}
elseif($check2 !== false){
}
else{
//de gegevens van de pagina extensie uit de website halen.
$regex = '/\/Details\.aspx\?id=[0-9a-zA-Z]{12}/';
preg_match_all($regex, $str, $link);
foreach($link[0] as $link=>$waarde){
$test = convert_page('http://www.autoscout24.de'.$waarde.'');
preg_match_all('/CustomerArticles\.aspx\?cid=[0-9a-zA-Z]{10}/', $test, $data);
foreach($data[0] as $data=>$waarde){
$gegevens = convert_page('http://www.autoscout24.de/'.$waarde.'');
// $gegevens = convert_page('http://www.autoscout24.de/CustomerArticles.aspx?cid=mqalqpg3ce&asrc=lnjqrtj3ef4l&aid=lnjqrtj3ef4l&sz=ua');
$firma = get_string_between($gegevens, '<h2 id="ctl00_ctl00_decoratedArea_contentArea_custOverview_upperHead">' , '</h2>');
$straat = get_string_between($gegevens, 'addressLine4" class="adress">', '</td>');
$tel1 = get_string_between($gegevens, '2" class="tel-nr">', '</td>');
$fax = '';
preg_match_all('/[A-Za-z]{1,2}-[0-9]{4,6} [a-zA-Z0-0]{1,25}/', $gegevens, $plaats);
$plaats = $plaats[0][0];
$email = get_string_between($gegevens, 'mailText">', '</span>');
$web = get_string_between($gegevens, 'Internet:', '</a>');
$web = get_string_between($web, 'href="', '" ');
$mob = '';
mysql_query("INSERT INTO gegevens (bedrijfsnaam, straat, plaats, telefoon, fax, mobiel, email, website)
VALUES ('".$firma."', '".$straat."', '".$plaats."', '".$tel1."', '".$fax."', '".$mob."', '".$email."', '".$web."')");
}
}
}
}
function convert_page($url){
$get = file_get_contents($url);
$str = mb_convert_encoding($get, "ISO-8859-15", "UTF-8");
return $str;
}
function get_string_between($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
?>
ini_set ('display_errors', 1);
error_reporting (E_ALL | E_STRICT);
set_time_limit(72000);
//de ID's van de autos in een array stoppen.
$result = file_get_contents('autos.html');
preg_match_all('/[0-9]{1,6}/', $result, $autos);
$b=5;
foreach($autos[0] as $auto=>$value){
$url = 'http://www.autoscout24.de/List.aspx?vis=1&make='.$value.'&pricefrom=1000&cy=D&page=1&maxresults=500&results=20&ustate=N&ustate=U&um=True&sort=price&dealcust=True&zipc=D';
$str = convert_page('http://www.autoscout24.de/List.aspx?vis=1&make=9&pricefrom=1000&cy=D&page=2&maxresults=500&results=80&ustate=N&ustate=U&um=True&sort=price&dealcust=True&zipc=D');
$check1 = strpos($str, 'Leider konnten keine Fahrzeuge mit diesen kriterien gefunden werden');
$check2 = strpos($str, 'Es wurden nicht genug Suchkriterien angegeben');
if ($check1 !== false){
}
elseif($check2 !== false){
}
else{
//de gegevens van de pagina extensie uit de website halen.
$regex = '/\/Details\.aspx\?id=[0-9a-zA-Z]{12}/';
preg_match_all($regex, $str, $link);
foreach($link[0] as $link=>$waarde){
$test = convert_page('http://www.autoscout24.de'.$waarde.'');
preg_match_all('/CustomerArticles\.aspx\?cid=[0-9a-zA-Z]{10}/', $test, $data);
foreach($data[0] as $data=>$waarde){
$gegevens = convert_page('http://www.autoscout24.de/'.$waarde.'');
// $gegevens = convert_page('http://www.autoscout24.de/CustomerArticles.aspx?cid=mqalqpg3ce&asrc=lnjqrtj3ef4l&aid=lnjqrtj3ef4l&sz=ua');
$firma = get_string_between($gegevens, '<h2 id="ctl00_ctl00_decoratedArea_contentArea_custOverview_upperHead">' , '</h2>');
$straat = get_string_between($gegevens, 'addressLine4" class="adress">', '</td>');
$tel1 = get_string_between($gegevens, '2" class="tel-nr">', '</td>');
$fax = '';
preg_match_all('/[A-Za-z]{1,2}-[0-9]{4,6} [a-zA-Z0-0]{1,25}/', $gegevens, $plaats);
$plaats = $plaats[0][0];
$email = get_string_between($gegevens, 'mailText">', '</span>');
$web = get_string_between($gegevens, 'Internet:', '</a>');
$web = get_string_between($web, 'href="', '" ');
$mob = '';
mysql_query("INSERT INTO gegevens (bedrijfsnaam, straat, plaats, telefoon, fax, mobiel, email, website)
VALUES ('".$firma."', '".$straat."', '".$plaats."', '".$tel1."', '".$fax."', '".$mob."', '".$email."', '".$web."')");
}
}
}
}
function convert_page($url){
$get = file_get_contents($url);
$str = mb_convert_encoding($get, "ISO-8859-15", "UTF-8");
return $str;
}
function get_string_between($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
?>
Gewijzigd op 01/01/1970 01:00:00 door simon
*bump*
dus iemand nog een ideetje?
Mijn glazen bol is erg troebel vandaag. Post eens wat code en eventuele errors.
simon schreef op 08.09.2008 09:36:
Zie de tutorials en dan vooral het onderwerp "foutafhandeling".dat heb ik al gedaan maar nu krijg ik daardoor dus errors die ik graag wil weghebben.
dus iemand nog een ideetje?
dus iemand nog een ideetje?
Jij weet namelijk 100% zeker dat queries fout kunnen gaan, dat kan altijd, dus mag foutafhandeling nooit ontbreken. Dat ontbreekt nu wel en dan gaat het pas écht goed fout...
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
ini_set ('display_errors', 'on');
error_reporting (E_ALL | E_STRICT);
set_time_limit(7200000);
$host='localhost';$username='web17_u1';$pass='stage';$soort='web17_db1';
$con = mysql_connect($host,$username,$pass) or die(mysql_error());
mysql_select_db($soort, $con);
//de ID's van de autos in een array stoppen.
$result = file_get_contents('autos.html');
preg_match_all('/[0-9]{1,6}/', $result, $autos);
$b=5;
foreach($autos[0] as $auto=>$value){
$url = 'http://www.autoscout24.de/List.aspx?vis=1&make='.$value.'&pricefrom=1000&cy=D&page=1&maxresults=500&results=20&ustate=N&ustate=U&um=True&sort=price&dealcust=True&zipc=D';
$str = convert_page('http://www.autoscout24.de/List.aspx?vis=1&make=9&pricefrom=1000&cy=D&page=2&maxresults=500&results=80&ustate=N&ustate=U&um=True&sort=price&dealcust=True&zipc=D');
$check1 = strpos($str, 'Leider konnten keine Fahrzeuge mit diesen kriterien gefunden werden');
$check2 = strpos($str, 'Es wurden nicht genug Suchkriterien angegeben');
if ($check1 !== false){
}
elseif($check2 !== false){
}
else{
//de gegevens van de pagina extensie uit de website halen.
$regex = '/\/Details\.aspx\?id=[0-9a-zA-Z]{12}/';
preg_match_all($regex, $str, $link);
foreach($link[0] as $link=>$waarde){
$test = convert_page('http://www.autoscout24.de'.$waarde.'');
preg_match_all('/CustomerArticles\.aspx\?cid=[0-9a-zA-Z]{10}/', $test, $data);
foreach($data[0] as $data=>$waarde){
$gegevens = convert_page('http://www.autoscout24.de/'.$waarde.'');
$firma = get_string_between($gegevens, '<h2 id="ctl00_ctl00_decoratedArea_contentArea_custOverview_upperHead">' , '</h2>');
$straat = get_string_between($gegevens, 'addressLine4" class="adress">', '</td>');
$tel1 = get_string_between($gegevens, '2" class="tel-nr">', '</td>');
$fax = '';
preg_match_all('/[A-Za-z]{1,2}-[0-9]{4,6} [a-zA-Z0-0]{1,25}/', $gegevens, $plaats);
$plaats = $plaats[0][0];
$email = get_string_between($gegevens, 'mailText">', '</span>');
$web = get_string_between($gegevens, 'Internet:', '</a>');
$web = get_string_between($web, 'href="', '" ');
$mob = '';
$sql = mysql_query("INSERT INTO gegevens (bedrijfsnaam, straat, plaats, telefoon, fax, mobiel, email, website)
VALUES ('".$firma."', '".$straat."', '".$plaats."', '".$tel1."', '".$fax."', '".$mob."', '".$email."', '".$web."')");
if(!$res = mysql_query($sql)){
trigger_error(mysql_error().'<br />In query: '.$sql);
}
else
{
echo 'gelukt!';
}
}
}
}
}
function convert_page($url){
$get = file_get_contents($url);
$str = mb_convert_encoding($get, "ISO-8859-15", "UTF-8");
return $str;
}
function get_string_between($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
?>
ini_set ('display_errors', 'on');
error_reporting (E_ALL | E_STRICT);
set_time_limit(7200000);
$host='localhost';$username='web17_u1';$pass='stage';$soort='web17_db1';
$con = mysql_connect($host,$username,$pass) or die(mysql_error());
mysql_select_db($soort, $con);
//de ID's van de autos in een array stoppen.
$result = file_get_contents('autos.html');
preg_match_all('/[0-9]{1,6}/', $result, $autos);
$b=5;
foreach($autos[0] as $auto=>$value){
$url = 'http://www.autoscout24.de/List.aspx?vis=1&make='.$value.'&pricefrom=1000&cy=D&page=1&maxresults=500&results=20&ustate=N&ustate=U&um=True&sort=price&dealcust=True&zipc=D';
$str = convert_page('http://www.autoscout24.de/List.aspx?vis=1&make=9&pricefrom=1000&cy=D&page=2&maxresults=500&results=80&ustate=N&ustate=U&um=True&sort=price&dealcust=True&zipc=D');
$check1 = strpos($str, 'Leider konnten keine Fahrzeuge mit diesen kriterien gefunden werden');
$check2 = strpos($str, 'Es wurden nicht genug Suchkriterien angegeben');
if ($check1 !== false){
}
elseif($check2 !== false){
}
else{
//de gegevens van de pagina extensie uit de website halen.
$regex = '/\/Details\.aspx\?id=[0-9a-zA-Z]{12}/';
preg_match_all($regex, $str, $link);
foreach($link[0] as $link=>$waarde){
$test = convert_page('http://www.autoscout24.de'.$waarde.'');
preg_match_all('/CustomerArticles\.aspx\?cid=[0-9a-zA-Z]{10}/', $test, $data);
foreach($data[0] as $data=>$waarde){
$gegevens = convert_page('http://www.autoscout24.de/'.$waarde.'');
$firma = get_string_between($gegevens, '<h2 id="ctl00_ctl00_decoratedArea_contentArea_custOverview_upperHead">' , '</h2>');
$straat = get_string_between($gegevens, 'addressLine4" class="adress">', '</td>');
$tel1 = get_string_between($gegevens, '2" class="tel-nr">', '</td>');
$fax = '';
preg_match_all('/[A-Za-z]{1,2}-[0-9]{4,6} [a-zA-Z0-0]{1,25}/', $gegevens, $plaats);
$plaats = $plaats[0][0];
$email = get_string_between($gegevens, 'mailText">', '</span>');
$web = get_string_between($gegevens, 'Internet:', '</a>');
$web = get_string_between($web, 'href="', '" ');
$mob = '';
$sql = mysql_query("INSERT INTO gegevens (bedrijfsnaam, straat, plaats, telefoon, fax, mobiel, email, website)
VALUES ('".$firma."', '".$straat."', '".$plaats."', '".$tel1."', '".$fax."', '".$mob."', '".$email."', '".$web."')");
if(!$res = mysql_query($sql)){
trigger_error(mysql_error().'<br />In query: '.$sql);
}
else
{
echo 'gelukt!';
}
}
}
}
}
function convert_page($url){
$get = file_get_contents($url);
$str = mb_convert_encoding($get, "ISO-8859-15", "UTF-8");
return $str;
}
function get_string_between($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
?>
Gewijzigd op 01/01/1970 01:00:00 door simon
*bump*
mysql_affected_rows() of er ook iets is veranderd.
Check eens na een insert met