Column count doesn't match value count at row

Fermé
NicK - 17 janv. 2010 à 16:36
 NicK - 17 janv. 2010 à 17:05
Bonjour,

Voila, j'ai une page d'inscription (je met uniquement le code d'inscription):

<?php

if (!defined('SECU'))
	{
		die();
	}
	
if($wREG == TRUE)
{
	if (isset($_POST['register']))
	{
		
		if($_POST['login'] == NULL OR $_POST['mail'] == NULL OR $_POST['mail'] == NULL OR $_POST['mail'] == NULL OR $_POST['mail'] == NULL OR $_POST['mail'] == NULL OR $_POST['mail'] == NULL)
		{
		$error = TRUE;
		$errorMSG = "Tu dois remplir tout les champs.";
		}
		elseif ($_POST['pass'] == $_POST['pass2'])
		{
		    $sql     = "SELECT account FROM accounts WHERE account = '".secu($_POST['login'])."'";
            $sql   = mysql_query($sql);
            $sql   = mysql_num_rows($sql);
            if ($sql == 0)
            {
			  $sql     = "SELECT pseudo FROM accounts WHERE pseudo = '".secu($_POST['pseudo'])."'";
			  $sql   = mysql_query($sql);
			  $sql   = mysql_num_rows($sql);
			  if ($sql == 0)
			   {
                $sql = "INSERT INTO accounts VALUES ( '', '".secu($_POST['login'])."','".secu($_POST['pass'])."','0','".secu($_POST['mail'])."','0','".secu($_POST['ask'])."','".secu($_POST['rep'])."','".secu($_POST['pseudo'])."','0','0')";
            
                $sql       = mysql_query( $sql );
                
                if ($sql)
                {
					$okREG = TRUE;
					$okMSGREG = "Inscription terminée ! Tu peux maintenant te connecter en jeu.";
					$_SESSION['login'] = secu($_POST['login']);
					$_SESSION['level'] = getinfo($_SESSION['login'], level);
                    
                }
                else
                {
                    
					$error = TRUE;
					$errorMSG = mysql_error();
                }
			  }
			  else
			  {
					$error = TRUE;
					$errorMSG = "Ce pseudo existe déjà.";
			  }
            }
            else
            {
                $error = TRUE;
				$errorMSG = "Ce nom de compte existe déjà.";
            }
        
		
		
		}
		elseif ($_POST['pass'] != $_POST['pass2'])
		{
		$errorPASS = TRUE;
		$errorMSG = "Les mots de passes sont différents";
		$login = $_POST['login'];
		$mail = $_POST['mail'];
		$pseudo = $_POST['pseudo'];
		$ask = $_POST['ask'];
		$rep = $_POST['rep'];
		}
    }
	
	}
	else
	{
	}
    
?>


Et lorsque je test le tout, ça me fais une erreur:
Column count doesn't match value count at row 1

Et je ne m'y connais pas vraiment en mysql :/
Quelqu'un voudrais bien m'aider ?

Merci !

3 réponses

Bonjour

S'il te plaît la prochaine fois, mets le message d'erreur complet avec le numéro de ligne et indique à quelle ligne de ton source ça correspond
Je suppose que c'est la ligne
$sql = "INSERT INTO accounts VALUES ( '', '".secu($_POST['login'])."','".secu($_POST['pass'])."','0','".secu($_POST['mail'])."','0','".secu($_POST['ask'])."','".secu($_POST['rep'])."','".secu($_POST['pseudo'])."','0','0')";

je ne m'y connais pas vraiment en mysql et en anglais non plus ;-D
Ton message dit que le nombre de données que tu fournis ne correspond pas au nombre de champs de ta table. Tu fournis 11 données il me semble, et ta table n'a probablement pas 11 champs
Alors soit tu fournis exactement le bon nombre de données, soit tu indiques à quels champs tu attribues ces 11 valeurs en mettant leurs noms après celui de ta table : INSERT INTO accounts(champ1,champ2... ,champ11) values (valeur1, valeur2,... valeur 11)
0
merci pour ta réponse!
il ne précise pas la ligne de l'érreur :/
sinon, voici mes colones:

guid, account, pass, leve, email, lastIP, question, reponse, pseudo, banned

faut dire que je suis perdu... j'ai beau reflechir, je n'y comprend rien
peut-on m'éclairer s'il vous plaît ?

merci :)
0
ha, j'avais mal compté, je viens de retirer le ,0, de la fin, et ça fonctionne !

merci infiniment!
0