Gå til innhold

Begrense antall poster i en mySQL tabell


Anbefalte innlegg

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
Videoannonse
Annonse
Gjest Slettet+142

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 av Slettet+142
Lenke til kommentar
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 av burugla
Lenke til kommentar
Gjest Slettet+142

altså.. tilføye hvor? vi har jo ikke sett insert-skriptet ditt enda :p

 

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

kanskje misforstått ditt spørsmål også? :confused:

Endret av Slettet+142
Lenke til kommentar

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 av burugla
Lenke til kommentar
Gjest Slettet+142

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 av Slettet+142
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å
×
×
  • Opprett ny...