Gå til innhold

sql-tabeller, spørring, php


Anbefalte innlegg

Skrevet

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

Videoannonse
Annonse
Skrevet

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.

Skrevet

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)

Skrevet

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

Skrevet

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 :)

Skrevet

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.

  • 2 uker senere...
Skrevet

Boka er kommet i hus., så leser for harde livet...

Men har ikke lært noe om dette enda. Men tenkte jeg skulle prøve den koden over. Viss jeg forstår den... :tease:

Skrevet

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

Skrevet

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 ?

Skrevet

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>

Skrevet (endret)

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
Skrevet

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');
 });
});

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