<select> – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

<select> – PHP – Fórum – Programujte.com<select> – PHP – Fórum – Programujte.com

 

lolik0
Super člen
2. 11. 2008   #1
-
0
-

cawte mam tento script:



<?php
require_once '../conf/db.php';
include "../conf/config.php";
$port = $min_port;
$query = mysql_query("SELECT * FROM blabla") or die (mysql_error());
?>
<select name="lol">

<?php
while($Vysledok = mysql_fetch_array($query))
{
for(;$port <= $max_port; $port++)
{
if($port != $Vysledok["port"])
{
?>
<option value="<?php echo "$port" ?>"><?php echo "$port" ?></option>
<?php
}
}
}
?>
</script>




a ale ked v DB mam port 7777 a 7778 tak v zozname to neukaze len 7777 a ja potrebujem aby to nezobrazovalo ani ostatne co uz so v DB

Nahlásit jako SPAM
IP: 92.52.5.–
lolik0
Super člen
2. 11. 2008   #2
-
0
-

pls vedely by ste my s tym poradit?

Nahlásit jako SPAM
IP: 92.52.5.–
MZetko0
Stálý člen
2. 11. 2008   #3
-
0
-

Jsou dva hlavní problémy, kvůli kterým nemůže tenhle kód být funkční. Zaprvé nastavuješ port na minimální hranici jen poprvé před začátkem cyklů. To znamená, že jakmile $port projde for cyklem bude mít hodnotu {$max_port+1} takže příští průchod for cyklem se provede nul-krát. Měl bys proto nastavovat port pokaždé ve for-cyklu - tedy před prvním středníkem v závorce by mělo být $port=$min_port . Tím by jsi ten kód ale zaručeně neopravil, protože je tu jedna další a závažnější chyba. Ty totiž potřebuješ, aby se nezobrazovaly právě ty porty, které nejsou obsaženy v databázové tabulce. V současném stavu by ale kód prošel pro každý port v tabulce všechny porty od minima do maxima a nevypsal by vždy jen jediný, který je právě vybraný. Pro jednodušší vysvětlení předpokládejme, že databáze obsahuje tyto porty: 4 a 10 . Minimální port dejme jako 1 a maximální jako 11. Tedy pro první průchod while cyklem máme v proměnné $výsledok pole, které má na indexu "port" hodnotu 4. Pak se projde for-cyklem a vypíšou se hodnoty 1,2,3,(tady se zjistí, že port je 4, takže se nevypíše),5,6,7,8,9,10,11. to ale není konec, protože skončí for-cyklus a skončí první průchod while-cyklem. Ten znovu načte do $vysledok pole s portem 10, který je v databázi a začíná nový for-cyklus. Tady tvůj kód skončí, protože by byl $port == $max_port+1, ale pokud by byla aplikována oprava z prvního problému, který jsem uvedl, tak by se vypsala čísla: 1,2,3,4,5,6,7,8,9,(10 se nevypíše - v proměnné $vysledok["port"]),11. Tzn. by výsledek byl 1,2,3,5,6,7,8,9,10,11,1,2,3,4,5,6,7,8,9,11. To ty právě nechceš.Pokus se tedy porty při výběru z databáze seřadit a pak při vypisování vždy jen čekat, dokud nebude port roven $vysledok["port"], daný port nevypsat a znovu naplnit pole $vysledok. Tím by měl být porblém vyřešen.

Nahlásit jako SPAM
IP: 83.208.235.–
"Přirozená inteligence bude umělou brzy překonána. Přirozenou blbost však umělá nemůže nahradit nikdy"
Jára da CIMRMAN
http://www.newgame.cz
lolik0
Super člen
2. 11. 2008   #4
-
0
-

diky moc. ale nedalo by sa to nejako upravyt aby to vypisalo vsetky porty s DB a potom ich odstranilo s toho zoznamu? lebo to je volna registracia a ludia si budu vyberat lubovolny port

Nahlásit jako SPAM
IP: 92.52.5.–
KIIV
~ Moderátor
+43
God of flame
2. 11. 2008   #5
-
0
-

jezis ... pro tebe bude stacit si udelat pole ... jako klic tam das cisla portu a pak jen pouzijes unset
to mozna zvladnes

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
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, 6 hostů

Podobná vlákna

Select — založil Zuben

SELECT — založil Row

Select*from — založil Salieri

Select — založil erenis

 

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