Ik ben een formuliert aan het maken om teams aan een database toe te voegen het toevoegen van teams lukt al.
Alleen nu wil ik dmv een selectie vakje dat je kan aangeven of het je eigen team is zodat die straks een ander kleurtje krijgt ofzoiets.
ik dacht dat ik er al een heel eind uit was alleen het wil niet echt lukken
Dus heb ik 2 vraagjes.ik zeg er vast bij dat ik er niet echt veel verstand van heb ben nog maar net bezig.
Heb 2 velden in mijn tabel eentje met teamnaam en eentje met eigenteam
1= Wat is er fout aan mijn script?
2= Hoe kan ik straks het eigen team een ander kleurtje geven
Antwoord op je eerste vraag:
- Dat doe je door de kolom waarin de teamnaam staat UNIQUE te maken. Op die manier zorg je ervoor dat er nooit een dubbele teamnaam in die tabel kan staan. Als je dat toch probeert zal de mysql query een foutmelding geven en wel die met foutnummer 1062. Daar kun je dus op controleren:
<?php
if(!$res = mysql_query($sql))
{
if(mysql_errno() == 1062)
{
echo 'Dit team bestaat al.';
}
}
?>
Antwoord op je tweede vraag:
- Dit doe je in php zelf. Je controleert of jouw team weergegeven wordt, en dan geef je die een andere kleur mee:
<?php
while($row = mysql_fetch_assoc($res))
{
if($row['team'] == 'Mijn Eigen Team')
{
echo '<span class="eigen">'.$row['team'].'</span>';
}
else
{
echo $row['team'];
}
}
?>
Vervolgens maak je in je CSS code een class .eigen aan waarin je de kleur zet:
Alleen die foutmelding dat die dan weergeeft dat het team bestaat wil nog niet lukken die kleur enzo wel.
Maar ja ben nog maar een beginneling he.Zou je misschien nog kunnen aangeven waar ik die mysql query voor die foutmelding moet plaatsen?
Ik dacht zelf ergens hier tussen alleen dan werkt het niet
$intEigenteam = 0; // is geen eigenteam
if(isset($_POST['eigenteam']))
{
$intEigenteam = 1; // wel eigen team
}
$toevoegen = "
INSERT INTO tegenstanders
SET
teamnaam = '".mysql_real_escape_string ($_POST['teamnaam'])."',
eigenteam = " . $intEigenteam;
if(!$res = mysql_query($toevoegen))
{
if(mysql_errno() = 1062)
{
echo 'Team bestaat al.';
}
else
{
trigger_error(mysql_error());
}
}
else
{
echo 'Team toegevoegd!';
}
echo '<br />';
echo '<br />';
?>
Zoiets. Daarnaast nog een opmerking over je insert query: INSERT ... SET kun je gebruiken in mysql, maar het is niet de sql standaard. Gebruik dus liever:
INSERT INTO tabel (kolom1, kolom2)
VALUES (waarde1, waarde2)
zoals ik het op jou manier doe dan krijg ik de volgende foutmelding:
Fatal error: Can't use function return value in write context in H:\Program Files\xampp\htdocs\toevoegen1.php on line 47
en op line 47 staat bij mij
if(mysql_errno() = 1062)
en die insert query zou die er dan zo ongeveer uit moeten zien.
<?php
INSERT INTO tegenstanders (teamnaam, eigenteam)
VALUES ('$teamnaam', '$intEigenteam')
?>
o ja en ik dacht dat ik eruit was met die kleuren maar krijg het toch niet voor elkaar( erg ben ik he)
<?php
echo '<label><b>Teams in database:</b></label><br /><br />';
$res = mysql_query("SELECT teamnaam,eigenteam FROM tegenstanders ORDER BY teamnaam");
while($row = mysql_fetch_assoc($res))
{
if($row['teamnaam'] == 'eigenteam')
Oeps, een = te weinig:
<?php
if(mysql_errno() == 1062)
?>
ps. En ja, hoe duid jij aan dat een team een eigen team is. Juist, door in de database een de kolom eigenteam een 0 of een 1 te zetten. Dan zul je in je phpscript daar ook wel op moeten controleren:
<?php
if($row['eigenteam'] == 1)
{
// Dit is een eigen team
}
?>
pps. Controleer ook altijd of een msyql query gelukt is. Je controleert nu nergens of je select query wel gelukt is.
Alleen die foutmelding nog niet.
Een dubbele invoer krijg ik niet meer maar krijg geen eigen tekst zoals dat team al bestaat.
Krijg alleen het volgende:
Duplicate entry 'test' for key 2
En dat controleren dat moet ik nog even uitzoeken hoe ik dat klan doen
Verander
<?php
trigger_error(mysql_error());
?>
eens in:
<?php
trigger_error(mysql_errno().': '.mysql_error());
?>
En kijk vervolgens eens welke foutcode er bij die melding gegeven wordt. Volgens mij moet dat toch echt 1062 zijn. Ik snap dan ook niet waarom je script dat niet pakt.