Verder: controleer altijd of een query gelukt is. Zo niet, geef dan een foutmelding met mysql_error().
<?php
$sql = // de query
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br>In query: '.$sql);
}
?>
Verder: controleer altijd of een query gelukt is. Zo niet, geef dan een foutmelding met mysql_error().
<?php
$sql = // de query
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br>In query: '.$sql);
}
?>
Is gelukt, lag aan de globals
nu heb ik een werkend script dat als volt werkt:
url invoer --> crawlen van url naar links --> opslaan links in tabel
De volgende stap is dat ik de 'url invoer' wil halen uit een eenvoudige tabel met daarin een aantal verschillend urls. Ik wil het script dus maar een keer starten en vervolgens alle urls in de tabel gebruiken als invoer voor het geheel.
de tabel ziet er uit als:
+----+-----+
| id | url |
+----+-----+
Verder: controleer altijd of een query gelukt is. Zo niet, geef dan een foutmelding met mysql_error().
<?php
$sql = // de query
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br>In query: '.$sql);
}
?>
Is gelukt, lag aan de globals
nu heb ik een werkend script dat als volt werkt:
url invoer --> crawlen van url naar links --> opslaan links in tabel
De volgende stap is dat ik de 'url invoer' wil halen uit een eenvoudige tabel met daarin een aantal verschillend urls. Ik wil het script dus maar een keer starten en vervolgens alle urls in de tabel gebruiken als invoer voor het geheel. Hoe kan ik dat het beste doen?
de tabel ziet er uit als:
+----+-----+
| id | url |
+----+-----+
Ik volg je niet helemaal. Wil je alle urls uitlezen en weergeven op het scherm?
Nee ik wil de urls uit de database gebruiken als invoer in mijn script...
Nu gebruik ik nog om te testen een formulier waar ik de url mee invoer, maar ik wil dat het script zelf MEERDERE urls uit de database kan halen en deze een voor een als invoer gebruiken...
dus eerst url 1, dan url 2, etc...
edit: nu gebruik ik als invoervariabele;
$urlinputform = $_POST['urlinput'];
ik wil dus hebben
$urlinputform = URL UIT DATABASE (STEEDS EEN ANDERE)
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br>In query: '.$sql);
}
else
{
while($row = mysql_fetch_assoc($res))
{
// De url staat in $row['url']
// Hier verder met het script dat je wilt uitvoeren.
}
}
?>
Zoiets?
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br>In query: '.$sql);
}
else
{
while($row = mysql_fetch_assoc($res))
{
// De url staat in $row['url']
// Hier verder met het script dat je wilt uitvoeren.
}
}
?>
Zoiets?
Niet geheel wat ik zoek, dit is mijn huidige code, waarbij ik om het overzicht te houden ook even voor iedere gecrawlde url een aparte tabel aanmaak, uiteindelijk gaat alles straks in één tabel.
Hoe kan ik de mogelijkheid om automatisch alle urls uit de tabel 'urls' te halen en deze een voor een uit te laten voeren door het script, inbouwen in onderstaande?
De enige waarde die dus automatisch gewijzigt moet worden is "$urlinputform = $_POST['urlinput'];"
[CODE]
<?php
include ("config.php");
mysql_connect("$host", "$user", "$pass") or die(mysql_error());
mysql_select_db("$db") or die(mysql_error());
$sql2 = "
CREATE TABLE ".$add_links_nl." (
id INT,
url VARCHAR(100),
link VARCHAR(100)
)";
mysql_query($sql1);
mysql_query($sql2);
echo "De ingevoerde pagina is bezocht door onze spider en toegevoegd aan de database<br><br>";
}
else {
echo "De URL die u heeft ingevoerd is niet volgens de vorm http://www.URL.nl<br>Alleen top-level .nl (alleen voor Nederland) domeinen zijn toegestaan (dus geen iets.domein.nl)<br>";
}
Wat is dit voor gekke code? Variabelen horen nooit tussen quotes te staan en de haakjes () zijn volkomen overbodig. Tevens is het overbodig om een variabele te kopieeren zonder iets aan de inhoud te veranderen.
Kortom, bovenstaande 3 regels kun je zo weggooien, ga in de rest van je code gewoon met $_POST['urlinput'] aan de slag, dan is het tenminste duidelijk dat de variabele uit een formulier komt en niet is te vertrouwen. Denk bv. aan SQL-injection.
En waarom voer jij queries uit zonder te controleren of deze wel zijn gelukt? Dat je een CREATE-query nooit nodig hebt in een PHP-script, wist je al, waarom gebruik je die dan nog?
Wat is dit voor gekke code? Variabelen horen nooit tussen quotes te staan en de haakjes () zijn volkomen overbodig. Tevens is het overbodig om een variabele te kopieeren zonder iets aan de inhoud te veranderen.
Kortom, bovenstaande 3 regels kun je zo weggooien, ga in de rest van je code gewoon met $_POST['urlinput'] aan de slag, dan is het tenminste duidelijk dat de variabele uit een formulier komt en niet is te vertrouwen. Denk bv. aan SQL-injection.
En waarom voer jij queries uit zonder te controleren of deze wel zijn gelukt? Dat je een CREATE-query nooit nodig hebt in een PHP-script, wist je al, waarom gebruik je die dan nog?
Je hebt niet helemaal gelijk,
$urltocrawl = ("$urlinputform"); is bedoeld voor de spider, dus als het ware voor de volledige 'tekst'.
$urltocrawlcreate = (".$urlinputform."); is speciaal voor het werken met queries, die reageren namelijk niet met "$urlinputform", heel vreemd
Dit zou je eens uit moeten proberen;)...als alles af is post ik het toch als open source:P
Dan moet je mij toch eens uitleggen wat voor toegevoegde waarde die haakjes en quotes rond die variabelen hebben en waarom je spider of queries dat nodig zouden hebben.
Het verandert verder namelijk niets aan de variabele:
<?php
$urlinputform = 'blaat';
echo $urlinputform.'<br>'; // blaat
$urltocrawl = ("$urlinputform");
echo $urltocrawl.'<br>'; // blaat
?>
Het blijft gewoon een kopie en dus overbodig...