burugla Skrevet 5. desember 2006 Del Skrevet 5. desember 2006 Jeg har et påmeldingsscript til et arrangement. Jeg ønsker at det kun skal være mulig å melde på 50 stykker. Jeg kjører MySQL 3.23.49 på en server hvor jeg har følgende tabell: CREATE TABLE lan ( id int(11) NOT NULL auto_increment, name varchar(50) NOT NULL default '', nick varchar(60) NOT NULL default '', tlf varchar(50) NOT NULL default '', email varchar(100) default NULL, website varchar(100) default NULL, PRIMARY KEY (id) ) TYPE=MyISAM; Jeg henter ut infoen på oversiktsiden slik: $result = mysql_query ("SELECT * FROM $mySQLtable ORDER BY id desc"); while ($row = mysql_fetch_object($result)) { echo "<tr><td width=250>" . $row->name . "</td>"; echo "<td width=200>" . $row->nick . "</td>"; Siden er ellers i php, men mine kunskaper på området er under middels. Veit ikke om det er mulig å kjøre begrensningen i php (sjekke antall poster og handle deretter), eller legge begrensningen inn i selve sqltabellen Jeg har søkt rundt på forumet uten hell, men det er mulig jeg ikke har funnet de riktige søkeordene. På forhånd takk! Lenke til kommentar
pgdx Skrevet 5. desember 2006 Del Skrevet 5. desember 2006 Med mindre du har tenkt å slette poster, kan du ikke bare sjekke for hver gang om siste ID er >= 50? Lenke til kommentar
Gjest Slettet+142 Skrevet 5. desember 2006 Del Skrevet 5. desember 2006 (endret) men hvis du har tenkt til å slette poster er det noe litt annet.. select count(*) AS antall from lan og så bare lager du en fin kode som sammenligner antall med 50 Endret 5. desember 2006 av Slettet+142 Lenke til kommentar
burugla Skrevet 5. desember 2006 Forfatter Del Skrevet 5. desember 2006 (endret) Ok.. Spørsmålet blir da: I mitt eksempel, hvor ville jeg tilføyd deres info? Behøver ikke slette info. Endret 5. desember 2006 av burugla Lenke til kommentar
ZoRaC Skrevet 5. desember 2006 Del Skrevet 5. desember 2006 "SELECT * FROM $mySQLtable ORDER BY id desc LIMIT 0,50" bør vel være nok? Lenke til kommentar
pgdx Skrevet 5. desember 2006 Del Skrevet 5. desember 2006 Da ville du vel bare skrevet på siden at det er fullt? Lenke til kommentar
pgdx Skrevet 5. desember 2006 Del Skrevet 5. desember 2006 "SELECT * FROM $mySQLtable ORDER BY id desc LIMIT 0,50"bør vel være nok? 7434309[/snapback] Vil du ikke fortelle brukeren at det er fullt på LAN-et? Lenke til kommentar
burugla Skrevet 5. desember 2006 Forfatter Del Skrevet 5. desember 2006 (endret) Da ville du vel bare skrevet på siden at det er fullt? 7434313[/snapback] Dæng.. at jeg ikke tenkte på det.. Poenget var at den skal stå litt, men trøkket er litt stort. 30 mennesker for mye er ikke bra, og jeg gidder ikke sjekke hver dag.. Endret 5. desember 2006 av burugla Lenke til kommentar
burugla Skrevet 5. desember 2006 Forfatter Del Skrevet 5. desember 2006 "SELECT * FROM $mySQLtable ORDER BY id desc LIMIT 0,50"bør vel være nok? 7434309[/snapback] Vil du ikke fortelle brukeren at det er fullt på LAN-et? 7434320[/snapback] Hadde vært flott om de kunne finne det ut og ja :| Lenke til kommentar
Gjest Slettet+142 Skrevet 5. desember 2006 Del Skrevet 5. desember 2006 (endret) altså.. tilføye hvor? vi har jo ikke sett insert-skriptet ditt enda tenker meg noe slikt: <?php //ANTAR AT DU BRUKER POST $navn = $_POST['navn']; $nick = $_POST['nick']; $tlf = $_POST['tlf']; $email = $_POST['email']; $website = $_POST['website']; $q = mysql_query("SELECT COUNT(*) AS antall FROM lan"); $r = mysql_fetch_assoc($q); $r = $r['antall']; if($r < 50){ $sql = "INSERT INTO lan(name, nick, tlf, email, website) VALUES('$navn', '$nick', '$tlf', '$email', '$website')"; mysql_query($sql); }else{ echo 'Det er ikke lenger mulig å melde seg på!'; } ?> edit: tror jeg har brukt litt tid på koden her kanskje misforstått ditt spørsmål også? Endret 5. desember 2006 av Slettet+142 Lenke til kommentar
ZoRaC Skrevet 5. desember 2006 Del Skrevet 5. desember 2006 (endret) Du angriper problemet i feil ende... Begrensningen må legges i scripet for registrering, ikke i listen over deltagere. Endret 5. desember 2006 av ZoRaC Lenke til kommentar
burugla Skrevet 5. desember 2006 Forfatter Del Skrevet 5. desember 2006 (endret) Akkurat ja, der kan du se. Tipper det er denne delen som henter inn infoen? if($formMethod == "post") { $name = $_POST['name']; $nick = $_POST['nick']; $email = $_POST['email']; $tlf = $_POST['tlf']; $website = $_POST['website']; } else { $name = $_GET['name']; $nick = $_GET['nick']; $email = $_GET['email']; $tlf = $_GET['tlf']; $website = $_GET['website']; } // Remove HTML-tags and unnecessary spaces $name = rtrim(ltrim(strip_tags($name))); $nick = rtrim(ltrim(strip_tags($nick))); $email = rtrim(ltrim(strip_tags($email))); $tlf = rtrim(ltrim(strip_tags($tlf))); $website = rtrim(ltrim(strip_tags($website))); // Check that none of the fields are empty if (empty($name) || empty($tlf)) { echo "En eller flere felter mangler info."; } else { // Connect to MySQL mysql_connect($mySQLhost, $mySQLuser, $mySQLpass) or die("Could not connect: " . mysql_error()); mysql_select_db($mySQLdb); // Insert the data into the database if (mysql_query ("INSERT INTO $mySQLtable (name,nick,email,tlf,website) VALUES ('$name','$nick','$email','$tlf','$website')")) { echo $regSuccess;} else { echo $regFailed ;} mysql_close(); } Tror jeg skjønte det her. Takk for god hjelp! Endret 5. desember 2006 av burugla Lenke til kommentar
Gjest Slettet+142 Skrevet 5. desember 2006 Del Skrevet 5. desember 2006 (endret) if($formMethod == "post") { $name = $_POST['name']; $nick = $_POST['nick']; $email = $_POST['email']; $tlf = $_POST['tlf']; $website = $_POST['website']; } else { $name = $_GET['name']; $nick = $_GET['nick']; $email = $_GET['email']; $tlf = $_GET['tlf']; $website = $_GET['website']; } // Remove HTML-tags and unnecessary spaces $name = rtrim(ltrim(strip_tags($name))); $nick = rtrim(ltrim(strip_tags($nick))); $email = rtrim(ltrim(strip_tags($email))); $tlf = rtrim(ltrim(strip_tags($tlf))); $website = rtrim(ltrim(strip_tags($website))); // Check that none of the fields are empty if (empty($name) || empty($tlf)) { echo "En eller flere felter mangler info."; } else { // Connect to MySQL mysql_connect($mySQLhost, $mySQLuser, $mySQLpass) or die("Could not connect: " . mysql_error()); mysql_select_db($mySQLdb); // Insert the data into the database $q = mysql_query("SELECT COUNT(*) AS antall FROM lan"); $r = mysql_fetch_assoc($q); $r = $r['antall']; if($r < 50){ if (mysql_query ("INSERT INTO $mySQLtable (name,nick,email,tlf,website) VALUES ('$name','$nick','$email','$tlf','$website')")) { echo $regSuccess;} else { echo $regFailed;} }else{ echo 'LAN'et er fullt!'; } mysql_close(); } håper det ble riktig nå? EDIT: så du klarte det, ja... Endret 5. desember 2006 av Slettet+142 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å