Jump to content
php.lv forumi

Cikls gļuko...vai kas cits...


Morphius

Recommended Posts

Lieta sekojoša...

Tekstu vēlos sadalīt pa diviem vārdiem, pārbaudīt vai tāda frāze jau neeksistē datubāzē un ja ne tad pievienot!

Viss jau būtu labi, tikai apstrādājot lielāku tekstu, izmet kļūdu pie 16 cikla...

Lūk mans veikums:

$teksts="WASHINGTON House Democrats announced agreement Friday on far-reaching steps designed 
to rein in the relentless growth of Medicare, part of a concerted effort to counter the impression 
that President Barack Obama's health care legislation is in deep trouble.
Speaker Nancy Pelosi hailed the agreement as a giant step forward for the bill that Obama has made 
a test of his leadership. Advocates said it eventually would turn Medicare toward a program that 
rewards quality, rather than volume, as well as alter a system that pays doctors and other providers 
more in some regions of the country than others.";
$varduSkaits=str_word_count($teksts); //Seit ir info par vaardu skaitu
$masivs=str_word_count($teksts, 1); //Seit viss teksts tiek ievietots masiivaa

$a=0;
$b=1;
while ($a<$varduSkaits)
{
	$vards1=$masivs[$a];
	$vards2=$masivs[$b];
	$fraze=$vards1." ".$vards2;
	include ("db.php");
	$result=mysql_query("SELECT * FROM vardi WHERE fraze='$fraze'", $db);
	if(mysql_num_rows($result) > 0)
	{
		// Ja fraaze eksistee, nedaram neko un veidojam naakamo ciklu
		echo "Fraaze eksistee!<br>";
	}
	else
	{
		echo "Fraaze neeksistee!<br>";
		// $insertDB=mysql_query("INSERT INTO vardi (fraze) VALUES ('$fraze')", $db) or die(mysql_error());
	}

$a=$a+2;
$b=$b+2;

}

Pielikumā ir redzams rezultāts ar visu kļūdu...

Ja teksts ir mazāks, respektīvi ja ir 15 vārdu pāri, tad viss strādā kā nākas, bet tikko ir 16-tais vārdu pāris, tā izmet, man nesaprotamu, kļūdu!

Kur ir problēma? Vai varbūt savādāk var risināt šo problēmu?

post-3692-124848944339_thumb.jpg

Edited by Morphius
Link to comment
Share on other sites

Pirmkārt kur tu pieslēdzies datubāzei?

 

Otrkārt str_word_count($teksts, 1); neatgriež ciparus ,ērtāk būtu izmantot EXPLODE

 

Treškārt $insertDB=mysql_query("INSERT INTO vardi (fraze) VALUES ('$fraze')", $db) or die(mysql_error());

Kam tev vajag šo rindu $insertDB= ,ja tu neko neatgriez?

 

Ceturtkārt http://lv.php.net/manual/en/function.mysql-errno.php

 

5. fraze='$fraze'" < Pēdiņas trūkst

 

man apnika :D

Link to comment
Share on other sites

Pirmkārt kur tu pieslēdzies datubāzei?

include("db.php"); //iekš cikla redzama šī rindiņa

 

 

 

Otrkārt str_word_count($teksts, 1); neatgriež ciparus ,ērtāk būtu izmantot EXPLODE

Manuprāt te Tu par daudz salēji...

 

 

Treškārt $insertDB=mysql_query("INSERT INTO vardi (fraze) VALUES ('$fraze')", $db) or die(mysql_error());

Kam tev vajag šo rindu $insertDB= ,ja tu neko neatgriez?

$insertDB vajadzīgs tālākām operācijām, kuras neesmu paspējis sarakstīt! Tādēļ esmu ielicis komentārā, lai netraucē šī funkcija ar savu darbību.

 

Ceturtkārt http://lv.php.net/manual/en/function.mysql-errno.php

Kā šis links man var palīdzēt nesaprotu?! Es jau izmantoju mysql_error() bet nekādu jēdzīgu info neemsu dabujis

 

5. fraze='$fraze'" < Pēdiņas trūkst

Kādas f****** pēdiņas...ar sintaksi viss ir kārtībā

 

man apnika :D

Manuprāt Tu 30 sekundes atpakal pamodies no dziļa miega, tāpēc sajēga, par apkārt notiekošo, vēl nav pilnībā aktivizējusies.

Par to EXPLODE...es pamēģināšu, bet man ir liela nojausma ka rezultāts būs tas pats kas iepriekš!

 

PS

 

Nu redz kā cienītais "Val" atrisināja šo elementāro problēmu...paldies liels

Edited by Morphius
Link to comment
Share on other sites

Nedomāju, ka $insertDB vajadzētu izpildīt ciklā - labāk visas pievienojamās frāzes pievienot vienā kverijā pēc cikla beigām. Ja vēlies atrast frāzes ierakstu skaitu, tad "SELECT *" ir bik pa traku.

Un izvāc pieslēgšanos DB pirms cikla.

Paskaties, kas notiek ciklā, ja ir nepāra skaits vārdu (iekš $teksts), ar error_reporting(E_ALL);

Edited by Val
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...