Stránka: 1 z 1
| [ Príspevkov: 17 ] | |
Autor | Správa |
---|
Registrovaný: 01.05.07 Prihlásený: 23.07.19 Príspevky: 420 Témy: 151 | 151 |
Ahojte,
neviem si rady s výpisom dát z jednej databazy (robím to ako cvičenie - mam 4 riadky udajov; 3 stlpce - prve, druhe, vyber enum (horna/dolna)). teraz som si napísal skript (pomocou návodou na nete) ktorým chcem dostat data na webovú stránku. php kod mam takto
Kód: <?php mysql_connect("localhost", "root", "") or die(mysql_error()); mysql_select_db("skuska");
$result = mysql_query("select * from skuska") or die(mysql_error());
$row = mysql_fetch_array($result) or die(mysql_error());
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){
echo $row["prve"]. " ". $row["druhe"] . " - " . $row["vyber"]; echo "<br />"; }
?>
problem je v tom že mi tento skript nevyhodí všetky zaznamy ako by som chcel, ale "zabudne" na ten úplne prvý záznam. no a ja si s tým neviem rady teraz, že prečo to nevyhadzuje ten prvý záznam. mohli by ste mi niekto prosím poradit kde je vada? dakujem
|
|
Registrovaný: 21.02.06 Prihlásený: 08.12.14 Príspevky: 5404 Témy: 30 | 30 Bydlisko: Bratislava |
Čo tam robí tento riadok?
Kód: $row = mysql_fetch_array($result) or die(mysql_error()); Skús toto: Kód: <?php mysql_connect("localhost", "root", "") or die(mysql_error()); mysql_select_db("skuska");
$result = mysql_query("select * from skuska") or die(mysql_error());
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){
echo $row["prve"]. " ". $row["druhe"] . " - " . $row["vyber"]; echo "<br />"; }
?>
_________________ Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme. |
|
Registrovaný: 01.05.07 Prihlásený: 23.07.19 Príspevky: 420 Témy: 151 | 151 |
kokso...dík moc ...funguje to....
nechápem ale ako možem vo while používat premennú row, ked som ju predtým nedefinoval; akoto že to nevyhodí nejaký error?
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
tento riadok ti na tvoju otazku odpovie:
Kód: while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 01.05.07 Prihlásený: 23.07.19 Príspevky: 420 Témy: 151 | 151 |
akože nechcem tu byť za blbca, no ale nejak tomu nechápem...hladal som na internete čo je to to "mysql_fetch_array" no a prišiel som na to, že tento príkaz spraví z výsledku dotazu na databázu zrozumitelné pole (v tomto prípade asociatívne - tj podla nazvov stlpcov v databaze) skladajúce sa z retazcov v databaze. ked teda napíšem "echo $row["prve"]. " ". $row["druhe"] . " - " . $row["vyber"];", vypíše sa mi prvý riadok; na to aby sa vypísal druhý používali v manuáloch to while čo cituje stenley.
ako teraz to chápem tak že stenley mi chcel naznačit že tým že som tam dal iba jedno = tak som vlastne tej premennej row priradil hodnotu; že porovnávanie sa značí ==
ale nejak som nepochopil doteraz čo vlastne to mysql_fetch_array vyhodí - ako vždy sa v popise tej funkcie napísalo akurát že sú to retazce usporiadané do polí; ale nechápem čo dosiahnem tou rovnostou vo while - nejak to neviem preložit do normálnej reči; furt ked som dal hladat v google mysql_fetch_array tak mi našlo články na jedno kopyto, z ktorých som nepochopil čo táto podmienka "$row = mysql_fetch_array($result, MYSQL_ASSOC" vlastne znamená....
nechcem byt otravný avšak fakt som prešiel niekolko stránok v angličtine aj češtine a nepochopil som ten princíp, preto by som chcel poprosiť či by ste mi neskúsili niekto dať ešte nejaký hint.
za všetky príspevky samozrejme dakujem
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | 0 |
Kód: while ($row) { Ten riadok testuje, či je v premennej $row niečo, čo nie je rovné FALSE (prázdnemu reťazcu, nule a niekoľkým ďalším možnostiam) Kód: while ($row=mysql_fetch_array((...)) { Najskôr do tej premennej vloží to, čo vráti tá funkcia mysql_fetch_array(...) a až potom sa vykoná ten test. Takže ak tá funkcia mysql_fetch_array(...) vráti nejaké dáta, vykonajú sa príkazy v tom while bloku (a v tom bloku sa bude dať použiť premenná $row, v ktorej sú údaje, ktoré sa načítali z DB). Potom sa zase zavolá tá funkcia mysql_fetch_array(...), jej návratová hodnota sa vloží do premennej $row a ak sú tam stále nejaké dáta, tak sa vykonajú príkazy v tom while bloku...
|
|
Registrovaný: 03.08.10 Prihlásený: 27.06.23 Príspevky: 94 Témy: 14 | 14 |
funkcia mysql_fetch_array nacita do pola jeden riadok z databazy. Ked tuto funkciu volas znova tak nacita dalsi riadok a potom dalsi a dalsi... Ked uz si na poslednom riadku a zavolas tuto fukkciu tak vrati FALSE. Zakazdym ked volas tuto funkciu tak to pole ktore vrati ulozis do premennej $row a potom pristupujes k jednotlivim stlpcom tabulky cez zapis $row["nazov_stlpca"]. Keze pouzivas cyklus while, tak sa toto cele bude opakovat dovtedy, dokedy mysql_fetch_array nevrati false - teda na poslednom riadku. Vtedy si volal tuto funkciu na tomto riadku Kód: $result = mysql_query("select * from skuska") or die(mysql_error()); a v cykle while si ju volal uz druhy krat - preto vratila druhy riadok. Ked este niecomu nechapes len sa sytaj.
|
|
Registrovaný: 01.05.07 Prihlásený: 23.07.19 Príspevky: 420 Témy: 151 | 151 |
ahaaaa...už to chápem....ty kokso...dík moc za vysvetlenie; paráda. dík že ste si našli čas
|
|
Registrovaný: 08.03.09 Prihlásený: 17.09.11 Príspevky: 19 Témy: 4 | 4 |
čaute,
nechcem zakladať novú temu, tiež mam problém z databázov
ide o to že mam herný server, ktorý je prepojený s webom (čiže užívatel sa musí najskôr zaregistrovať na fore, až tak môže hrať
no a na webe mam spravený leaderboards, kde majú užívateliasvoje štatistiky a ide o tom že v hre si može užívatel zmeniť nick aj s farbou (napr #ff00ffJano)
tento nick sa zmení aj v databáze no a vlastne v leaderboards tiež, kedže je to výpis databázy, takže nevidím tam užívatela Jano ale #ff00ffJano a to nechcem, takže hladám nejaký spôsob ako to spraviť, bud aby sa do databázy vôbec nezapísla kod farby, alebo aby databáza automaticky zmazala ten kod farby
takže poradí mi niekto, prosím?
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
Aký zmysel tam má tá farba? Prečo to neukladáš osobitne do stĺpcov farba a meno, ale to nezmyselne miešaš? A vôbec, keď tú farbu chceš úplne zmazať, musíš ju tam dávať?
Je to divné, vôbec nechápem zmysel takéhoto niečoho, ale aj tak mi z toho vychádza jednoduché riešenie - úprava kódu, ktorý vkladá dáta do databázy.
Prípadne, keď už chceme byť prasatá, vytiahnuť to z db takto a zmazať tam farbu (Za predpokladu, že je tam vždy stačí odstrániť prvých 7 znakov zo získaného mena)
|
|
Registrovaný: 08.03.09 Prihlásený: 17.09.11 Príspevky: 19 Témy: 4 | 4 |
tak ty si to ale vôbec nepochopil
ja tam predsa tu farbu nedávam
ked sa nejaký hrač zaregistruje na fore pod menom Jano, v hre sa musí prihlásiť ako Jano, ale nick v hre môže mať akýkolvek, čiže ak ho chce mať farebný tak si da pred meno kod farby, chápeš?
no len v databaze sa tiež zmení jeho nick a zapíše sa to aj s tým kodom, a potom je kod vidieť aj v rebríčkoch najlepších hráčov a to ja nechcem
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
Tak prepáč, že nehrám také divne hry
V tom prípade ale platí to čo som napísal.
Hráč ale pred menom ten kód mať nemusí, čiže vo výpise toho rebrička keď vytiahneš meno z databázy, preženieš to buď cez funkciu:
preg_replace("/^#[0-9abcdef]{6}/", "", $meno);
alebo aj takto sa to dá:
if($meno[0] == "#") $meno = substr($meno, 8);
Prípadne to testuj ešte pred vložením do db, ak môžeš.
Už som v obraze?
|
|
Registrovaný: 08.03.09 Prihlásený: 17.09.11 Príspevky: 19 Témy: 4 | 4 | |
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
Ahá, ja som myslel, že to môže byť len na začiatku
V tom prípade skús toto:
preg_replace("/#[0-9abcdef]{6}/", "", $meno);
(Alebo má byť mriežka backslashnutá? (Teda \#) Neviem, nechce sa mi to skúšať...
|
|
Registrovaný: 08.03.09 Prihlásený: 17.09.11 Príspevky: 19 Témy: 4 | 4 |
stále nič, pozri tu je celý leaderboards.php
Kód: <style type="text/css"> .parne { background-color:#33ccff; } .neparne { background-color:#3399ff; } .onOver { background-color:#fa7c00; } table.tab1 { border: 1px #000000 solid; border-collapse: collapse; border-spacing: 0px; width:100%; } table.tab1 td { border: 1px #000000 solid;} </style>
<!-- <table align="center" width="100%" bordercolor="#00" border="1" cellspacing="0" > --> <table class="tab1">
<tr align="left" bgcolor="#3e3e3e" style="border-bottom:solid 2px black;">
<td style="font-weight: bold; color:#fa7c00; font-size:20px;" width="7%">Rank</td>
<td style="font-weight: bold; color:#fa7c00; font-size:20px;" width="28%">Nick</td>
<td style="font-weight: bold; color:#fa7c00; font-size:20px;" width="15%">Points</td>
<td style="font-weight: bold; color:#fa7c00; font-size:20px;" width="20%">Money</td>
<td style="font-weight: bold; color:#fa7c00; font-size:20px;" width="15%">Wins</td>
<td style="font-weight: bold; color:#fa7c00; font-size:20px;" width="15%">Losts</td>
</tr> <?php $connect = mysql_connect("","","") or die ($error); mysql_select_db("vx446001db") or die ($error); $db = @mysql_query('SET NAMES UTF8');
if (isset($_GET['page'])) $page = $_GET['page']; else $page = 1; $page = mysql_real_escape_string($page); $start = ($page - 1) * 50; $q = mysql_query("SELECT nick, money, points, wins, lost FROM mta ORDER BY points DESC LIMIT $start, 50"); echo "<p>Showing players with rank $start - ".($start + mysql_num_rows($q))."</p>"; $i=0; while ($row = mysql_fetch_array($q)) { $start = $start + 1; if(($i%2)==0) { $class="parne"; } else { $class="neparne"; } echo "<tr class=\"".$class."\" onMouseOver=\"this.className='onOver'\" onMouseOut=\"this.className='".$class."'\"><td>$start</td><td>".$row['nick']."</td><td>".$row['points']."</td><td>".$row['money']."$</td><td>".$row['wins']."</td><td>".$row['lost']."</td></tr>\n"; $i++;
} echo "</table>"; $cq = mysql_query("SELECT userid FROM mta"); $count = mysql_num_rows($cq); mysql_free_result($q); mysql_free_result($cq); $pages = ceil($count / 50 ); if ( $count <= 50 ) {} else { echo "<p align=center>"; if (($page - 3 ) > 0 ) { echo "<a href='leaderboards.php?page=".($page-3)."'> ".($page-3)." </a>"; } if (($page - 2 ) > 0 ) { echo "<a href='leaderboards.php?page=".($page-2)."'> ".($page-2)." </a>"; } if (($page - 1 ) > 0 ) { echo "<a href='leaderboards.php?page=".($page-1)."'> ".($page-1)." </a>"; } echo " $page "; $pagesright = $pages - $page; $ic = 0; while ( $ic < 3 && $pagesright > 0 ) { $ic = $ic + 1; $pagesright = $pagesright - 1; echo "<a href='leaderboards.php?page=".($page + $ic)."'> ".($page + $ic)." </a>"; } echo "</p>"; }
?>
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
Tak v čom je problém? Toto by podľa mňa malo ísť...
Kód: . . . echo "<tr class=\"".$class."\" onMouseOver=\"this.className='onOver'\" onMouseOut=\"this.className='".$class."'\"><td>$start</td><td>".preg_replace("/#[0-9abcdef]{6}/", "", $row['nick'])."</td><td>".$row['points']."</td><td>".$row['money']."$</td><td>".$row['wins']."</td><td>".$row['lost']."</td></tr>\n"; . . .
|
|
Registrovaný: 08.03.09 Prihlásený: 17.09.11 Príspevky: 19 Témy: 4 | 4 |
skúsim
takzdá sa že to funguje  velká vdaka 
|
|
Stránka: 1 z 1
| [ Príspevkov: 17 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
 | v PHP, ASP | 0 | 679 | 30.06.2010 12:17 laceky |  | v PHP, ASP | 3 | 1403 | 23.03.2007 22:04 VLADIS007 |  | v Databázy | 3 | 519 | 25.02.2018 1:22 martinius96 |  | v PHP, ASP | 2 | 344 | 26.12.2020 14:28 jakubv |  | v PHP, ASP | 2 | 500 | 13.04.2009 18:39 Unlink |  | v Databázy | 0 | 2049 | 07.06.2009 16:03 Nexus |  | v Android, iOS, Windows Phone (Mobile) | 2 | 754 | 25.04.2015 16:53 LukasB |  | v PHP, ASP | 2 | 605 | 27.11.2008 21:21 sedlák |  | v PHP, ASP | 2 | 514 | 12.02.2014 15:51 benqo |  | v Databázy | 5 | 945 | 15.07.2008 20:44 stenley |  | v PHP, ASP | 2 | 565 | 22.10.2007 0:53 neopagan |  | v PHP, ASP | 3 | 609 | 13.04.2009 11:35 Tominator |  | v Databázy | 5 | 1130 | 11.10.2009 15:12 kudzo |  | v Ostatné programy | 3 | 855 | 10.03.2009 14:31 Axwell |  | v Databázy | 2 | 1017 | 09.06.2009 18:17 neopagan |  | v Databázy | 5 | 836 | 02.05.2011 22:48 calimero |
|