Text a jeho výber z db

Programovacie jazyky, rady, poradňa...
pavol71
Amateur
Amateur
Príspevky: 22
Registrovaný: 06 mar 2011, 16:46

Text a jeho výber z db

Príspevok od používateľa pavol71 »

Mám problém potrebujem naprogramovať skript, že ak je na stránke text a ak by nejaké slovo alebo slovné spojenie sa nachádzalo v databáze aby bol na neho odkaz urobil som niečo také

Kód: Vybrať všetko

<?php 

if($_POST["send"]){ 
   $connect = mysql_connect("localhost","root","heslo"); 
   $db = mysql_select_db("databaza"); 
   $sql=mysql_query("SELECT * FROM herci") or die(mysql_error()); 
   while($row=mysql_fetch_array($sql)){ 
   echo(str_replace("$row[meno]","<a href=info.php?id=$row[id]>$row[meno]</a>","$_POST[text]")); 
   } 
} 

?> 
<form action="pokus.php" method="post"> 
<input type="text" name="text" value=""> 
<input type="submit" name="send" value="send"> 
</form>
Problém je v tom, že ak zadam vo formulári slovo meno a priezvisko tak mi vypiše 100-krát meno a priezvisko a to ktoré sa nachadza v databaze tak da na neho odkaz asi tak nejako vyzerá výsledný HTML kód

Kód: Vybrať všetko

Meno PriezviskoMeno Priezvisko<a href=info.php?id=98>Meno Priezvisko</a>
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Text a jeho výber z db

Príspevok od používateľa audiotrack »

nahrádzaš reťazec $row['meno'] za reťazec ktorý znova obsahuje $row['meno'] tak sa ti to pekne rekurzívne nabalí. Na tom správaní nie je nič divné. Mal by si skôr použiť regulárne výrazy ako str_replace
pavol71
Amateur
Amateur
Príspevky: 22
Registrovaný: 06 mar 2011, 16:46

Re: Text a jeho výber z db

Príspevok od používateľa pavol71 »

audiotrack napísal:nahrádzaš reťazec $row['meno'] za reťazec ktorý znova obsahuje $row['meno'] tak sa ti to pekne rekurzívne nabalí. Na tom správaní nie je nič divné. Mal by si skôr použiť regulárne výrazy ako str_replace
ach, nie neznášam regulárne výrazy :D a cez regulárne výrazy to neviem ani ako zosúladiť :smt017 čo mam dať do regulárne výrazu ??
Kofan
Light Expert
Light Expert
Používateľov profilový obrázok
Príspevky: 67
Registrovaný: 06 okt 2010, 17:35

Re: Text a jeho výber z db

Príspevok od používateľa Kofan »

http://www.php.net
trapne lahke
pavol71
Amateur
Amateur
Príspevky: 22
Registrovaný: 06 mar 2011, 16:46

Re: Text a jeho výber z db

Príspevok od používateľa pavol71 »

Kofan napísal:http://www.php.net
trapne lahke
Jasné toto dokáže napísať každý :wink: ja s kamošom sa s tým už serieme dosť dlho a nikdy to poriadne nefunguje. Teraz som skúsil niečo urobiť, ale neviem prečo vôbec mi to nenaplní do poľa tie údaje

Kód: Vybrať všetko

<?php 
$connect = mysql_connect("localhost","root","heslo");
$db = mysql_select_db("db");

$sql=mysql_query("SELECT id,meno FROM herci") or die(mysql_error());
while($row=mysql_fetch_array($sql)){
$id = $row["id"];
$name = $row["meno"];
$vyrazy = array($id => array($name));  // tu chcem, aby mi naplnilo pole, ale nenaplní ho
}

$pole = array(); 
$sql=mysql_query("SELECT obsadenie FROM filmy WHERE id=1") or die(mysql_error());
$row=mysql_fetch_array($sql);
$search = $row["obsadenie"]; 

foreach($vyrazy as $key => $item) { 
foreach($item as $value) { 
if(stripos($value,$search)!==false) { 
$pole[] = '<a href="info.php?id='.$key.'">'.$value.'</a><br>';
} 
} 
} 

if(!empty($pole)) { 
echo '<p>Pocet vysledkov: '.count($pole).'</p>'; 
foreach($pole as $item) { 
echo $item; 
} 
} else { 
echo 'Neboli najdene ziadne zhody!'; 
} 
?>
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Text a jeho výber z db

Príspevok od používateľa audiotrack »

Kód: Vybrať všetko

while($row=mysql_fetch_array($sql)){
$id = $row["id"];
$name = $row["meno"];
$vyrazy = array($id => array($name));  // tu chcem, aby mi naplnilo pole, ale nenaplní ho
}
prepíš na

Kód: Vybrať všetko

$vyrazy = array();
while($row=mysql_fetch_array($sql)){
$vyrazy[$row["id"]] = $row["meno"];
}
//autoeditácia príspevku (16 Mar 2011, 17:46)
a tie foreach cykly tam ďalej máš zbytočne dva vnorené
pavol71
Amateur
Amateur
Príspevky: 22
Registrovaný: 06 mar 2011, 16:46

Re: Text a jeho výber z db

Príspevok od používateľa pavol71 »

Diky moc, už som sa aspoň pohol ďalej len stále to nie je ono :D Neviem možno som to zlé vysvetlil alebo to robím zlým postupom, ale chcel by som mam v db tabuľku filmy proste v tej tabuľke filmy mam stlpec obsadenie to je typ text a potom mam tabuľku herci tam mam hercov a ich životopisy. Potom mám v tom film obsadenie a proste chcem, že ak obsadenie je napr. Aaron Eckhart - SSgt. Michael Nantz<br> Ramon Rodriguez - 2nd Lt. William Martinez<br> Cory Hardrict - Cpl. Jason Locketta teraz v tej tabuľke herci je napríklad len Ramon Rodriguez tak chcem aby na neho dalo odkaz.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Text a jeho výber z db

Príspevok od používateľa audiotrack »

to je úplne zlý návrh, takto sa db netvorí. Nemáš najzákladnejšie znalosti v problematike a potom narážaš na takéto hlúpe problémy. No ale tvoja vec.

ak si zmenil to čo som ti písal predtým, tak ten cyklus by mal byť zhruba takto:

Kód: Vybrať všetko

foreach($vyrazy as $key => $item) {
if(stripos($item,$search)!==false) {
$pole[] = '<a href="info.php?id='.$key.'">'.$item.'</a><br>';
}
} 
pavol71
Amateur
Amateur
Príspevky: 22
Registrovaný: 06 mar 2011, 16:46

Re: Text a jeho výber z db

Príspevok od používateľa pavol71 »

audiotrack napísal:to je úplne zlý návrh, takto sa db netvorí. Nemáš najzákladnejšie znalosti v problematike a potom narážaš na takéto hlúpe problémy. No ale tvoja vec.
Rád by som sa niečomu priučil :) takže ak napišeš, čo robím zlé a ako by som to mal robiť tak budem len rád :) po pravde robím v php už celkom dlho ale fakt doteraz som robil všetko veľmi jednoduché aplikácie

EDIT: Napíše mi, že neboli nájdené žiadne výsledky :?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Text a jeho výber z db

Príspevok od používateľa audiotrack »

no tak sa uč, nájdi si nejakú literatúru ohľadom databáz, najprv prelistuj základy, po kapitole ERD môžeš skočiť na kapitolu kardinalita, prečítaj si niečo o spojovacích tabuľkách a o vzťahoch m:n, potom si nalistuj kapitolu foreign keys a potom to oboje aplikuj do svojho modelu. Ostatné veci môžeš prezatiaľ vynechať
Ukladať takto obsadenie je hlúposť, už len preto že dvaja menovci nemusia byť vždy tá istá osoba (ale tých problémov je viac, len neviem či by si im rozumel bez základov)
pavol71
Amateur
Amateur
Príspevky: 22
Registrovaný: 06 mar 2011, 16:46

Re: Text a jeho výber z db

Príspevok od používateľa pavol71 »

No ak tam použijem aj ten foreach napiše mi, že neboli nájdené žiadne výsledky :/
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Text a jeho výber z db

Príspevok od používateľa audiotrack »

v tej funkcii stripos máš vymenené argumenty, najprv by mal byť search a potom item. Ak ti to aj tak nenájde, tak si prever či sa tie mená skutočne zhodujú v oboch tabuľkách
pavol71
Amateur
Amateur
Príspevky: 22
Registrovaný: 06 mar 2011, 16:46

Re: Text a jeho výber z db

Príspevok od používateľa pavol71 »

audiotrack napísal:v tej funkcii stripos máš vymenené argumenty, najprv by mal byť search a potom item. Ak ti to aj tak nenájde, tak si prever či sa tie mená skutočne zhodujú v oboch tabuľkách
chlapče, pre mňa si odteraz king :D veľmi si mi pomohol diky moc akurát ešte potrebujem doladiť jednu vec nevypiše mi to celé obsadenie len my vypiše tých hercov ktorý sú v databaze a da na nich odkaz :?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Text a jeho výber z db

Príspevok od používateľa audiotrack »

Kód: Vybrať všetko

foreach($vyrazy as $key => $item) {
if(stripos($item,$search)!==false) {
$pole[] = '<a href="info.php?id='.$key.'">'.$item.'</a><br>';
}
} 
zmeň na

Kód: Vybrať všetko

foreach($vyrazy as $key => $item) {
if(stripos($search,$item)!==false) {
$pole[] = '<a href="info.php?id='.$key.'">'.$item.'</a><br>';
} else {
$pole[] = $item;
}
} 
a keď tak "celkom dlho" robíš s php, tak s cyklom a poľom by si mal dávno vedieť pracovať. Takže keď dočítaš tie databázy, vráť sa zase ku knižke o php ;)
pavol71
Amateur
Amateur
Príspevky: 22
Registrovaný: 06 mar 2011, 16:46

Re: Text a jeho výber z db

Príspevok od používateľa pavol71 »

Teraz mi to nevypisalo dobre, lebo mi vypisalo všetko z tabuľky herci a pri tom hercovi, čo je v databaze mi dalo odkaz :(
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Text a jeho výber z db

Príspevok od používateľa audiotrack »

ja už ani nechápem čo chceš :) Potráp sa s tým trošku sám, lebo si tuším prešiel do režimu "čakám na riešenie" a ja mám na večer iné plány

//autoeditácia príspevku (16 Mar 2011, 19:05)
jo, už asi chápem. No hej, to je ďalšia z tých nevýhod tvojho blbého návrhu databázy
pavol71
Amateur
Amateur
Príspevky: 22
Registrovaný: 06 mar 2011, 16:46

Re: Text a jeho výber z db

Príspevok od používateľa pavol71 »

audiotrack napísal:ja už ani nechápem čo chceš :) Potráp sa s tým trošku sám, lebo si tuším prešiel do režimu "čakám na riešenie" a ja mám na večer iné plány

//autoeditácia príspevku (16 Mar 2011, 19:05)
jo, už asi chápem. No hej, to je ďalšia z tých nevýhod tvojho blbého návrhu databázy
No ja sa s tým trápim už asi týždeň alebo dva a už ma nič nenapada tak važne som už len čakal kedy mi to napišeš ako to urobiť :roll: no ale ja aj tak neviem ako inak tú databazu navrhnúť :D Veď vo filmoch je obsadenie a všetko o filme a v hercoch zase všetko o hercoch
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Text a jeho výber z db

Príspevok od používateľa audiotrack »

no to hej, ale existujú takzvané coddove pravidlá a normálové formy, ktoré okrem iného hovoria aj to, že atribúty majú byť atomické a nie v obsadení miešať 20 rôznych hercov. Ale darmo ti to budem písať, keď k tomu (a aj k tomu ako to vyriešiť) by si potreboval iné základy. Nedá sa tu v jednom príspevku na internete vysvetliť niečo, čo sa na vysokej škole študuje v dvoch (a viac) semestroch
pavol71
Amateur
Amateur
Príspevky: 22
Registrovaný: 06 mar 2011, 16:46

Re: Text a jeho výber z db

Príspevok od používateľa pavol71 »

A keby tam použijem niekde str_replace ? Len neviem, ako by som to zadefinoval.
Kofan
Light Expert
Light Expert
Používateľov profilový obrázok
Príspevky: 67
Registrovaný: 06 okt 2010, 17:35

Re: Text a jeho výber z db

Príspevok od používateľa Kofan »

pavol71 napísal:Jasné toto dokáže napísať každý :wink: ....
A každý kto sa do toho rozumie to pochopí :shock:
Napísať odpoveď