howieD Skrevet 10. juni 2009 Del Skrevet 10. juni 2009 (endret) Hei, Jeg sliter med å finne en metode for å kunne oppdatere en verdi i mysql ved å klikke på en knapp e.l. Det jeg mener mer detaljert er at jeg har php kode som henter ut alle rader i en kamptabell. Tabellen består av: dato, tidspunkt, hjemmelag bortelag, status. Status er default tekst: "nei", og denne verdien trenger jeg å endre til "ja" ved at man bare trykker på en knapp eller lignende. Jeg bruker følgende kode for å printe ut tabellen på skjerM. $print = "SELECT * FROM kamp"; $resultat = mysql_query($print); echo "<table border=1>"; while( $rad = mysql_fetch_row($resultat) ) { echo "<tr>"; echo "<td>"; echo "Kampdato: " . $rad[0]; echo "</td>"; echo "<td>"; echo "Kampstart: " . $rad[1]; echo "</td>"; echo "<td>"; echo "Hjemmelag: " . $rad[2]; echo "</td>"; echo "<td>"; echo "Bortelag: " . $rad[3]; echo "</td>"; echo "<td>"; echo "Avsluttet: " . $rad[4]; echo "</td>"; echo "</tr>"; } echo "</table>"; Hvordan kan jeg da ved et enkelt klikk klare å identifisere en enkelt kamp med riktig status, og deretter få oppdatert verdien til "ja" i mysql? Noen som har vært borti noe lignende?? Håper på svar Endret 10. juni 2009 av Haavard82 Lenke til kommentar
[kami] Skrevet 10. juni 2009 Del Skrevet 10. juni 2009 (endret) du bør ha et id felt (primary key) i tabellen din. deretter kan du lage en link som man kan trykke på.. <a href="edit.php?id=$row['id']"> så i edit.php så har du if (isset($_GET['id'])) { $_GET['id'] = mysql_real_escape_string($_GET['id']); $resultat = mysql_query("SELECT * from kamp where id=" . $_GET['id']); // evt $resultat = mysql_query("UPDATE kamp set status ='ja' where id=" . $_GET['id']); } for å legge til id felt: alter table kamp add id int(11) PRIMARY KEY AUTO_INCREMENT; ## dobbelpost slått sammen av ilpostino ## Endret 11. juni 2009 av ilpostino Lenke til kommentar
howieD Skrevet 10. juni 2009 Forfatter Del Skrevet 10. juni 2009 du bør ha et id felt (primary key) i tabellen din. deretter kan du lage en link som man kan trykke på.. <a href="edit.php?id=$row['id']"> så i edit.php så har du if (isset($_GET['id'])) { $_GET['id'] = mysql_real_escape_string($_GET['id']); $resultat = mysql_query("SELECT * from kamp where id=" . $_GET['id']); // evt $resultat = mysql_query("UPDATE kamp set status ='ja' where id=" . $_GET['id']); } Jeg har dato og tidspunkt som primary keys. er det ikke mulig å bruke $row['0']$row['1'] som verdi også? Jeg tillater ikke registrering av flere kamper på samme dato og tidspunkt nemlig. Men om det ikke er mulig å joine de to verdiene til en fellesstring så kan jeg godt gjøre det du sier. Takk for svaret jeg skal teste ut dette nå i løpet av kort tid. Lenke til kommentar
[kami] Skrevet 10. juni 2009 Del Skrevet 10. juni 2009 jo, om du allerede har en PK kan du fint bruke den.. da bare bygger du opp linken slik <ahref="edit.php?dato=132&tid=123"> også sjekker du på $_GET['data'] og $_GET['tid'] istede. jeg vil også sterkt anbefale og ikke select *, men heller select a,b,c,d from kamp. det kan virke tungvindt nå, men er en kjempebra vane å bare selecte det man faktisk trenger. feks, hva tror du skjer om du rebygger databasen og feltene dine ikke ligger i samme rekkefølge lenger? Lenke til kommentar
howieD Skrevet 10. juni 2009 Forfatter Del Skrevet 10. juni 2009 jo, om du allerede har en PK kan du fint bruke den.. da bare bygger du opp linken slik <ahref="edit.php?dato=132&tid=123"> også sjekker du på $_GET['data'] og $_GET['tid'] istede. jeg vil også sterkt anbefale og ikke select *, men heller select a,b,c,d from kamp. det kan virke tungvindt nå, men er en kjempebra vane å bare selecte det man faktisk trenger. feks, hva tror du skjer om du rebygger databasen og feltene dine ikke ligger i samme rekkefølge lenger? Da har jeg prøvd det ut. Dette fungerer utmerket. Jeg hadde helt glemt den teknikken med GET. I mitt hodet var det bare mulig med GET om man brukte det i forms. Jeg kan skylde på eksamenslesinga at det går litt i surr. hehe... Enig i det du sier med * vs. nødvendige elementer. Skal endre dette nå straks. Skal vise deg all koden slik at evt. du eller andre kan ha nytte av det Skal me sjåååå Lenke til kommentar
howieD Skrevet 10. juni 2009 Forfatter Del Skrevet 10. juni 2009 (endret) Her er påmeldingsskjemaet mitt. Javascriptet er en liten kalender som man kan velge datoen fra. Da funker hvertfall skjemaet omtrent slik jeg ser for meg at det skal bli. Takk så masse for hjelpen!! Det hjalp utrolig mye! Nedenfor er både snapshot av databasen, samt kode av skjemaet. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML> <HEAD> <TITLE>Velkommen!</TITLE> <script language="javascript" src="cal2.js"> /* Xin's Popup calendar script- Xin Yang (http://www.yxscripts.com/) Script featured on/available at http://www.dynamicdrive.com/ This notice must stay intact for use */ </script> <script language="javascript" src="cal_conf2.js"></script> </HEAD> <BODY> <div id="outer_box"> <div id="nykamp"> <form name="sampleform" action="<?php $_SERVER['PHP_SELF'] ?>" method="POST"> <input type="text" name="hjemmelag">Hjemmelag<br/> <input type="text" name="bortelag">Bortelag<br/> <input type="text" name="firstinput" size=20> <small><a href="java script:showCal('Calendar1')">Velg dato</a></small><br/> <SELECT NAME="kamptid"> <OPTION VALUE="16:00">16:00 <OPTION VALUE="16:30">16:30 <OPTION VALUE="16:45">16:45 <OPTION VALUE="17:00">17:00 <OPTION VALUE="17:15">17:15 <OPTION VALUE="17:30">17:30 <OPTION VALUE="17:45">16:45 <OPTION VALUE="18:00">18:00 <OPTION VALUE="18:15">18:15 <OPTION VALUE="18:30">18:30 <OPTION VALUE="18:45">18:45 <OPTION VALUE="19:00">19:00 <OPTION VALUE="19:15">19:15 <OPTION VALUE="19:30">19:30 <OPTION VALUE="19:45">19:45 <OPTION VALUE="20:00">20:00 <OPTION VALUE="20:15">20:15 <OPTION VALUE="20:30">20:30 <OPTION VALUE="20:45">20:45 <OPTION VALUE="21:00">21:00 </SELECT> <br/><br/> <input type="submit" name="send" value="OK"> </form> </div><!--end nykamp--> <div id="nyspiller"> </div><!--end nyspiller--> </div> <!--end outer_box--> <?php $dbuser="brukernavn"; $dbpass="passord"; $dbname="fotball"; //databasenavnet $chandle = mysql_connect("localhost", $dbuser, $dbpass) or die("Error: 1"); #echo "Tilkoblet<br>"; mysql_select_db($dbname, $chandle) or die ($dbname . " Error: 2." . $dbuser); #echo "Database " . $dbname . "er valgt" . "<br/>"; if (isset($_GET['tid']) AND isset($_GET['dato'])) { $_GET['tid'] = mysql_real_escape_string($_GET['tid']); $_GET['dato'] = mysql_real_escape_string($_GET['dato']); //$resultat = mysql_query("SELECT * from kamp where dato=" . $_GET['dato'] . " AND tid=" . $_GET['dato'] . ")"; $resultat = mysql_query("UPDATE kamp set status ='ja' where tid='" . $_GET['tid'] . "' AND dato='" . $_GET['dato'] . "'"); mysql_query($resultat); } if(isset( $_POST['firstinput']) AND isset($_POST['kamptid']) AND isset($_POST['hjemmelag']) AND isset($_POST['bortelag'])) { $dato = mysql_real_escape_string($_POST['firstinput']); $kamptid = mysql_real_escape_string($_POST['kamptid']); $hjemmelag = mysql_real_escape_string($_POST['hjemmelag']); $bortelag = mysql_real_escape_string( $_POST['bortelag']); echo "<br/><br/>"; $check = "SELECT dato, tid FROM kamp where dato = '$dato' AND tid = '$kamptid'"; $resultat = mysql_query($check); $antall = mysql_num_rows($resultat); if($antall >= 1) { die("Kampen eksisterer allerede! Døde"); } echo $sql = "INSERT INTO kamp(dato, tid, hjemmelag, bortelag) VALUES('$dato', '$kamptid', '$hjemmelag', '$bortelag')"; mysql_query($sql) or die("Feilkode: 1"); } $print = "SELECT id, dato, tid, hjemmelag, bortelag, status FROM kamp"; $resultat = mysql_query($print); //$antall = mysql_num_rows($resultat); echo "<table border=1>"; echo "<td>Kampdato</td><td>Kampstart</td><td>Hjemmelag</td><td>Bortelag</td><td>Ferdigspilt?</td><td>Oppdater status</td>"; while( $rad = @mysql_fetch_row($resultat) ) { echo "<tr>"; echo "<td>"; echo $rad[1]; echo "</td>"; echo "<td>"; echo $rad[2]; echo "</td>"; echo "<td>"; echo $rad[3]; echo "</td>"; echo "<td>"; echo $rad[4]; echo "</td>"; echo "<td>"; echo "<center>" . $rad[5] . "</ center>"; echo "</td>"; echo "<td>"; echo "<center><a href=index.php?dato=" . $rad['1'] . "&tid=" . $rad[2] . ">Ferdig</center>"; echo "</td>"; echo "</tr>"; } echo "</table>"; mysql_close($chandle); ?> </BODY> </HTML> Endret 10. juni 2009 av Haavard82 Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå