rijen in een mysql database
Ik heb al een tijdje een login op me site intussen zijn er nu 10.000 leden geregistreerd maar er kunnen er nu niet meer bij. Heeft iemand een idee hoe ik dit kan oplossen, zonder hiervoor oude accounts te verwijderen?
En waarom kunnen er niet meer bij?
Zit er toevallig een limiet aan een table, dat er maximaal maar 10.000 rijen in kunnen?
Wat is de foutmelding die je krijgt?
ps. Zet error_reporting liever gewoon op E_ALL ofwel code 2047. De fatale fouten en waarschuwingen wil je namelijk ook gewoon zien.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Code (php)
1
2
3
4
2
3
4
<?php
$sql = 'INSERT INTO gebruikers (id, naam, wachtwoord, status, email, missie, actief, actcode, lastactive, ip, laatst_ip) VALUES (NULL, \''.htmlspecialchars($_POST["naam"]).'\', \''.md5($_POST["paswoord"]).'\', \'0\', \''.$_POST["mail"].'\', \'\', \'0\', \'\', \'0000-00-00 00:00:00\', \''.$_SERVER['REMOTE_ADDR'].'\')';
$resultaat = mysql_query( $sql ) or die ( "Fout: ".mysql_error() );
?>
$sql = 'INSERT INTO gebruikers (id, naam, wachtwoord, status, email, missie, actief, actcode, lastactive, ip, laatst_ip) VALUES (NULL, \''.htmlspecialchars($_POST["naam"]).'\', \''.md5($_POST["paswoord"]).'\', \'0\', \''.$_POST["mail"].'\', \'\', \'0\', \'\', \'0000-00-00 00:00:00\', \''.$_SERVER['REMOTE_ADDR'].'\')';
$resultaat = mysql_query( $sql ) or die ( "Fout: ".mysql_error() );
?>
Laat dus ook even een stukje van je omliggende code zien ;-)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
if(####){
# hier staat het form
}else{
$sql = "SELECT naam FROM gebruikers WHERE naam='".htmlspecialchars($_POST['naam'])."'";
$query = mysql_query( $sql ) or die ( "Fout: ".mysql_error() );
$tellen = mysql_num_rows($query);
//Check naam
if($tellen==0){
$sql = "SELECT ip FROM gebruikers WHERE ip='".$_SERVER['REMOTE_ADDR']."'";
$query = mysql_query( $sql ) or die ( "Fout: ".mysql_error() );
$tellen = mysql_num_rows($query);
//Check ip
if($tellen==0){
//Gebruiker toevoegen aan database
$sql = 'INSERT INTO gebruikers (id, naam, wachtwoord, status, email, missie, actief, actcode, lastactive, ip, laatst_ip) VALUES (NULL, \''.htmlspecialchars($_POST["naam"]).'\', \''.md5($_POST["paswoord"]).'\', \'0\', \''.$_POST["mail"].'\', \'\', \'0\', \'\', \'0000-00-00 00:00:00\', \''.$_SERVER['REMOTE_ADDR'].'\')';
$resultaat = mysql_query( $sql ) or die ( "Fout: ".mysql_error() );
}else{
$sql = "SELECT naam FROM gebruikers WHERE ip='".$_SERVER['REMOTE_ADDR']."'";
$resultaat = mysql_query( $sql ) or die ( "Fout: ".mysql_error() );
$rij = mysql_fetch_object($resultaat);
echo "Hey ".$rij->naam." ben je daar alweer volgens onze database heb je al een gebruikers account.";
}
}else{
echo "Deze naam is al in gebruik, klik <a href=\"javascript:history.back(-1)\">hier</a> om terug te gaan.";
}
}
?>
if(####){
# hier staat het form
}else{
$sql = "SELECT naam FROM gebruikers WHERE naam='".htmlspecialchars($_POST['naam'])."'";
$query = mysql_query( $sql ) or die ( "Fout: ".mysql_error() );
$tellen = mysql_num_rows($query);
//Check naam
if($tellen==0){
$sql = "SELECT ip FROM gebruikers WHERE ip='".$_SERVER['REMOTE_ADDR']."'";
$query = mysql_query( $sql ) or die ( "Fout: ".mysql_error() );
$tellen = mysql_num_rows($query);
//Check ip
if($tellen==0){
//Gebruiker toevoegen aan database
$sql = 'INSERT INTO gebruikers (id, naam, wachtwoord, status, email, missie, actief, actcode, lastactive, ip, laatst_ip) VALUES (NULL, \''.htmlspecialchars($_POST["naam"]).'\', \''.md5($_POST["paswoord"]).'\', \'0\', \''.$_POST["mail"].'\', \'\', \'0\', \'\', \'0000-00-00 00:00:00\', \''.$_SERVER['REMOTE_ADDR'].'\')';
$resultaat = mysql_query( $sql ) or die ( "Fout: ".mysql_error() );
}else{
$sql = "SELECT naam FROM gebruikers WHERE ip='".$_SERVER['REMOTE_ADDR']."'";
$resultaat = mysql_query( $sql ) or die ( "Fout: ".mysql_error() );
$rij = mysql_fetch_object($resultaat);
echo "Hey ".$rij->naam." ben je daar alweer volgens onze database heb je al een gebruikers account.";
}
}else{
echo "Deze naam is al in gebruik, klik <a href=\"javascript:history.back(-1)\">hier</a> om terug te gaan.";
}
}
?>
dit is hem dan :) maar hij heeft er al 10.000 geregistreerd zal niet weten wat daar dan mis mee is
Vervolgens gooi jij met een INSERT de nieuwe gebruiker in de database en klaar is kees. Mocht een waarde al in de tabel staan, dan zal de query keurig mislukken. Met mysql_errno() == 1062 kun je deze fout dan opvangen.
I.p.v. 4 queries heb je dus maar 1 query nodig. Dat ruimt lekker op!
Offtopic: De naam $query slaat nergens op, in deze variabele staat namelijk helemaal geen query! Het gaat om een resultset, $result lijkt mij dan ook voor de hand liggen.
Zet ook error_reporting nog even op E_ALL en niet op 1024.
oke bedankt even het script een beetje aanpassen :) een stuk overzichtelijker is het dan ook.
bedankt blanche die functie kan ik wel toepassen :) ERROR_REPORTING staat nu op E_ALL nog steeds geen fouten maar ik ga wel even knutselen :)