Data Ftp vergelijken met data mysql
ik probeer een importeer script te maken. Hierbij probeer ik de data dat reeds aanwezig is in mysql te vergelijken met de data die op de ftp staat. Zo kan ik kijken wanneer er nieuwe afbeeldingen op de ftp staan en deze dan importeren. Wanneer deze dan geimporteerd zijn mogen ze niet meer in de lijst verschijnen.
Dit is was ik al heb:
Quote:
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?
include "../../tools/dbconnect.php";
//Categorieën ophalen uit db
$sql_cat = ("SELECT * FROM fotos GROUP BY categorie");
$query_cat = mysql_query($sql_cat);
while ($cat = mysql_fetch_assoc($query_cat))
{
$categor = $cat["categorie"];
$categorie .= "\n\t\t<option value=\"$categor\">$categor</option>";
}
echo'<form action="./fotos_importeer.php" method="post" name="uploaden" ENCTYPE="multipart/form-data">'.PHP_EOL;
echo'<table id="tabel_cnb1" width="450px">'.PHP_EOL;
echo"\t".'<tr>'.PHP_EOL;
echo"\t"."\t".'<td align="left" width="50%">Import-map: </td>'.PHP_EOL;
echo"\t".'</tr>'.PHP_EOL;
echo'</table>'.PHP_EOL;
echo'<hr width="450px" />'.PHP_EOL;
//Categorieën ophalen uit db
$sql_cat = ("SELECT * FROM fotos GROUP BY categorie");
$query_cat = mysql_query($sql_cat);
while ($cat = mysql_fetch_assoc($query_cat))
{
$categor = $cat["categorie"];
$categorie .= "\n\t\t<option value=\"$categor\">$categor</option>";
}
echo'<form action="./fotos_importeer.php" method="post" name="uploaden" ENCTYPE="multipart/form-data">'.PHP_EOL;
echo'<table id="tabel_cnb1">'.PHP_EOL;
echo"\t".'<tr>'.PHP_EOL;
echo"\t"."\t".'<td align="left"><span id="newcat" >Toevoegen in deze categorie:
<select name="catnaam" onChange="if(uploaden.catnaam.value == \'nieuw\') {document.getElementById(\'newcat\').innerHTML =\'Geef de nieuwe categorienaam in:<input type=text name=catnaam size=40 maxlength=100>\';};">
<option value="Diversen" selected>Geen categorie geselecteerd...</option>
<option value="nieuw">Nieuwe categorie:</option>
'.$categorie.'
</select></span></td>'.PHP_EOL;
echo"\t".'</tr>'.PHP_EOL;
echo"\t".'<tr>'.PHP_EOL;
echo"\t"."\t".'<td><hr width="450px" /><br /><br /></td>'.PHP_EOL;
echo"\t".'</tr>'.PHP_EOL;
echo'</table>'.PHP_EOL;
echo'<table id="tabel_cnb2">'.PHP_EOL;
echo"\t".'<tr>'.PHP_EOL;
echo"\t"."\t".'<td align="left" valign="middle">Lijst met importeerbare afbeeldingen...</td>'.PHP_EOL;
echo"\t".'</tr>'.PHP_EOL;
echo'</table>'.PHP_EOL;
echo'<table id="tabel_cnb2" cellpadding="0" cellspacing="0">'.PHP_EOL;
echo"\t".'<tr>'.PHP_EOL;
echo"\t"."\t".'<td id="w15zw"></td>'.PHP_EOL;
echo"\t"."\t".'<td id="w100" valign="middle">Importeren</td>'.PHP_EOL;
echo"\t"."\t".'<td id="w280" align="left" valign="middle">Voorbeeld</td>'.PHP_EOL;
echo"\t"."\t".'<td id="w280" align="center" valign="middle">Bestand</td>'.PHP_EOL;
echo"\t".'</tr>'.PHP_EOL;
echo"\t".'<tr>'.PHP_EOL;
echo"\t"."\t".'<td valign="middle" align="center" colspan="8"><br /></td>'.PHP_EOL;
echo"\t".'</tr>'.PHP_EOL;
$bestand_db=array();
//Fotos die al in DB steken ophalen
$sql_aanwezig = "SELECT bestand FROM fotos";
$query_aanwezig = mysql_query($sql_aanwezig);
while ($aanwezig = mysql_fetch_array($query_aanwezig))
{
$bestand = $aanwezig['bestand'];
array_push($bestand_db,"".$bestand."");
//Fotos ophalen die op FTP staan
$dir = './../../../fotos';
$foto_bestand = scandir($dir);
$result = array_diff($bestand_db, $foto_bestand);
}
/*while(){
echo"\t".'<tr>'.PHP_EOL;
echo"\t"."\t".'<td></td>'.PHP_EOL;
echo"\t"."\t".'<td>IMPORT: <input type="checkbox" name="nummer[1]" value="ja"></td>'.PHP_EOL;
echo"\t"."\t".'<td><img src='' ></td>'.PHP_EOL;
echo"\t"."\t".'<td><input type="text" name="oms[1]" value="0103_02.jpg" size="90" maxlength="120"><input type="hidden" name="bestand[1]" value="../../foto_import/0103/0103_02.jpg"></td>'.PHP_EOL;
echo"\t".'</tr>'.PHP_EOL;
}*/
echo'</table>'.PHP_EOL;
echo'</form>'.PHP_EOL;
?>
include "../../tools/dbconnect.php";
//Categorieën ophalen uit db
$sql_cat = ("SELECT * FROM fotos GROUP BY categorie");
$query_cat = mysql_query($sql_cat);
while ($cat = mysql_fetch_assoc($query_cat))
{
$categor = $cat["categorie"];
$categorie .= "\n\t\t<option value=\"$categor\">$categor</option>";
}
echo'<form action="./fotos_importeer.php" method="post" name="uploaden" ENCTYPE="multipart/form-data">'.PHP_EOL;
echo'<table id="tabel_cnb1" width="450px">'.PHP_EOL;
echo"\t".'<tr>'.PHP_EOL;
echo"\t"."\t".'<td align="left" width="50%">Import-map: </td>'.PHP_EOL;
echo"\t".'</tr>'.PHP_EOL;
echo'</table>'.PHP_EOL;
echo'<hr width="450px" />'.PHP_EOL;
//Categorieën ophalen uit db
$sql_cat = ("SELECT * FROM fotos GROUP BY categorie");
$query_cat = mysql_query($sql_cat);
while ($cat = mysql_fetch_assoc($query_cat))
{
$categor = $cat["categorie"];
$categorie .= "\n\t\t<option value=\"$categor\">$categor</option>";
}
echo'<form action="./fotos_importeer.php" method="post" name="uploaden" ENCTYPE="multipart/form-data">'.PHP_EOL;
echo'<table id="tabel_cnb1">'.PHP_EOL;
echo"\t".'<tr>'.PHP_EOL;
echo"\t"."\t".'<td align="left"><span id="newcat" >Toevoegen in deze categorie:
<select name="catnaam" onChange="if(uploaden.catnaam.value == \'nieuw\') {document.getElementById(\'newcat\').innerHTML =\'Geef de nieuwe categorienaam in:<input type=text name=catnaam size=40 maxlength=100>\';};">
<option value="Diversen" selected>Geen categorie geselecteerd...</option>
<option value="nieuw">Nieuwe categorie:</option>
'.$categorie.'
</select></span></td>'.PHP_EOL;
echo"\t".'</tr>'.PHP_EOL;
echo"\t".'<tr>'.PHP_EOL;
echo"\t"."\t".'<td><hr width="450px" /><br /><br /></td>'.PHP_EOL;
echo"\t".'</tr>'.PHP_EOL;
echo'</table>'.PHP_EOL;
echo'<table id="tabel_cnb2">'.PHP_EOL;
echo"\t".'<tr>'.PHP_EOL;
echo"\t"."\t".'<td align="left" valign="middle">Lijst met importeerbare afbeeldingen...</td>'.PHP_EOL;
echo"\t".'</tr>'.PHP_EOL;
echo'</table>'.PHP_EOL;
echo'<table id="tabel_cnb2" cellpadding="0" cellspacing="0">'.PHP_EOL;
echo"\t".'<tr>'.PHP_EOL;
echo"\t"."\t".'<td id="w15zw"></td>'.PHP_EOL;
echo"\t"."\t".'<td id="w100" valign="middle">Importeren</td>'.PHP_EOL;
echo"\t"."\t".'<td id="w280" align="left" valign="middle">Voorbeeld</td>'.PHP_EOL;
echo"\t"."\t".'<td id="w280" align="center" valign="middle">Bestand</td>'.PHP_EOL;
echo"\t".'</tr>'.PHP_EOL;
echo"\t".'<tr>'.PHP_EOL;
echo"\t"."\t".'<td valign="middle" align="center" colspan="8"><br /></td>'.PHP_EOL;
echo"\t".'</tr>'.PHP_EOL;
$bestand_db=array();
//Fotos die al in DB steken ophalen
$sql_aanwezig = "SELECT bestand FROM fotos";
$query_aanwezig = mysql_query($sql_aanwezig);
while ($aanwezig = mysql_fetch_array($query_aanwezig))
{
$bestand = $aanwezig['bestand'];
array_push($bestand_db,"".$bestand."");
//Fotos ophalen die op FTP staan
$dir = './../../../fotos';
$foto_bestand = scandir($dir);
$result = array_diff($bestand_db, $foto_bestand);
}
/*while(){
echo"\t".'<tr>'.PHP_EOL;
echo"\t"."\t".'<td></td>'.PHP_EOL;
echo"\t"."\t".'<td>IMPORT: <input type="checkbox" name="nummer[1]" value="ja"></td>'.PHP_EOL;
echo"\t"."\t".'<td><img src='' ></td>'.PHP_EOL;
echo"\t"."\t".'<td><input type="text" name="oms[1]" value="0103_02.jpg" size="90" maxlength="120"><input type="hidden" name="bestand[1]" value="../../foto_import/0103/0103_02.jpg"></td>'.PHP_EOL;
echo"\t".'</tr>'.PHP_EOL;
}*/
echo'</table>'.PHP_EOL;
echo'</form>'.PHP_EOL;
?>
Alleen kom ik er niet uit hoe ik de waarde van de Ftp kan vergelijken met die van de DB! Iemand een oplossing hiervoor??
Grtz,
Jelle
Gewijzigd op 08/09/2010 12:45:27 door Jelle Vl
bij die array_push die quotes weg,
array_diff en scandir buiten(na) de while lus, variabelen van tevoren declareren of met isset checken,
en controleer ff of de bestandsnamen juist zijn opgeslagen.
onnodige variabelen als $bestand mogen ook weg,
kan je de resultaten van de eerste query niet gebruiken om te checken of die bestanden bestaan?