ugrás a tartalomhoz

Telefonszám bekérése és megjelenítése

morathz · 2005. Aug. 17. (Sze), 18.43
Segítsen nekem valaki !
Létrehoztam egy msql táblát, amelyben többek közt telefonszámot is eltárolok.
A mező tipusa: varchar(11)
Az msql be rendessen feltöltődik a telefonszám, de a megjelenítésnél nem jelenik meg?

<?php
$parancs= "SELECT * FROM hirdetesek ORDER BY gyartmany";
$eredmeny= mysql_query($parancs);

$szin= "lightgrey";
while($sor= mysql_fetch_array($eredmeny)){
if ($szin=="lightgrey"){
$szin= "white";
}
else{
$szin = "lightgrey";
}
?>
<tr bgcolor="<?= $szin ?>" font size="1">
<td><font color="white" size=1><CENTER>Telefon</CENTER></font></td>
</tr><tr>
<td><CENTER><font size=1><?=$sor ["telefon"]?></CENTER></font></td>
Nem tudjátok, hogy mi lehet a probléma ?

A másik kérdésem, hogy hogyan lehet formázni pld. a telefonszát hogy az egyformán jelenjen meg, illetve hogy már az inputnál formázva vihesse fel a helhasználó!

Köszönöm a segítségeteket !
 
1

Némi strukturálás

janoszen · 2005. Aug. 17. (Sze), 19.08
Üdv!

Több rendbéli hozzászólásom is lenne a témádhoz.

Elsősorban az, hogy használj xHTML 1.0-t és CSS-t, mert nagyban megkönnyítik a kód írását.

A második, az én megoldásom. Csak fejből írtam, szóval nem biztos, hogy hibamentes, de azért igyekeztem:

<table class="teltable">
 <thead>
  <tr>
   <th>Telefonszám</th>
  </tr>
 </thead>
 <tbody>
<?php
 $even=false;
 $r = mysql_query("SELECT telefon FROM hirdetesek ORDER BY gyartmany");
 while ($a=mysql_fetch_array($r))
 {
?>
  <tr<?php
if ($even)
{
 echo(' class="even"');
 $even = false;
} else {
 echo(' class="odd"');
 $even = true;
}
?>>
   <td><?php echo($a['telefon']); ?></td>
  </tr>
<?php
 }
?>
 </tbody>
</table>


Ha nem müködik, érdemes kiíratani debugként a mysql_error()-t.

3. telefonszám formázása: szerintem, érdemes a telefonszámokat nemzetközi formátumban és szóközök nélkül eltárolni. Tehát így: +3612345678 Így később nem kell a bővítéssel bajlódnod.

A bekérésnél annyit kell tenned, hogy külön input-mezőket csinálsz az országkódnak és a körzetszámnak. Ezek hosszát ellenőrzöd és kiszűröd belőle a szóközöket és egyéb karaktereket. Ezek után könnyű formázni a telefonszámokat a kimeneten.

A második, kevésbé elegáns és felhasználóbarát megoldás, hogy az input-mező hosszát limitálod 8 karakterre. Ebbe minden magyarországi telefonszámot be lehet írni körzetszámmal. De ezt nem javaslom, mert bekorlátozod a felhasználót.

Azért is érdemesebb az első megoldást választani, mert ekkor kevésbé valószínű, hogy egy felhasználó elfelejti kitölteni a körzetszámot.

Azt is ajánlom figyelmedbe, hogy ha adatokat szeretnél gyűjteni a felhasználóktól, akkor magyar jogszabályok szerint - ha jól tudom - adatvédelmi nyilatkozatot kell írnod. Erre ügyelj, mert különben mindenféle zűrökbe keveredhetsz.

Üdv

ProClub
2

Némi további strukturálás

Anonymous · 2005. Aug. 17. (Sze), 23.55
Rettenetesen csúnya a kódod. Manapság már nem szokás a HTML tag-ek nyitó és záró kacsacsőrei közé php programot írni.

<?php
// programkód
$output=array();
$r = mysql_query("SELECT telefon FROM hirdetesek ORDER BY gyartmany");
$i=0;
while ($a=mysql_fetch_array($r))
{
	$class=($i%2)?'egyik':'masik';
	$output[]='<tr class="'.$class.'"><td>'.$a['telefon'].'</td></tr>';
	$i++;
}
?>
<!-- template -->
<table class="teltable">
 <thead>
  <tr>
   <th>Telefonszám</th>
  </tr>
 </thead>
 <tbody>
<?echo join("\n",$output)?>
 </tbody>
</table>
Természetesen ez sem a tökély, de így már akár egy egyszerű template rendszerként is felfogható... :)

Gyulus