Gå til innhold

[Løst]php - sette resultat inn i tabell - fjerne de første feltene


Anbefalte innlegg

Hei

 

Trenger hjelp med å få resultatet av følgende kode inn i en tabell.

 

Hver linje i test.txt inneholder følgende:

kode::dato::navn::adresse::telefon

 

I koden under søker jeg opp linjene med kode 301 og skal vise resultatet i en tabell hvor navn, adresse og telefon skal inn i hvert sitt felt:

 

Navn______________________Adresse_______________Telefon

Karl Hansen_______________Grefsenveien 6________63927288

 

De to første feltene skal ikke være med i tabellen (kode og dato).

 

<html>
<body>
<h5>Liste 301</h5> <br></br>
<?php
$fil = fopen("/home/www/test.txt", "r");
while (!feof($fil)) {
$line = fgets($fil);
if(preg_match('~^301::~', $line))
{
echo "<tr><td>$line</td></tr>";
}
}
fclose($fil);
?>
</html>
</body>

 

Hva må legges til for å få til dette?

Lenke til kommentar
Videoannonse
Annonse

Nå har ikke jeg testet denne koden, men jeg ville gjort noe som likner på dette

 

<?php
$filnavn = 'listefil.txt';
$kode = 301; //Oppføringer med denne koden skal vises.
$avgrenser = '::'; //Dette er tegnet/tegnene som avgrenser felt.

$struktur = array('kode', 'dato', 'navn', 'adresse', 'telefon'); //Dette er strukturen på linjen

$navnebase = file($filnavn); //Åpne filen og lese inn hver linje som en oppføring i en matrise

//Sjekk at vi kunne åpne filen uten problemer.
if(!$navnebase)
die('Kan ikke åpne filen.');

//Gå igjenom hver linje i basen
foreach($navnebase as $linje)
{
$felt = explode($avgrenser, $navnebase); //Del opp linjen i felt
if($felt[0]=$kode) //Sjekk om denne linjen skal være med i resultatet.
{
	$resultat[]=array_combine($struktur, $felt); //Smelt sammen struktur og verdier for å holde orden /*Finn ut hvilken funksjon som gjør en matrise til nøkler og en matrise til verdier*/
}
}


//Skrive ut resultatet
if(count($resultat)!==0)
{
foreach($resultat as $linje)
{
	echo "{$linje['navn']}, {$linje['adresse']}, {$linje['telefon']}<br/>";	
}
}
else
{
echo "Det finnes ingen oppføringer med kode '$kode'<br/>";
}
?>

 

...eller det vil si, jeg ville brukt en SQL-database da denne fremgangsmåten ikke egner seg med større mengder data, men for et par hundrede oppføringer og ikke alt for mange oppslag i timen så bør det virke rimelig greit.

 

Hadde dette vært en database så hadde du sluppet unna med koden:

 

<?php
//Koble til databasen
$vert = 'localhost';
$bruker = 'db_username';
$passord = 'db_password';
$database = 'database';
$db = mysql_connect($vert, $bruker, $passord);
mysql_select_db($database); //Velg riktig database

$kode = 301;

//Det er en fordel å legge en spørring i en egen variabel da man enklere kan feilsøke spørringen ved å skrive ut innholdet i variabelen og faktisk se hva som blir sendt til databasen.
//Dette er spesielt hendig når det er flere variabler inne i bildet. Det er enklere å se en manglende verdi fremfor en stavefeil i en variabel o.l.
$sporring = "SELECT navn,adresse,telefon FROM brukertabell WHERE kode=$kode";

$resultat=mysql_query($query) or die(mysql_error());

//Skrive ut resultatet
if(!$resultat)
{
while($linje = mysql_fetch_assoc($resultat))
{
	echo "{$linje['navn']}, {$linje['adresse']}, {$linje['telefon']}<br/>";	
}
}
else
{
echo "Det finnes ingen oppføringer med kode '$kode'<br/>";
}
?>

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...