Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Kolme mysql tietoa samalle riville ja sitten rivinvaihto

Sivun loppuun

alker [07.07.2009 19:53:30]

#

Eli miten tuollaisen voisi tehdä? Itse yritin väsätä mutta kun menee aina eri riville ne mysql tiedot. Voisiko joku kertoa?
Eli kieli on PHP.

Metabolix [07.07.2009 19:58:56]

#

<?php
$tulokset = array();
while ($r = mysql_fetch_assoc($result)) {
  $tulokset[] = $r;
}

$sarakkeita = 3;
$rivit = array_chunk($tulokset, $sarakkeita);
echo "<table>\n";
foreach ($rivit as $rivi) {
  echo "<tr>\n";
  foreach ($rivi as $solu) {
    echo "<td>{$solu['data']}</td>";
  }
  if (count($rivi) < $sarakkeita) {
    $puuttuu = $sarakkeita - count($rivi);
    echo "<td colspan='$puuttuu'></td>";
  }
  echo "</tr>\n";
}
echo "</table>"

TeNDoLLA [07.07.2009 20:03:12]

#

<?php
$result = mysql_query("SELECT * FROM koirat");
$i = 0;
while ($row = mysql_fetch_object($result))
{
	if ($i < 3)
	{
		echo '&nbsp;' . $row->tieto;
	}
	else
	{
		echo '<br/>' . $row->tieto;
		$i = 0;
	}
	$i++;
}
?>

edit: metabolixi ehti ennemmin.. tyyli eri.

alker [07.07.2009 20:50:22]

#

Eli hain kyllä sellaista mikä näyttäisi tältä

Metabolix [07.07.2009 21:14:25]

#

Onko ongelmasi sittenkin siinä, ettet saa HTML:llä ja CSS:llä asetettua asioita rinnakkain? Osaatko tehdä käsin sivun, joka näyttäisi oikealta? Jos osaat, millainen HTML-koodi siihen tarvitaan? Mikä sitten estää sijoittamasta sitä annettuihin koodiesimerkkeihin?

Jos pääset viimeiseen kysymykseen asti, voitkin saman tien hoitaa homman itse loppuun asti.

alker [07.07.2009 22:33:28]

#

Metabolix kirjoitti:

Onko ongelmasi sittenkin siinä, ettet saa HTML:llä ja CSS:llä asetettua asioita rinnakkain? Osaatko tehdä käsin sivun, joka näyttäisi oikealta? Jos osaat, millainen HTML-koodi siihen tarvitaan? Mikä sitten estää sijoittamasta sitä annettuihin koodiesimerkkeihin?

Jos pääset viimeiseen kysymykseen asti, voitkin saman tien hoitaa homman itse loppuun asti.

Yritin mutta ne 2 ensimäistä menevät ja loput ei. Voisiko joku auttaa lähettämällä css koodin?? id:eiden nimet ovat. file1,file2 ja file3

TeNDoLLA [07.07.2009 22:37:37]

#

Mitä jos vaikka näyttäisit sen sun yrityksen täällä ja katotaan mikä siinon vikana?

alker [07.07.2009 22:39:31]

#

Eli php ja html koodi on tämä

<html>
<head>
<title>Fin Web Design</title>
<link rel="stylesheet" type="text/css" href="tyyli.css">
</head>
<body>
<div id="sivu">
<div id="logo"><br><img src="logo.png"></div>
<div id="navi">
<a href="#">Etusivu</a> | <a href="#">Sivupohjat</a> | <a href="#">Kirjaudu</a> | <a href="#">Rekisteröidy</a> |<a href="#">Etsi</a>
</div>
<br>
<div id="sisalto">
<?php include("etusivu.txt"); ?>
<?php
include("yhdista.php");
$result = mysql_query("SELECT * FROM lataamo");
$i = 1;
while ($row = mysql_fetch_object($result))
{
    if ($i < 3)
    {
        echo '<div id="file',$i,'">&nbsp','<a href="file.php?id=',$row->id,'">',$row->nimi,'</a>';
        echo '<img width="200" height="200" src="',$row->kuva,'"></div>';
    }
    else
    {
      echo '<div id="file',$i,'">&nbsp','<a href="file.php?id=',$row->id,'">',$row->nimi,'</a><br>';
        echo '&nbsp;<img width="200" height="200"  src="',$row->kuva,'"></div>';
        $i = 0;
    }
    $i++;
}
?>
</div>
</div>
<div id="copy"><br>
&copy Fin Web Design
</div>
</body>
</html>

Ja css koodi on:

body {
font-family:"Georgia";
margin:0px;
height:100%;
}
#logo {
margin: 0 auto -2em;
width:100%;
height:195;
background-image:url("kuvat/tausta.png");
padding-left:opx;
float:left;
border-bottom:1px solid black;
}
#navi {
text-align:center;
color:white;
}
#navi a {
padding:10px;
color:white;
text-decoration:none;
}
#navi a:hover {
text-decoration:underline;
}
#copy {
margin-bottom:0px;
border-top:1px solid black;
text-align:center;
color:white;
background-image:url("kuvat/copy.png");
height:45px;
}
#sivu {
margin-right:auto;
margin-left:auto;
min-height: 100%;
height: auto !important;
height: 100%;
}
#sisalto {
padding:10px;
}
h1 {
border-bottom:1px solid black;
font-size:21px;
color:#32CD32;
}
#sivupohja0 {
margin-left:0px;
width:200px;
height:240px;
border:1px solid black;
}
#file1 {
margin-left:0px;
float: left;
width:200px;
height:240px;
border:1px solid black;
}
#file2 {
margin-left:212px;
float: left;
width:200px;
height:240px;
border:1px solid black;
}
#file3 {
margin-left:218px;
float: left;
width:200px;
height:240px;
border:1px solid black;
}

Teuro [07.07.2009 22:43:05]

#

alker kirjoitti:

Eli php ja html koodi on tämä

--
$result = mysql_query("SELECT * FROM lataamo");
$i = 1;
while ($row = mysql_fetch_object($result)){
    if ($i < 3){
--

Ongelma pelkistetty if-lauseen järjettömyyteen. $i on pienempi kuin 3 vain 2 ensimmäistä kierrosta.

[EDIT]Mode voisi siistiä tarpeetonta koodia pois...

alker [07.07.2009 22:46:57]

#

"Nyt ei puhuta tuosta vaan css koodista. Tuon voi muuttaa jos muuttaa $i muuttujan nollaksi (0)

Teuro [07.07.2009 22:50:51]

#

Tosiaan $i nollataan kierrosten lopussa. Mutta speksin mukaan id ei saa olla numeraali, jonka lisäksi id:n tulee olla yksiselitteinen tuossahan se ei edellä mainitusta syystä ole suinkaan yksiselitteinen, vaan sama id on monella elementillä. Miksei voisi laittaa noita tietoja taulukkoon? Tällöin metabolixin antama esimerkki toimisi aika hyvin?

alker [07.07.2009 22:56:51]

#

Teuro kirjoitti:

Tosiaan $i nollataan kierrosten lopussa. Mutta speksin mukaan id ei saa olla numeraali, jonka lisäksi id:n tulee olla yksiselitteinen tuossahan se ei edellä mainitusta syystä ole suinkaan yksiselitteinen, vaan sama id on monella elementillä. Miksei voisi laittaa noita tietoja taulukkoon? Tällöin metabolixin antama esimerkki toimisi aika hyvin?

Id on auto_i ja se on int niin miksi se ei saisi olla numeraali?

kayttaja-2499 [07.07.2009 22:58:09]

#

Teuro sekoilee jotain id:n kanssa, mutta oisko näin parempi?

<?php
$i = 1;
while ($row = mysql_fetch_object($result))
{
        echo '<div id="file',$i,'">&nbsp','<a href="file.php?id=',$row->id,'">',$row->nimi,'</a>';
        echo '<img width="200" height="200" src="',$row->kuva,'"></div>';
    if ($i == 3)
    {
      i = 0;
    }
    $i++;
}
?>
#file1 {
clear:both;
margin-left:0px;
float: left;
width:200px;
height:240px;
border:1px solid black;
}

CSS muutos on arvaus.

Teuro [07.07.2009 23:03:46]

#

alker kirjoitti:

Id on auto_i ja se on int niin miksi se ei saisi olla numeraali?

Haa aivan nyt tuo sun koodi alkaa aueta mulle. Kuitenkaan html-sivulla ei saa olla samalla id tunnisteella kuin yksi elementti nythän niitä on toisella kierroksella ainakin kaksi kertaa id="file1". Tuota tarkoitin noilla edellisillä viesteilläni.

kayttaja-2499 [07.07.2009 23:04:26]

#

<ot>
Voiko tuota oikolukua hieman optimoida että siitä tulis käytettävämpi?
</ot>

Edit. Teuro onkin jäljillä. Käytä luokkia id:n sijasta.

Teuro [07.07.2009 23:07:43]

#

kayttaja-2499 kirjoitti:

Edit. Teuro onkin jäljillä. Käytä luokkia id:n sijasta.

Kunhan saadaan kirjallinen ulosanti kuntoon, niin alkaa muutkin tajuamaan mun päähänpistoja.

alker [07.07.2009 23:16:12]

#

En tajunnut vieläkään. Mistä id:eestä puhutte. Ja haluaisin että tuossa olisi kolme fileä vierekkäin kuvan ja linkki nimen kanssa.

kayttaja-2499 [07.07.2009 23:17:51]

#

Puhuttiin div-tagin id attribuutista.

<?php
$i = 1;
while ($row = mysql_fetch_object($result))
{
        echo '<div class="file',$i,'">&nbsp','<a href="file.php?id=',$row->id,'">',$row->nimi,'</a>';
        echo '<img width="200" height="200" src="',$row->kuva,'"></div>';
    if ($i == 3)
    {
      i = 0;
    }
    $i++;
}
?>
.file1 {
clear:both;
margin-left:0px;
float: left;
width:200px;
height:240px;
border:1px solid black;
}

alker [07.07.2009 23:26:35]

#

Eli nyt tulee "portaat" noista tiedostoista. Mikä avuksi?

kayttaja-2499 [07.07.2009 23:33:26]

#

Onko pisteet ja risuaidat sekä luokat ja id:eet sekaisin?

#keimo {} -> <div id="keimo" />
.tunari {} -> <div class="tunari"/>

edit. Portaisiin tarviit CSS-gurun ohjeita.

alker [07.07.2009 23:34:31]

#

ei ole. css koodin mukaan ei ole
edit:CSS gurut auttakaa!

kayttaja-2499 [07.07.2009 23:50:24]

#

Toimiiko seuraava halutulla tavalla?

<html>
<head>
<style>
.t1 {
clear: both;
float: left;
}
.t2 {
float: left;
}
.t3 {
float: left;
}
</style>
</head>
<body>
<div class="t1"><a href="#">1</a><br/><img src="#" /></div>
<div class="t2"><a href="#">2</a><br/><img src="#" /></div>
<div class="t3"><a href="#">3</a><br/><img src="#" /></div>
<div class="t1"><a href="#">1</a><br/><img src="#" /></div>
<div class="t2"><a href="#">2</a><br/><img src="#" /></div>
<div class="t3"><a href="#">3</a><br/><img src="#" /></div>
</body>
</html>

Metabolix [08.07.2009 09:27:56]

#

Kuten Teuro sanoi, id on aina yksiselitteinen. Siispä file1:stä voi olla sivulla tasan yksi, mutta tuo koodi tulostaa niitä vaikka kuinka monta. Muuta id:t classeiksi, kuten kayttaja-2499 yllä ehdottaa.

alker [08.07.2009 10:30:06]

#

kayttaja-2499 kirjoitti:

Toimiiko seuraava halutulla tavalla?

Tuo toimi. Kiitos


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta