[ Príspevkov: 17 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.05.07
Prihlásený: 14.04.17
Príspevky: 413
Témy: 150 | 150

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


Offline

Čestný člen
Čestný člen
vypis dat z databazy pomocou php - nevypise mi prvy riadok

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5447
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.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.05.07
Prihlásený: 14.04.17
Príspevky: 413
Témy: 150 | 150

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?


Offline

Správca fóra
Správca fóra
vypis dat z databazy pomocou php - nevypise mi prvy riadok

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32

tento riadok ti na tvoju otazku odpovie:
Kód:
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.05.07
Prihlásený: 14.04.17
Príspevky: 413
Témy: 150 | 150

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


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1719
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...


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 03.08.10
Prihlásený: 10.12.17
Príspevky: 86
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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.05.07
Prihlásený: 14.04.17
Príspevky: 413
Témy: 150 | 150

ahaaaa...už to chápem....ty kokso...dík moc za vysvetlenie; paráda. dík že ste si našli čas


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

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?


Online

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 13.12.17
Príspevky: 1433
Témy: 2 | 2
Bydlisko: Praha / Rev...

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)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

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 :-D
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


Online

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 13.12.17
Príspevky: 1433
Témy: 2 | 2
Bydlisko: Praha / Rev...

Tak prepáč, že nehrám také divne hry :P

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?


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 08.03.09
Prihlásený: 17.09.11
Príspevky: 19
Témy: 4 | 4

skusim, zatial dik :D

// pridané po 14 minútach od posledného príspevku

no tak som skúsil, nefunguje to :(
môžeš pozrieť
http://www.allianceracing.net/leaderboards.php


Online

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 13.12.17
Príspevky: 1433
Témy: 2 | 2
Bydlisko: Praha / Rev...

Ahá, ja som myslel, že to môže byť len na začiatku :oops:
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ť...


Offline

Užívateľ
Užívateľ
Obrázok užívateľ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>";
}

?>


Online

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 13.12.17
Príspevky: 1433
Témy: 2 | 2
Bydlisko: Praha / Rev...

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";
.
.
.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 08.03.09
Prihlásený: 17.09.11
Príspevky: 19
Témy: 4 | 4

skúsim

takzdá sa že to funguje :D velká vdaka :hilarity:


 [ Príspevkov: 17 ] 


vypis dat z databazy pomocou php - nevypise mi prvy riadok



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

pripojenie a vypis dat z access databazy (ASP)

v PHP, ASP

0

379

30.06.2010 12:17

laceky

V tomto fóre nie sú ďalšie neprečítané témy.

mail() v php - ako dať text na nový riadok

v PHP, ASP

3

1085

23.03.2007 22:04

VLADIS007

V tomto fóre nie sú ďalšie neprečítané témy.

pri výpise z datzabázy mi nevypíše celý php kód

v PHP, ASP

2

237

13.04.2009 18:39

Unlink

V tomto fóre nie sú ďalšie neprečítané témy.

Porovnanie databázy + výpis zmien

v Databázy

0

532

07.06.2009 16:03

Nexus

V tomto fóre nie sú ďalšie neprečítané témy.

Android - výpis z databázy

v Android, iOS, Windows Phone (Mobile)

2

226

25.04.2015 16:53

LukasB

V tomto fóre nie sú ďalšie neprečítané témy.

vypis z databazy podla veku

v PHP, ASP

2

308

22.10.2007 0:53

neopagan

V tomto fóre nie sú ďalšie neprečítané témy.

Výpis z databázy do array

v PHP, ASP

3

321

13.04.2009 11:35

Tominator

V tomto fóre nie sú ďalšie neprečítané témy.

Vypis z databazy do riadku

v PHP, ASP

2

162

12.02.2014 15:51

benqo

V tomto fóre nie sú ďalšie neprečítané témy.

Vypis viacero veci z databazy...

v PHP, ASP

2

259

27.11.2008 21:21

sedlák

V tomto fóre nie sú ďalšie neprečítané témy.

vypis z databazy podla kriteria

v Databázy

5

659

15.07.2008 20:44

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

Vypis obsahu z databazy - pole text

v Databázy

5

836

11.10.2009 15:12

kudzo

V tomto fóre nie sú ďalšie neprečítané témy.

Ziskanie hesla do .rar archivov pomocou vlastnej databazy

v Ostatné programy

3

589

10.03.2009 14:31

Axwell

V tomto fóre nie sú ďalšie neprečítané témy.

Obnová dát databázy

v Databázy

5

482

02.05.2011 22:48

calimero

V tomto fóre nie sú ďalšie neprečítané témy.

vypis dat z 2 tabuliek

v Databázy

2

730

09.06.2009 18:17

neopagan

V tomto fóre nie sú ďalšie neprečítané témy.

Posielanie dát do databázy

v Databázy

4

125

12.08.2017 16:10

BX

V tomto fóre nie sú ďalšie neprečítané témy.

Výpis php

v PHP, ASP

11

347

14.04.2011 15:58

w3r0



© 2005 - 2017 PCforum, edited by JanoF