webForumDet fria alternativet

php-mysql hämta enstaka poster från databas

PHP

3 svar · 753 visningar · startad av t.sjogren

Medlem sedan aug. 200710 inlägg
Frågan#1

Hej

Här kommer en väldigt basic fråga.

Jag har en mysql databas med ett antal personer i. Varje person har ett antal personliga uppgifter.

Dessa personliga uppgifter vill jag publicera på varje persons "egna" sida.
Ej redigerbart eller något. Endast infon.

Ex på databasinnehåll:
Förnamn, Efternamn, Adress, telefon, mail
Kalle, Kodare, regnvägen 1, 000-666, kalle@kod.se

Ex på Kalles sida:
Namn: Kalle Kodare
Telefon: 000-666

Hur gör jag detta på lättast sätt.

Var snälla att beskriva någorlunda utförligt. Jag är ganska ny på mysql-php.

Tack på förhand

Medlem sedan juni 20006 031 inlägg
#2

Välkommen till wF.
Vet inte hur mycket php du kan så jag skrev en del kommentarer till koden

<?php 
// Ändra till dina inställningar
$mysql_server = "localhost";		// server
$mysql_user = "sjogren";			// mysql användarnamn 
$mysql_password = "hemligt";		// mysql lösenord
$mysql_database = "min_databas";	// mysql databasnamn

// Anslut till databasen
$conn = @mysql_connect($mysql_server, $mysql_user, $mysql_password) or die("Kunde inte ansluta till databasen"); 
mysql_select_db($mysql_database, $conn);

// Vems information ska du hämta?
// Hämta idnummret från $_POST, $_GET eller en $_SESSION variabel
// Här hårdkodar vi att du ska hämta info för den som har idnummer 5 istället för att kontrollera variabeln.
$id = 5;

// Hämta information om användaren
// Vi hämtar namn, yrke och telefon
$result = mysql_query("SELECT namn, yrke, telefon FROM tabellnamn WHERE id = \"".$id."\"") or die("Kunde inte hämta info.");
$cur_user = mysql_fetch_assoc($result);

// Presentera resultatet
echo $cur_user['namn'] . ' ' . $cur_user['yrke'] . '<br />';
echo 'Telefon: ' . $cur_user['telefon'];
?>
Medlem sedan aug. 200710 inlägg
#3

Tack för ditt svar Pedda.

Jag har testat och det funkade perfekt!
Skall använda denna lösningen.

Innan jag fick svaret så testade jag lite själv. Då gjorde jag såhär:
<?php
// ansluter till databasen
$opendb = mysql_connect("localhost", "doglegtravels_s", "lösen") or die(mysql_error());
mysql_select_db("doglegtravels_s") or die(mysql_error());

//TS samla in poster för en spelare
$person = mysql_query("SELECT * FROM profiler WHERE efternamn='Ahl'") or die(mysql_error());
$enrad = mysql_fetch_array( $person );
?>

<p><strong>Förnamn: </strong><?php echo $enrad['fornamn'] ?></p>
<p><strong>Mail: </strong><a href="mailto: <?php echo $enrad['mail'] ?>"><?php echo $enrad['mail'] ?></a></p>

<?php
// stänger databasen
mysql_close($opendb);
?>

Det funkade ju också, men din lösning känns renare.

Tack för denna gången.

Medlem sedan juni 20006 031 inlägg
#4

Det är bättre att använda mysql_fetch_assoc() när du bara ska ha uppgifter från en post i databasen.

Om du till exempel ska lista alla profiler som har efternamn='Ahl' för att loopa ut dom i en lista t.ex så är det bättre att använda mysql_fetch_array() eftersom du då får alla träffar i en array.

266 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)