[ Príspevkov: 17 ] 
AutorSpráva
Offline

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

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


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: 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.
Offline

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

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?


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

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

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


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


Offline

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

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.


Offline

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

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


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?


Offline

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

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)


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


Offline

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

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3

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


Offline

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

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 :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>";
}

?>


Offline

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

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


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

679

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

1403

23.03.2007 22:04

VLADIS007

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

Výpis dát z databázy z posledných 7 dní

v Databázy

3

519

25.02.2018 1:22

martinius96

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

Nezabezpečená časť webu, ak sa názov súboru čerpá z databazy pomocou PHP

v PHP, ASP

2

344

26.12.2020 14:28

jakubv

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

500

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

2049

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

754

25.04.2015 16:53

LukasB

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

Vypis viacero veci z databazy...

v PHP, ASP

2

605

27.11.2008 21:21

sedlák

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

Vypis z databazy do riadku

v PHP, ASP

2

514

12.02.2014 15:51

benqo

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

vypis z databazy podla kriteria

v Databázy

5

945

15.07.2008 20:44

stenley

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

vypis z databazy podla veku

v PHP, ASP

2

565

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

609

13.04.2009 11:35

Tominator

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

Vypis obsahu z databazy - pole text

v Databázy

5

1130

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

855

10.03.2009 14:31

Axwell

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

vypis dat z 2 tabuliek

v Databázy

2

1017

09.06.2009 18:17

neopagan

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

Obnová dát databázy

v Databázy

5

836

02.05.2011 22:48

calimero



© 2005 - 2025 PCforum, edited by JanoF