Zadejte hledaný výraz...

Cyklus while

Jan Málek
verified
rating uzivatele
(42 hodnocení)
28. 2. 2010 14:57:43
Zdravim,
potreboval bych poradit se scriptem, ktery vytahne z DB vsechny URL, a pak kazdou z nich "posle" scriptu na zjisteni GPR a vracenou hodnotu zapise zpet DB pomoci UPDATE.
Problem je v tom, ze cyklus probehne jenom jednou, tj. aktualizuje GPR jen u prvni URL.
Tady je samotny script:
$pagerank = 0;
$icon = 1;
include ("db.php");
$q = "SELECT id, url, pagerank FROM prehled_webu";
$dotaz = mysql_query($q);
$num_rows = mysql_num_rows($dotaz);
if ($num_rows >= 1)
{
while($ukaz = mysql_fetch_array($dotaz))
{
$id = $ukaz;
$q = "SELECT pagerank, url FROM prehled_webu WHERE id = '$id'";
$dotaz = mysql_query($q);
while($ukaz = mysql_fetch_array($dotaz))
{
$pagerank = $ukaz;
$url = $ukaz;
include ("class_webinfo.php");
$WebInfo = new clsWebInfo();
$WebInfo->GetRanks($url);
$pagerank = $WebInfo->GoogleRank;
$update = "UPDATE prehled_webu SET pagerank='$pagerank' WHERE id='$id'";
$update_do = mysql_query($update);
if ($update_do) {
echo "Pagerank byl aktualizován";
}
else {
echo "Chyba při aktualizaci";
}
}
}
}
else {
echo "Chyba při SELECTu";
}
?>
Kde myslite ze by mohl byt problem? :banghead:
28. 2. 2010 14:57:43
https://webtrh.cz/diskuse/cyklus-while#reply466307
Martin Klíma
verified
rating uzivatele
(13 hodnocení)
28. 2. 2010 15:05:03
Proč tam máš tohle?
$q = "SELECT id, url, pagerank FROM prehled_webu"
a potom
$q = "SELECT pagerank, url FROM prehled_webu WHERE id = '$id'";
Taky nerozumím těm zanořený cyklům, stačí ti k tomu jenom jeden ne?
28. 2. 2010 15:05:03
https://webtrh.cz/diskuse/cyklus-while#reply466306
naniccz
verified
rating uzivatele
(3 hodnocení)
28. 2. 2010 15:10:38
chyba je v tom, že $d a $dotaz při prvním průchodu přepíšeš selectem jednoho řádku, a už tam potom nemáš ten zbytek... a je to děsně prasácký
28. 2. 2010 15:10:38
https://webtrh.cz/diskuse/cyklus-while#reply466305
Jan Málek
verified
rating uzivatele
(42 hodnocení)
28. 2. 2010 15:10:47
To Pooky: Mas pravdu... :)
Myslel jsem ale, ze to potrebuju znova vytahnout, abych mohl dosadim id a url do toho vnorenyho cyklu... Jak to udelam bez toho druhyho SELCTu?
$pagerank = 0;
$icon = 1;
include ("db.php");
$q = "SELECT id, url, pagerank FROM prehled_webu";
$dotaz = mysql_query($q);
$num_rows = mysql_num_rows($dotaz);
if ($num_rows >= 1)
{
while($ukaz = mysql_fetch_array($dotaz))
{
$id = $ukaz;
$pagerank = $ukaz;
$url = $ukaz;
include ("class_webinfo.php");
$WebInfo = new clsWebInfo();
$WebInfo->GetRanks($url);
$pagerank = $WebInfo->GoogleRank;
$update = "UPDATE prehled_webu SET pagerank='$pagerank' WHERE id='$id'";
$update_do = mysql_query($update);
if ($update_do) {
echo "Pagerank byl aktualizován";
}
else {
echo "Chyba při aktualizaci";
}
}
}
else {
echo "Chyba při SELECTu";
}
?>
2 Nanicz: Vim, ucim se PHP asi 2 tydny :D
28. 2. 2010 15:10:47
https://webtrh.cz/diskuse/cyklus-while#reply466304
Máš to příliš složité. Trochu jsem ti to zjednodušil.
$pagerank = 0;
$icon = 1;
include ("db.php");
$dotaz = mysql_query("SELECT id, url, pagerank FROM prehled_webu");
$pocet_zaznamu = mysql_affected_rows();
echo "Nalezeno $pocet_zaznamu záznamů.
";
if ($pocet_zaznamu >= 1){
while($ukaz = mysql_fetch_array($dotaz)){
$pagerank = $ukaz;
$url = $ukaz;
include ("class_webinfo.php");
$WebInfo = new clsWebInfo();
$WebInfo->GetRanks($url);
$pagerank = $WebInfo->GoogleRank;
$update_do = mysql_query("UPDATE prehled_webu SET pagerank='$pagerank' WHERE id='".$ukaz."'");
if ($update_do){
echo $ukaz." - pagerank byl aktualizován.
";
}else{
echo $ukaz." - chyba při aktualizaci.
";
}
}
} else {
echo "Chyba při SELECTu";
}
?>
28. 2. 2010 15:10:48
https://webtrh.cz/diskuse/cyklus-while#reply466303
Jan Málek
verified
rating uzivatele
(42 hodnocení)
28. 2. 2010 15:19:43
To jersywoo: Parada, ale porad to neaktualizuje GPR u vsech webu, ale jen u prvniho:
http://www.izazitky.cz/netmind/nfv2/pagerank_update.php
28. 2. 2010 15:19:43
https://webtrh.cz/diskuse/cyklus-while#reply466302
Problém je s tím objektem - na to jsem malý pán ;-)
28. 2. 2010 15:21:27
https://webtrh.cz/diskuse/cyklus-while#reply466301
Jan Málek
verified
rating uzivatele
(42 hodnocení)
28. 2. 2010 15:23:24
Mno takze cyklus se zastavi po vraceni vysledku z GPR scriptu... Vyresim to jinak.
Diky vsem za rady :)
28. 2. 2010 15:23:24
https://webtrh.cz/diskuse/cyklus-while#reply466300
Pro odpověď se přihlašte.
Přihlásit