Problém s polem – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Problém s polem – PHP – Fórum – Programujte.comProblém s polem – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
renet
~ Anonymní uživatel
6 příspěvků
22. 5. 2007   #1
-
0
-

mám tu script:



$select = mysql_query("select text, udaj FROM tabulka");
$pole = array("udaj1/text1", "udaj2/text2", "udaj3/text3");

foreach($pole as $nove_pole)
{
while($result = mysql_fetch_assoc($select))
{
list($udaj, $text) = explode("/", $nove_pole);

if($result['text'] == $text)
{
echo "<tr><td align='center'>".$result['udaj']."</td><td align='center'>".$udaj."</td></tr>";
}
else
{
echo "<tr><td align='center'>".$result['udaj']."</td><td align='center'>".$text."</td></tr>";
}
}
}



problém je, že neprojde celé $pole, ale zůstane u toho prvního prvku

pokud bychom script upravili a foreach jsme udělali mimo while a použili in_array



$select = mysql_query("select text, udaj FROM tabulka");
$pole = array("udaj1/text1", "udaj2/text2", "udaj3/text3");


foreach($pole as $nove_pole)
{
list($udaj, $text) = explode("/", $nove_pole);
}

while($result = mysql_fetch_assoc($select))
{
if(in_array($result['text'], $text))
{
echo "<tr><td align='center'>".$result['udaj']."</td><td align='center'>".$udaj."</td></tr>";
}
else
{
echo "<tr><td align='center'>".$result['udaj']."</td><td align='center'>".$text."</td></tr>";
}
}


vznikne problém že se mi sice najde v poli $text rovnost, ale pak při výpisu proměnné $udaj nevíme ke kterému $text patří.

zkoušel jsme to i přes array_walk ale to se mi nějak vůbec nepodařilo, tak prosím o radu, předem děkuju

Nahlásit jako SPAM
IP: ...–
Reklama
Reklama
Jan Škrášek
~ Redaktor
+1
Boss
22. 5. 2007   #2
-
0
-

To renet: to druhy mas cely blbe.. to nechapu jak by to mohlo fungovat... no a ktmu prvnimu to udeej nejak takhle (netestovatno):



select = mysql_query("select text, udaj FROM tabulka ORDER BY text "); //??? nejak to serad..... nevim jak to potrebujes..
$pole = array("udaj1/text1", "udaj2/text2", "udaj3/text3");

foreach($pole as $nove_pole)
{
$result = mysql_fetch_row($select);
list($udaj, $text) = explode("/", $nove_pole);

if($result[0] == $text) //holt to musis zamenit za indexy
{
echo "<tr><td align='center'>".$result[1]."</td><td align='center'>".$udaj."</td></tr>";
}
else
{
echo "<tr><td align='center'>".$result[1]."</td><td align='center'>".$text."</td></tr>";
}

}

snad sem problem pochopil dobre a pomuze ti to.. ;-)

Nahlásit jako SPAM
IP: ...–
http://jan.skrasek.com@hrachcz – webdeveloper
renet
~ Anonymní uživatel
6 příspěvků
23. 5. 2007   #3
-
0
-

seš hodnej za rychlou odpověď, ale není to přesně to co jsem měl na mysli...:-)
to co vypisuju pomocí while může mít více záznamů, takže by je to něco ve myslu

$pole = array("udaj1/text1", "udaj2/text2", "udaj3/text3");

list($udaj, $text) = explode("/", $pole);
vypíšu while databázi dejme tomu jeden sloupec

sloupec
---------
qwe
udaj1
yxc
ret
fgh

vypíšeme s while řádek s qwe, teď zjistíme jestli je v poli $udaj, pokud ne, vypsat $text , přejít na další řádek,tam je udaj1, ten už po explodování je v poli $udaj, vypíše $udaj, přejde na další řádek yxc...atd. vlastně jeden prvek který je vypisován z databáze je kontrolován zdali je v $poli

Nahlásit jako SPAM
IP: ...–
insider0
Věrný člen
23. 5. 2007   #4
-
0
-

za predpokladu, ze v db budou unikatni udaje(aspon v jednom sloupci), tak by mozna slo pouzit

<?php

$select = mysql_query("select text, udaj FROM tabulka");
$pole = array("udaj1/text1", "udaj2/text2", "udaj3/text3");

$zDatabaze = array();
while($result = mysql_fetch_assoc($select))
{
$zDatabaze[$result["text"]] = $result["udaj"];
}

foreach($pole as $nove_pole)
{
list($udaj, $text) = explode("/", $nove_pole);

if(isset($zDatabaze[$text]))
{
echo "<tr><td align='center'>".$zDatabaze[$text]."</td><td align='center'>".$udaj."</td></tr>";
}
else
{
echo "<tr><td align='center'>".$zDatabaze[$text]."</td><td align='center'>".$text."</td></tr>";
}

}
?>


mozna by bylo i rychlejsi pouzit nasledujici
$pole = array("udaj1"=>"text1", "udaj2"=>"text2", "udaj3"=>"text3");

foreach($pole as $udaj => $text)

Nahlásit jako SPAM
IP: ...–
I don't want to see you go,[br] The sky is over[br] Even though we can't afford[br] The sky is over,[br] The sky is over us.[br][br] CIVILIZATION IS OVER
renet
~ Anonymní uživatel
6 příspěvků
23. 5. 2007   #5
-
0
-

Já se omlouvám, že ještě otravuji, tohle funguje, ale není to přesně ještě ono, zkusím ještě vysvětlit

jde o to že pokud vypisujeme mysql tabulku tak tam může být i opakující záznamy...

sloupec
-------
text1 -> /záznam je v $poli vypíše udaj1/
text1 -> udaj1/
text2 -> /záznam není v $poli vypíše /text2 - vlastně sám sebe z databáze
text3 -> /záznam je v $poli, vypíše hodnotu, která s ním souvisí takže udaj3/
text1 -> udaj1/

omlouvám se, že tím ještě otravuju, ale už se tím trápím čtvrtý den a nedaří se mi to udělat, jsem už zoufalej

Nahlásit jako SPAM
IP: ...–
renet
~ Anonymní uživatel
6 příspěvků
24. 5. 2007   #6
-
0
-

nikdo neví?

Nahlásit jako SPAM
IP: ...–
renet
~ Anonymní uživatel
6 příspěvků
24. 5. 2007   #7
-
0
-

zkoušel jsem to takhle:



<?php
$pole = array("udaj1/text1", "udaj2/text2", "udaj3/text3", "udaj4/text4", "udaj5/text5");
$sloupec = array("qwer", "text1", "uiop", "text2", "text1");

$udaj = array();
$text = array();

foreach($pole as $rozdelene_pole)
{
list($UDAJ, $TEXT) = explode("/", $rozdelene_pole);
$udaj[] = $UDAJ;
$text[] = $TEXT;
}
$assoc_pole = array_combine($text, $udaj);


for($i = 0; $i<=5; $i++)
{

$key = array_search('$sloupec[$i]', $assoc_pole);

if ($key)
{
echo $sloupec[$i];
}
else
{
echo $assoc_pole[$sloupec[$i]];
}
}
?>


jenže tohle řešení zůstane jen u podmínky která je splněna, nevypíše else

Nahlásit jako SPAM
IP: ...–
renet
~ Anonymní uživatel
6 příspěvků
24. 5. 2007   #8
-
0
-

vyřešeno, omlouvám se za spam a děkuju za snahu:-)

Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 24 hostů

Podobná vlákna

Problém s polem — založil Axik

Problem s polem — založil Tomik

Problém s polem — založil K4BlOs

Problém s polem — založil milanbartax

Includovani - problem s polem — založil Earl Cash

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý