Avatar billede thomasfricke Juniormester
02. juli 2006 - 00:59 Der er 26 kommentarer og
1 løsning

Hjælp til telefon liste

Hej alle sammen...

Jeg vil lave en telefon liste, ud fra en database...
Ved ikke helt hvilke oplysninger jeg skal give, men skriv så kan vi jo altid hjælpes om problemmmet...

På forhånd tak !!!

Som skal vises således...

---------------------------------------------------------------
| Tekst: Telefonliste                                          |
---------------------------------------------------------------
| Fornavn + Efternavn        | Tele. nr.      | mobil nr.      |
---------------------------------------------------------------
| Fornavn + Efternavn        | Tele. nr.      | mobil nr.      |
---------------------------------------------------------------
| Fornavn + Efternavn        | Tele. nr.      | mobil nr.      |
---------------------------------------------------------------

Osv...

Mit største problem er, at få fornavn og efternavn ind og stå i en ramme i en tabel...
Avatar billede leif Seniormester
02. juli 2006 - 01:05 #1
Lad os sige at du henter dine felter ud i en variabel som hedder $row

Kunne man gøre:

$navn = $row[fornavn] . " " . $row[efternavn];

echo $navn;

eller bare:

echo $row[fornavn] . " " . $row[efternavn];
Avatar billede thomasfricke Juniormester
02. juli 2006 - 01:05 #2
Således er den nu...

    while ($get_info = mysql_fetch_row($result)){
    print "<tr>\n";
    foreach ($get_info as $field)
    print "\t<td><font face=arial size=1/>$field</font></td>\n";
    print "</tr>\n";
Avatar billede leif Seniormester
02. juli 2006 - 01:07 #3
Ja, og hvad ligger der i $field ?
Avatar billede thomasfricke Juniormester
02. juli 2006 - 01:08 #4
$connection = mysql_connect('localhost', $db_user, $db_pass) or die(mysql_error());

    $link = mysql_connect('localhost', $db_user, $db_pass);
    if (!link)
    die("Couldn't cennect to MySQL");
    mysql_select_db($db_name, $link) or die(mysql_error());
    $result = mysql_query("SELECT fornavn, efternavn FROM medarbejder") or die("SELECT Error: ".mysql_error());
    $num_rows = mysql_num_rows($result);
    print "Der er $num_rows på telefonlisten.<P>";
    print "<table width=100% border=1>\n";
    print "<tr><td><font>Navn</font></td><td><font>Telefon Nr.</font></td><td><font>Mobil Nr.</font></td></tr>";
    while ($get_info = mysql_fetch_row($result)){
    print "<tr>\n";
    foreach ($get_info as $field)
    print "\t<td><font face=arial size=1/>$field['efternavn']</font></td>\n";
    print "</tr>\n";
    }
    print "</table>\n";
    mysql_close($link);
?>
Avatar billede leif Seniormester
02. juli 2006 - 01:12 #5
print "\t<td><font face=arial size=1/>$field['efternavn'] $field['fornavn']</font></td>\n";


Kunne være et bud
Avatar billede leif Seniormester
02. juli 2006 - 01:13 #6
Byt selv lige om på efternavn og fornavn
Avatar billede thomasfricke Juniormester
02. juli 2006 - 01:20 #7
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /customers/tbf-web.dk/tbf-web.dk/httpd.www/telefon_liste2.php on line 19

Line 19  =     print "\t<td><font face=arial size=1/>$field['fornavn'] $field['efternavn']</font></td>\n";
Avatar billede thomasfricke Juniormester
02. juli 2006 - 01:26 #8
Det er dette den ikke kan lide = $field['et eller andet']
Hvor den acceptere = $field
Avatar billede pidgeot Nybegynder
02. juli 2006 - 01:26 #9
Leif, du har fejllæst koden, tror jeg - han benytter en foreach til at skrive de enkelte felter ud med, så $field er blot indholdet af feltet.

Det er snarere det her du skal bruge, hvis du virkelig skal have den foreach:

while ($get_info = mysql_fetch_row($result)){
    print "<tr>\n";
    foreach ($get_info as $key => $field)
        if ($key!='fornavn' && $key!='efternavn')
            print "\t<td><font face=arial size=1/>$field</font></td>\n";
        else if ($key=='fornavn')
            print "\t<td><font face=arial size=1/>$get_info[fornavn] $get_info[efternavn]</font></td>\n";
    print "</tr>\n";

Alternativet er SELV at lave udskriften uden en foreach til at gå igennem felterne.
Avatar billede thomasfricke Juniormester
02. juli 2006 - 01:32 #10
Din kode fungere ikke...

Efternavn kommer i anden TD, og fornavnet er slet ikke med... Plus, at mobilnummer kommer i fjerde TD som jeg ikke har tilføjet...

Kun her = $result = mysql_query("SELECT fornavn, efternavn, telefon, mobil FROM medarbejder") or die("SELECT Error: ".mysql_error());
Avatar billede pidgeot Nybegynder
02. juli 2006 - 01:33 #11
Grunden til den giver den fejl er fordi der er quoted et feltnavn inde i en streng - det må man ikke, så skal man enten pakke variabelhenvisningen ind i {} eller undlade at quote (selvom det er god kodestil at gøre det ellers).
Avatar billede pidgeot Nybegynder
02. juli 2006 - 01:35 #12
Har du taget det med PRÆCIST som skrevet? Det der bør nemlig skrive fornavn og efternavn i samme <td>.

Har du evt. et link til siden?
Avatar billede thomasfricke Juniormester
02. juli 2006 - 01:35 #13
Kunne du ikke lave den korrekt hvis jeg sender den kode jeg har ?
Avatar billede thomasfricke Juniormester
02. juli 2006 - 01:36 #14
<?php
    $db_user = '***';
    $db_pass = '***';
    $db_name = '***';
    $connection = mysql_connect('localhost', $db_user, $db_pass) or die(mysql_error());

    $link = mysql_connect('localhost', $db_user, $db_pass);
    if (!link)
    die("Couldn't cennect to MySQL");
    mysql_select_db($db_name, $link) or die(mysql_error());
    $result = mysql_query("SELECT fornavn, efternavn, telefon, mobil FROM medarbejder") or die("SELECT Error: ".mysql_error());
    $num_rows = mysql_num_rows($result);
    print "Der er $num_rows på telefonlisten.<P>";
    print "<table width=100% border=1>\n";
    print "<tr><td><font>Navn</font></td><td><font>Telefon Nr.</font></td><td><font>Mobil Nr.</font></td></tr>";
    while ($get_info = mysql_fetch_row($result)){
    print "<tr>\n";
    foreach ($get_info as $key => $field)
        if ($key!='fornavn' && $key!='efternavn')
            print "\t<td><font face=arial size=1/>$field</font></td>\n";
        else if ($key=='fornavn')
            print "\t<td><font face=arial size=1/>$get_info[fornavn] $get_info[efternavn]</font></td>\n";
    print "</tr>\n";
    }
    print "</table>\n";
    mysql_close($link);
?>
Avatar billede pidgeot Nybegynder
02. juli 2006 - 01:40 #15
Jo, det kunne jeg sikkert nok, men jeg ser ingen grund til det. Hvis det absolut er et krav at du bruger en foreach i stedet for at gøre det manuelt, kan jeg ikke se hvorfor mit fejler - og hvis det ikke er et krav, bør du nok selv kunne skrive det korrekt.
Avatar billede thomasfricke Juniormester
02. juli 2006 - 01:46 #16
Okay, men jeg forstår ikke, hvordan jeg skal gøre det... Tror lige jeg bør nævne, at jeg ikke er god til dette... Ber dig, hjælp mig...
Avatar billede pidgeot Nybegynder
02. juli 2006 - 01:51 #17
I stedet for den foreach skriver du følgende linie:

echo '<td>'.$get_info['fornavn'].' '.$get_info['efternavn'].'</td><td>'.$get_info['telefon'].'</td><td>'.$get_info['mobil'].'</td>

...og hvis du ikke forstår hvad den linie gør, bør du overveje at læse mere op på sproget inden jeg laver mere, specifikt om arrays.
Avatar billede pidgeot Nybegynder
02. juli 2006 - 02:14 #18
"inden du laver mere", skulle der selvfølgelig stå >.<
Avatar billede zynzz Praktikant
02. juli 2006 - 08:55 #19
<table border="1" width="100%">
  <tr>
    <td width="33%">Fornavn + Efternavn</td>
    <td width="33%">Tele nr.</td>
    <td width="34%">Mobil nr.</td>
  </tr>
</table>
<?
$result = mysql_query("SELECT * FROM medarbejder");
while($get_info = mysql_fetch_array($result)) { ?>
<table border="1" width="100%">
  <tr>
    <td width="33%"><? echo $get_info[fornavn]; ?> <? echo $get_info[efternavn]; ?></td>
    <td width="33%"><? echo $get_info[telefon]; ?></td>
    <td width="34%"><? echo $get_info[mobil]; ?></td>
  </tr>
</table>
<?
}
?>
Avatar billede thomasfricke Juniormester
02. juli 2006 - 10:37 #20
'Kigger på det senere i aften, men takker end til videre...
Avatar billede thomasfricke Juniormester
02. juli 2006 - 10:50 #21
Virker perfekt, så lige et hurtigt spørgsmål. Hvad gør man, hvis de skal stå i alfabetisk orden ???
Avatar billede thomasfricke Juniormester
02. juli 2006 - 10:52 #22
Dog laver den mange tabeller, men det kan rettes.... :P
Avatar billede leif Seniormester
02. juli 2006 - 11:33 #23
$result = mysql_query("SELECT * FROM medarbejder");

til

$result = mysql_query("SELECT * FROM medarbejder ORDER BY fornavn");
Avatar billede zynzz Praktikant
02. juli 2006 - 17:36 #24
Hvilken en virkede ?
Avatar billede thomasfricke Juniormester
09. juli 2006 - 09:34 #25
Zynzz Læg et svar...
Avatar billede zynzz Praktikant
09. juli 2006 - 21:15 #26
Her :)
Avatar billede zynzz Praktikant
09. juli 2006 - 21:15 #27
amen glemte da trykke på svar ;O
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester