ik wil graag user ids maken van de users die zich aanmelden.
dus een tabel in sql en daar dan 1, 2, 3 enz de tabel heb ik wel ik snap ook wel hoe je er info in krijgt maar kan hij ook de laatste user opzoeken in de data base en er dan +1 doen? iets met
UPDATE users SET user_id = user_id + 1;
maar dan heb ik niet de laatste dan doet die ze allemaal +1....
ik ben er aardig uit maar waneer ik het toe wil passen werkt het niet helemaal ik ben nu al een heeel stuk verder maar deze functie werkt nog niet met de SELECT COUNT.... zo heb ik het ingevuld .. maar als ik voor de 2de keer de gebruiker kima ga toe voegen gaat die gewoon over deze functie heen .. dus het script zegt dat kima nog neit bestaat maar die staat toch al wel cker in de data base en ook geen errors.. wat doe ik fout...
$query_checkuser = "SELECT COUNT(1) AS checkuser FROM users WHERE username = '$username'";
mysql_query($query_checkuser) or die(mysql_error());
if($checkuser == 1) {
// The username or the e-mail adress already exists.
echo "Uw gebruikersnaam is al ingebruik. Probeer het nog eens.";
exit ;
}
ik gebruik de '*' haakjes overal want zo staan ze ook in de data base opgeslagen via het
"INSERT INTO users (username, enz....)
VALUES ( '$usename', enz....) "; dus alshet kima is staat er in de msql 'kima' als gebruikers naam nix mis mee opzich
$query_checkuser = "SELECT id FROM users WHERE username = '$username'";
$sql_checkuser = mysql_query($query_checkuser) or die(mysql_error());
if(mysql_num_rows($sql_checkuser) == 1){
// er is al een user met die username
}
else{
// insert de gegevens
}
?>
Het laatste bericht van Robert snap ik nu :) maar nu probeer ik de COUNT te leren alleen ik kom er niet helemaal uit...
<?
$query_checkstatus = "SELECT COUNT(1) AS loggedd FROM users WHERE lastip = '$ip' AND status = 1";
mysql_query($query_checkstatus) or die(mysql_error());
if( $loggedd != 0 ){
echo "U bent al ingelogd..." ;
exit ;
}
?>
Waneer ik dit doe en status is de mysql echt 1 is krijg ik nog steeds niet de text "U bent al ingelogd..."
Wat doe ik verkeerd....
<?php
$query_checkuser = "SELECT COUNT(id) FROM users WHERE username = '$username'";
$sql_checkuser = mysql_query($query_checkuser) or die(mysql_error());
list($aantal) = mysql_fetch_row($sql_checkuser);
if(($aantal) >= 1) { // 1 of meer.
// er is al een user met die username
}
else{
// insert de gegevens
}
?>
<?
$query_checkstatus = "SELECT COUNT(1) AS loggedd FROM users WHERE lastip = '$ip' AND status = 1";
$logged=mysql_query($query_checkstatus) or die(mysql_error());
if( $loggedd != 0 ){
echo "U bent al ingelogd..." ;
exit ;
}
?>
[edit]
Ook hiervoor kan je de structuur van ARIE gebruiken. al zal het van mij nu ook werken. Als die geen resultaten vind in je Database dan is $logged 0 of FALSE (zelfde betekenis voor PHP) en dan ben je (nog) niet ingelogd.
Als die wel resultaten vind is de waarde van $logged gelijk aan 1 of TRUE, wat betekend dat je nog niet bent ingelogd.
Ik hoop dat het zo een beetje duidelijk is
[/edit]
okj ik heb ze nu allebij goed door maar wat is nu eigelijk het verschil tussen:
"SELECT status FROM users WHERE enz.
"SELECT COUNT(1) AS loggedd FROM users WHERE enz.
want het komt op hetzelfde neer. is de 1 veiliger of sneller... of gewoon een eigen keus wat je maakt wat je makkelijker vind...
Met dit soort simpele scriptjes maakt het niet veel uit. Echter, waarom zou je de status opvragen om vervolgens in PHP een vergelijking te maken, terwijl je eigenlijk alleen maar een TRUE of FALSE van de database retour wilt hebben? Het is een kwestie van de juiste vragen stellen aan de database. En dat maakt in een grote applicatie met veel gebruikers wel degelijk een groot verschil.