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

//teams toevoegen
if(isset($_POST['teamnaam']))
{
$teamnaam = $_POST['teamnaam'];

$intEigenteam = 0; // is geen eigenteam
if(isset($_POST['eigenteam']))
{
$intEigenteam = 1; // wel eigen team
}

$toevoegen = 'INSERT INTO tegenstanders SET teamnaam, eigenteam = "'.$_POST['teamnaam'].'"';
mysql_query($toevoegen) or die (mysql_error());
echo 'Team toegevoegd!';
echo '<br />';
echo '<br />';
}

echo '<form action="" method="post">';
echo '<label>Teamnaam:</label><input type="text" class="text" name="teamnaam"><br />';
echo '<label>Eigenteam:</label><input type="checkbox" name="eigenteam"><br />';

echo '</td>';
echo '</tr>';
echo '</table>';
echo '<br />';

echo '<input type="submit" class="submit" value="Voeg Team toe">';

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

.eigen {
    color: #kleurcode;
}
Oke bedankt .

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

<?php
//teams toevoegen
if(isset($_POST['teamnaam']))
{
$teamnaam = $_POST['teamnaam'];

$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;


mysql_query($toevoegen) or die (mysql_error());
echo 'Team toegevoegd!';
echo '<br />';
echo '<br />';
?>

De complete code

<?php


//MySQL connectie
mysql_connect('localhost', '****', '******') or die (mysql_error());
mysql_select_db('test');


//teams toevoegen
if(isset($_POST['teamnaam']))
{
$teamnaam = $_POST['teamnaam'];

$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;


mysql_query($toevoegen) or die (mysql_error());
echo 'Team toegevoegd!';
echo '<br />';
echo '<br />';
}



echo '<form action="" method="post">';
echo '<label>Teamnaam:</label><input type="text" class="text" name="teamnaam"><br />';
echo '<label>Eigenteam:</label><input type="checkbox" name="eigenteam"><br />';

echo '</td>';
echo '</tr>';
echo '</table>';
echo '<br />';

echo '<input type="submit" class="submit" value="Voeg Team toe">';

?>
<br>
<div id="teams" style="position: absolute; top:150; left:350;">
<?php
echo '<label><b>Teams in database:</b></label><br />';
$res = mysql_query("SELECT teamnaam FROM tegenstanders ORDER BY teamnaam");
while ($arr = mysql_fetch_assoc($res)) {
echo $arr["teamnaam"]."<br />";

}


mysql_free_result($res);


?>
<?php
//teams toevoegen
if(isset($_POST['teamnaam']))
{
$teamnaam = $_POST['teamnaam'];

$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')

{
echo '<span class="eigen">'.$row['teamnaam'].'</span>';
}
else
{
echo $row['teamnaam']."<br />";
}
}

mysql_free_result($res);
?>
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.
Kleur is gelukt.

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

<?php

//teams toevoegen
if(isset($_POST['teamnaam']))
{
$teamnaam = $_POST['teamnaam'];

$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 '<form action="" method="post">';
echo '<label>Teamnaam:</label><input type="text" class="text" name="teamnaam"><br />';
echo '<label>Eigenteam:</label><input type="checkbox" name="eigenteam"><br />';

echo '</td>';
echo '</tr>';
echo '</table>';
echo '<br />';

echo '<input type="submit" class="submit" value="Voeg Team toe">';

?>
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.
bedankt voor je hulp.
Het werkt nu prima.

Dan ga ik nu even kijken hoe ik kan controleren of de query gelukt is

Reageren