Gå til innhold

sql-tabeller, spørring, php


Anbefalte innlegg

Jeg holder på å prøver å kode en side med litt sql spørringer. (php)

Hvor jeg sitter litt fast.

 

Jeg har en sql-tabell med navn, adresser osv på forskjellige ting.

Og det jeg lurte på er om det går an å lage en liste over bare navna fra denne sql-tabellen, og ha muligheten til å trykke på disse navna, for så å få opp resten av infoen som hører til dette navnet. ?

Lenke til kommentar
Videoannonse
Annonse

Ja, det er helt mulig. Det er også veldig simpelt, og noe av det første du lærer deg om du leser litt om PHP med mySQL, eventuelt vil de fleste bøker og/eller tutorials ta for seg dette.

 

Uansett vil jeg anbefale deg å spøre å lære deg å gå et steg om gangen før du prøver å ta deg en joggetur. Sett deg ned å lær deg de viktigste basicene, og gjør oppgaver fra f.eks. bøker - og så kan du prøve deg på egne prosjekter når i hvertfall de viktigste tingene sitter.

Lenke til kommentar

w3Schools er ikke en god plass å begynne om du er ny i programmering egentlig. For folk som kan programmere og bare vil ha en rask og enkel introduksjon er den siden veldig bra. Den er også veldig bra for folk som egentlig kan php og mysql og bare ikke husker noe spesifikt, og så gjøre oppslag på den siden. Vil anbefale deg å finne en litt mer grundigere guide beregnet for nybegynnere.

 

Videre er det du spør om egentlig noe av det første du skal lære - og om vi bare gjør det for deg kommer du til å lære nesten ingenting, med mindre vi skriver en god og lang forklaring på hvorfor vi gjør det på den måten vi gjør det, og hvordan du skal tenke for å komme frem til løsningen. Men akkurat dette får du av andre av mange gode bøker om temaet.

 

Jeg vil veldig anbefale denne boken: http://www.amazon.com/Learning-PHP-MySQL-JavaScript-Step-By-Step/dp/0596157134/ref=sr_1_1?ie=UTF8&qid=1344367186&sr=8-1&keywords=php+mysql

 

Tar for seg temaene på et lettvint og grundig måte med masse gode eksempler. Den kommer og hele tiden med små oppgaver etter den tar for seg noe nytt slik at du må tenke litt over det du har lært og faktisk gjøre noe selv (på den måten lærer du mer)

Lenke til kommentar

Bare husk at du i tillegg til å lese må jobbe litt selv med de temaene du lærer om, og så kan du jo spørre om du sitter fast med noe spesifikt så kan vi hjelpe deg - gjerne og om du skriver noe kode som du ikke får til å fungere ordentlig, da kan vi hjelpe deg å se over koden og forklare hva du gjør feil.

 

Lykke til uansett, og husk, programmering er vanskelig men VELDIG morro. :)

Lenke til kommentar

Enig det Magnusalex. Men flere som ikke ønsker at nøyaktig sitt prosjekt / sin source skal ligge her. Derfor kan man heller gå gjennom sourcen i sitt ferdige prosjekt og endre verdier, ekstra comments etc, slik at det blir mer forståelig for alle andre, samt at man får skjult sitt prosjekt om det er ønskelig :)

Lenke til kommentar

Anbefaler deg å bruke jQuery jeg...

 

Først litt css for å gjemme tilleggs info:

<style>
 .toggle_handler:hover { cursor:pointer; }
 .toggle_content { display:none; }
</style>

 

Start med en vanlig PHP sql-query:

<?php
/*  plasseres øverst i dokumentet ditt  */
 $sql = 'SELECT * FROM tbl_name';
 $qry = mysql_query($sql);
?>

 

Skriv ut resultat der du ønsker at det skal vises på siden din:

<?php  while($get = mysql_fetch_assoc($qry)): extract($get);  ?>
 <article class="each-name">
<h3 class="toggle_handler"><?=$name?></h3>
<div class="toggle_content">
  <?=$column_2?><br>
  <?=$column_3?><br>
  <?=$column_4?>
</div>
<?php  endwhile;  ?>

 

Legg til litt javascript for å skule/vise tillegs info:

<script>
$(function(){
 $('.toggle_handler').click(function(){
   $('.toggle_content').first().slideToggle('slow');
 });
});
</script>

 

OBS! jeg har IKKE testet dette oppsettet. Kun skrevet det ned fortløpende her. Men gangen i prosessen skal være korrekt.

Lenke til kommentar
  • 2 uker senere...

<style>
 .toggle_handler:hover { cursor:pointer; }
 .toggle_content { display:none; }
</style>
<?php
/*  plasseres øverst i dokumentet ditt  */
$connection = mysql_connect('localhost','username','password') or die ("Couldn't connect to server."); 
$db = mysql_select_db('database', $connection) or die ("Couldn't select database."); 
 $sql = 'SELECT * FROM kunder';
 $qry = mysql_query($sql) or die("Couldn't execute query. ". mysql_error());
?>
<?php  while($get = mysql_fetch_assoc($qry)): extract($get);  ?>
 <article class="each-name">
    <h3 class="toggle_handler"><?=$felt1?></h3>
    <div class="toggle_content">
	  <?=$felt2?><br>
	  <?=$felt3?><br>
	  <?=$felt4?>
    </div>
<?php  endwhile;  ?>
<script>
$(function(){
 $('.toggle_handler').click(function(){
   $('.toggle_content').first().slideToggle('slow');
 });
});
</script>

 

Prøvde med denne..., får opp $felt1, men skjer ikke noe når jeg trykker på den.

Lenke til kommentar

Ved å legge inn link til jquery.js fila, fikk jeg opp $felt2 -> $felt4 når jeg trykker på det øverste jeg får opp fra $felt1. Men får ikke opp noe fra di andre. Noen god ide ?

 

Alle må ha en unik ID.

 

Eksempel:

<script type="text/javascript" src="/public/scripts/min/jquery-1.7.2.min.js"></script>
<style>
.toggle_handler:hover { cursor:pointer; }
.toggle_content { display:none; }
</style>
<article class="each-name">
<h3 class="toggle_handler" id="11">1111111111111111</h3>
<div class="toggle_content" id="12">
	1111111111111111111111111
</div>
</article>
<article class="each-name">
<h3 class="toggle_handler" id="21">222222222222222222</h3>
<div class="toggle_content" id="22">
	222222222222222222222
</div>
</article>
<article class="each-name">
<h3 class="toggle_handler" id="31">3333333</h3>
<div class="toggle_content" id="32">
	333333333333333
</div>
</article>
<script>
/**
 * h3 - id på h3 (toggle_handler)
 * div - id på div (toggle_content)
 */
$.sh = function(h3, div) {
	var handler = '#' + h3;
	var content = '#' + div;
	$(handler).click(function() {
		$(content).first().slideToggle('slow');
	});
}
$(document).ready(function() {
	$.sh(11, 12);
	$.sh(21, 22);
	$.sh(31, 32);
});
</script>

Lenke til kommentar

Med jQuery trenger man ikke nødvendigvis henge seg opp i unike ID'er.

Sjekk ut dette:

 

JS:jQuery

$(function(){
$('.toggle_handler').click(function(){
  $(this).next().slideToggle('slow');
});
});

 

Hvis det skjulte elementet kommer fortløpende etter .toggle_handler, så kan man benytte next() http://api.jquery.com/next/

Det kan være hvilket som helst element, uavhengig av id- og klassenavn etc.

 

Ser nå at eneste forskjellen fra min tidligere post er at jeg har byttet ut first() med next().

Men denne gangen har jeg testet og sett at det fungerer.

Her kan du se at det funker: http://jsfiddle.net/ByHA7/

Endret av Yawa
Lenke til kommentar

Med denne koden har jeg fått alt til å fungere som jeg vil

Takk for all hjelp :green:

 

<script type="text/javascript" src="jquery.js"></script>
<script src="show-hide.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" media="screen" href="style.css" />
<?php
/*  plasseres øverst i dokumentet ditt  */
$connection = mysql_connect('localhost','username','password') or die ("Couldn't connect to server.");
$db = mysql_select_db('database', $connection) or die ("Couldn't select database.");
 $sql = 'SELECT * FROM Kunder';
 $qry = mysql_query($sql) or die("Couldn't execute query. ". mysql_error());
?>
<div class="firma">
<?php  while($get = mysql_fetch_assoc($qry)): extract($get);  ?>
	  <h3 class="toggle_handler"><?=$firm?></h3>
	<div>
	  <?=$orgnr?><br>
	  <?=$contact?><br>
	  <?=$adress?><br>
	  <?=$postadr?><br>
	  <?=$telefon?><br>
	  <?=$epost?>
	</div>
<?php  endwhile;  ?>
</div>
<script>
$(function(){
 $('.toggle_handler').click(function(){
$('.toggle_content').first().slideToggle('slow');
 });
});
</script>

show-hide.js:

$(document).ready(function() {
 $('div.firma:eq(0)> div').hide();
 $('div.firma:eq(0)> h3').click(function() {
$(this).next().slideToggle('fast');
 });
});

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...