kleine probleempjes

Status
Niet open voor verdere reacties.

JB'tje

Gebruiker
Lid geworden
31 mei 2004
Berichten
556
hallo allemaal,

na 2 weekjes school heb ik eindelijk weeer wat tijd gevonden. mijn site ziet er al (best) aardig uit alleen heb ik (nog steeds) een paar problemen.

ik heb een tabel:
CREATE TABLE berichten (
ontvangerID varchar(10) NOT NULL primary key,
verzendeID varchar(10) NOT NULL,
ontvangerIP varchar(20) NOT NULL,
time varchar(10) NOT NULL,
message TEXT NOT NULL,
FULLTEXT (message)
);
nu wil ik graag een script hebben om te tellen hoevaak ontvangerID == "1" voorkomt in de tabel.

verder had ik nog het probleem liggen van die teller, die aftelde van 29 min naar 0 min en dan weer overnieuw begint. Deze teller moet gelijk lopen aan b.v. time(); of date(M);
dus iets als:
PHP:
if (date(M) == "0") 
{ $_SESSION['tijd'] = "30" }
elseif (date(M) == "1")
{ $_SESSION['tijd'] = "29" }
elseif (date(M) == "2")
{ $_SESSION['tijd'] = "28" }
elseif (date(M) == "3")
{ $_SESSION['tijd'] = "27" }
ENZ.

maar uiteraard zou ik graag iets willen hebben wat VEEL korter is. kan dat???

alvast bedankt,

JB'tje :thumb:
 
Geplaatst door JB'tje
[...] nu wil ik graag een script hebben om te tellen hoevaak ontvangerID == "1" voorkomt in de tabel.
PHP:
$query = "SELECT COUNT(*) FROM tabelnaam WHERE ontvangerID = '1'";
$result = mysql_query($query) or die(mysql_error());
$rij = mysql_fetch_row($result);
$aantal = $rij[0];
Overigens zal $aantal altijd 0 of 1 zijn als je deze query op tabel 'berichten' loslaat. Een kolom met een primary key eigenschap bevat immers alleen unieke waarden, oftewel elk ontvangerID komt maar 1 keer voor.
Voor je 2e probleem:
PHP:
$_SESSION['tijd'] = (30 - ((int) date('m')));
Zoiets ? :)

Nog ff wat vraagjes van mijn kant ... :p
- ontvangerID is een varchar type, waarom geen int ? Hetzelfde voor verzendeID.
- time is ook een varchar type, waarom geen int ? Als je daar timestamps in opslaat, kun je d'r net zogoed een int van maken (is sneller) :). Sla je hier geen timestamp in op, dan kun je 't beste DATE of DATETIME gebruiken. Die zijn ervoor gemaakt om met data (meervoud van datum) om te gaan ;)

Succes :thumb:

*mompelt iets over regexp's en 't bagger zijn ervan*
 
Laatst bewerkt:
PHP:
$_SESSION['tijd'] = (30 - ((int) date('m')));
werkt niet echt :D tenminste doet niet wat het moet doen.... maar door dit stukje code is me de oplossing binnen geschoten:
PHP:
<?PHP
$_SESSION['time30min'] = (date("i") - 60) * -1;
if ($_SESSION['time30min'] > "30") { 
$_SESSION['time30min'] = $_SESSION['time30min'] - 30;
}
$_SESSION['time30min'] = $_SESSION['time30min'] . " min.";
?>
nu staat er op de laatste regel " * -1 "
dit doe ik omdat er anders een negatiev getal uitkomt en nu niet meer.
Nog ff wat vraagjes van mijn kant ...
- ontvangerID is een varchar type, waarom geen int ? Hetzelfde voor verzendeID.
- time is ook een varchar type, waarom geen int ? Als je daar timestamps in opslaat, kun je d'r net zo goed een int van maken (is sneller) . Sla je hier geen timestamp in op, dan kun je 't beste DATE of DATETIME gebruiken. Die zijn ervoor gemaakt om met data (meervoud van datum) om te gaan

Succes :thumb:
eeeh, ik heb eent tijd geleden op die mysql pagina gezochd wat ik het beste kon gebruiken voor de database (varchar of int) het bleek dat ze gewoon hetzelfde waren.... verder stond er volgens mij niet bij wat sneller was :'( (waar ik dus naar opzoek was)
ik zal deze veranderen.... maar verder zou ik dan graag willen weten welk type ik moet gebruiken voor b.v. lange getallen, of lange texten, want ik stop momenteel ALLES in varchar....
ik zal deze dingen dus veranderen, maar wat moet ik met de rest van mijn tabellen ('k gebruik er nog 4)
zal ik je de tabellen laten zien????

JB'tje :D

eeh, nog een vraagje.
ik heb nu een mooie lay-out, maar de drukknoppen zien er niet uit!!!! en de text fields ook niet ;'( hoe kan ik de drukknoppen en text velden een andere kleur of ander plaatje voor doen????
 
Laatst bewerkt:
int : Alleen voor getallen
varchar : voor verschillende tekens tot een max lengte van 255 tekens
text : voor grote texten (limiet 64 mb ? (help jp :p))

:thumb:
 
Geplaatst door masterprut
int : Alleen voor getallen
En tinyint, mediumint en bigint dan ? :p
text : voor grote texten (limiet 64 mb ? (help jp :p))
64 kb :p
12.5.3 Storage Requirements for String Types
BLOB, TEXT L+2 bytes, where L < 2^16

Bron
2^16 = 65536 + 2 = 65538 bytes. Ongeveer 64 kb dus :p

De look van drukknoppen en tekstvelden kun je met CSS aanpassen :)
 
Laatst bewerkt:
ik bedoelde met int meer dat je er geen letters in krijgt :D

Ok, typefoutje. kan gebeuren :o
 
Geplaatst door masterprut
ik bedoelde met int meer dat je er geen letters in krijgt :D

Ok, typefoutje. kan gebeuren :o
Ik doelde meer op dat je geen getalletjes van 1 cijer gaat opslaan in een veld waar je 11 tekens kwijt kan :p
 
Geplaatst door JPeetje
Ik doelde meer op dat je geen getalletjes van 1 cijer gaat opslaan in een veld waar je 11 tekens kwijt kan :p

Ja maar ik niet :p

Btw, een lengte bij INT is niet verplicht ? :D
 
Een lengte is nooit verplicht, je kan in een varchar toch ook 20 tekens enzo kwijt ;)
 
Geplaatst door JPeetje
Een lengte is nooit verplicht, je kan in een varchar toch ook 20 tekens enzo kwijt ;)

Bij varchar wel, als ik een kolom wil aanmaken met type als varchar, en geen lengt opgeef wilt de query niet

Maar nu ff gam0ren
 
Geplaatst door JPeetje
De look van drukknoppen en tekstvelden kun je met CSS aanpassen :)
ha, das i mooi, alleen nu nog, wat is CSS?????? een commando ofzoiets???

verder heb ik een heleboel "varriabele" getallen en die prop ik allemaal in varchar omdat ik hier gelezen had dat varchar minder kb gebruikt dan char dus vandaar dat ik varchar gebruik.
verder had ik toen ook nog gekeken naar int en mediumint en tintyint enz. maar daar kon ik niet uit weis worden dat het sneller is en minder kb gebruikt (snelheid is natuurlijk wel het belangerijkst).

verder zie ik nu dat die int types wel zeer weinig kb in beslag nemen *ziehier*
maar dan komt alsnog een (klein) probleempje, sommige getallen die ik in de database wil zetten zijn tussen de 0 en X oftewel dat was ook een reden waarvoor ik Varchar gebruikte, daar kun je maximaal 255 getallen inzetten.....
maar ik zal eens kijken wat ik nu dus al kan veranderen naar int-en

JB'tje :thumb:
 
ik heb het zo ongeveer 3 keer doorgelezen. het is mooi dat je daardoor een pagina sneller kan loaden.... dat is ook iets wat ik nodig heb (waarom zij je niet eerder dat dat kon :))

maar, het probleem van de buttons blijft, ik ben er helaas niet in tegengekomen hoe ik een button of een textbox moet veranderen.... kan iemand mij misschien een voorbeeld geven??? en/of nog een toturial????

alvast bedankt...

JB'tje :thumb:
 
Je geeft je knopje een class

<input type="submit" value="Knopie" class="knop">

Je hebt in je CSS bestand het volgende aangemaakt:

Code:
input.knop { background-color : Red; color : Green; font-size : 30px; font-family : Verdana; }

Nu zal je een rooie knop, groene letters, verdana en 30px groot krijgen :p

:thumb:
 
Geplaatst door JB'tje
(waarom zij je niet eerder dat dat kon :))
Je vroeg er niet naar :p
maar, het probleem van de buttons blijft, ik ben er helaas niet in tegengekomen hoe ik een button of een textbox moet veranderen.... kan iemand mij misschien een voorbeeld geven??? en/of nog een toturial????
1 vraagteken achter een zin is even duidelijk ...
In je stijlblad:
Code:
.tekstveld {background-color: #efefef; color: #000000; font-family: verdana,tahoma,arial; border: 1px dashed #000000; text-align: center}
Dit stijlblad laadt je in je HTML document en vervolgens pas je dit toe in je tekstvelden:
Code:
<input type="text" class="tekstveld">
Uiteraard kan 't ook zonder class="..." maar daar kun je over lezen ;)
Geplaatst door masterprut
Code:
input.knop { background-color : Red; color : Green; font-size : 30px; font-family : Verdana; }
Tss, red en green ? #ff0000 en #00ff00 zul je bedoelen.
 
tja, dit is wel een heel simpele manier..... dit had ik zelf kunnen bedenken :o :p (ahouwel het me toch niet gelukt is).

verder ken ik de codes al en dat van die class snap ik ook. mijn site gaat er dus mooi uitzien.

heel erg bedankt alweer,

JB'tje :thumb: :D
 
het is nu allemaal gelukt met de stylen ezo. was best leuk werk :)
maar, nu ben ik beezig met de foutmeldingen....
op mijn site heb ik een hok waar ik de informatie ofer het account laat zien. dit "hok" is op elke pagina te zien.
Maar, hierbij laat ik verweizen naar info.php, een "site" waar ik alle informatie over het spel heb b.v. het aantal soldaten dat iemand heeft (dat word daar opgehaald) of andere gegevens uit de tabel.

het probleem is nu dat het kan voorkomen dat er geen gegevens uit de tabel gehaald kan worden. dan word de foutmelding in een $_session['error'] opgeslagen.
maar, als er een ding fout gaat, dan gaat de rest meestal ook fout. dus ik moet een manier hebben dat indien er iets in $_session['error'] staat dat dat dan gelijk afgedrukt word op de b.v. base.php pagina (de pagina die dus info.php heeft aangeroepen/geincludeerd)

ik hoop dat jullie snappen wat ik probeer uit te leggen, want het is nogal lastig uitgelegd en uit te leggen.

JB'tje

ooh, ik heb op de index pagina een hyperlink naar de register pagina "register.php?race=europian" maar nu weet ik niet hoe ik daarmee dit:
PHP:
 <?PHP echo"<select name=\"race\" class=\"tekstnormaal\"><option value=\"1\">Europian</option><option value=\"2\">American</option><option value=\"3\">Australian</option><option value=\"4\">African</option></select>"; ?>
op europian kan zetten....
 
Je wilt een eigen error handling maken :)

Het is netter als je dat met trigger_error() doet ik weet niet precies hoe dat werkt :D

Wat wel goed werkt is om het or die(mysql_error()); weg te halen en er op te controlleren of het fout gaat.

Voorbeeld:
PHP:
<?

$connect = mysql_connect("localhost", "hoi", "meh"); // poging doen tot verbinden met server
if($connect == FALSE) // controlleer of de verbinding niet gelukt is
{
  die("Het verbinden naar de database is mislukt. MySQL gaf de volgende error: <b>" . mysql_error() . "</b>");
}
else
{
  $database = mysql_select_db("database", $connect); // Database selecteren
  if($database == FALSE) // Controlleer of database selecteren fout gegaan is
  {
    die("Het selecteren van de database is mislukt. MySQL gaf de volgende error: <b>" . mysql_error()) . "</b>");
  }
}

?>

Zo kan je dit dus ook met query's doen. Eigenlijk met alles dat een boolean is :) (waar TRUE / FALSE word terug gegeven)

Succes :thumb:
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan