2017-10-21 23 views
-1

Salut peut-être que cette question a déjà été répondue mais rien n'a été utile. J'utilise Mysql et je veux insérer des données dans une table, mais je veux vérifier les enregistrements en double avant de les insérer.(MYSQL) Comment insérer un enregistrement seulement s'il n'existe pas dans un tableau

Je suis très confus sur la façon d'y parvenir.

Je dois vérifier si "RFC == == Expediente $ ET Diagonal 10 ou diagonale == 20" et montrer quelque chose comme "Record déjà Exist", ou insérez toutes les données si l'enregistrement n'existe pas

ceci est mon script:

<?php 
$Person_name=$_POST['Person_name']; 
$Expediente=$_POST['Expediente']; 
$Sexo=$_POST['Sexo']; 
$Edad=$_POST['Edad']; 
$Domicilio=$_POST['Domicilio']; 
$numero=$_POST['Numero']; 
$colonia=$_POST['Colonia']; 
$Ciudad=$_POST['Ciudad']; 
$Parentesco=$_POST['Parentesco']; 
$ClinicaAds=$_POST['ClinicaAds']; 
$Dependencia=$_POST['Dependencia']; 
$Entidad=$_POST['Entidad']; 
$Foraneo=isset($_POST['Foraneo']) ? 1 : 0; 

$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "issste"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = " INSERT INTO paciente (RFC, Nombre, Sexo, FechaNacimiento, Calle, NumeroDomiciliario, Colonia, Ciudad, Dependencia, ClinicaAdscrip, Entidad, Foraneo, Diagonal) 
       SELECT '$Expediente', '$Person_name', '$Sexo', '$Edad', '$Domicilio', '$numero', '$colonia', '$Ciudad', '$Dependencia', '$ClinicaAds', '$Entidad', '$Foraneo', '$Parentesco' FROM paciente 
       WHERE NOT EXIST( 
       SELECT RFC, Diagonal FROM paciente WHERE RFC = '$Expediente' AND Diagonal='10' OR Diagonal='20') LIMIT 1 "; 

if ($conn->query($sql) === TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 

$conn->close(); 
?> 

quand je lance mon programme je reçois cette erreur

« vous avez une erreur dans votre syntaxe SQL consultez le manuel qui correspond à votre version du serveur MySQL »

+3

double possible de [? Comment 'insérer si existe pas' dans MySQL] (https://stackoverflow.com/questions/1361340/how-to -insert-if-not-exists-in-mysql) – am05mhz

+0

Votre titre vous demande une chose mais vous finissez de lui en demander une autre. Quelle est ta question? Re message d'erreur, s'il vous plaît lire et agir sur [mcve]. Commencez à supprimer le code jusqu'à ce qu'il n'y ait plus d'erreur. Essayez votre SQL sur sqlfiddle.com ou sur un autre site (google). Lisez le manuel concernant les déclarations que vous essayez d'utiliser. Googel re le message d'erreur exact et le numéro. – philipxy

Répondre

0

votre requête de modification, essayez quelque chose comme ceci:

INSERT INTO paciente (RFC, Nombre, Sexo, FechaNacimiento, Calle, NumeroDomiciliario, 
      Colonia, Ciudad, Dependencia, ClinicaAdscrip, Entidad, Foraneo, Diagonal) 
    SELECT '$Expediente', '$Person_name', '$Sexo', '$Edad', '$Domicilio', '$numero', 
     '$colonia', '$Ciudad', '$Dependencia', '$ClinicaAds', '$Entidad', '$Foraneo', 
     '$Parentesco' 
    WHERE NOT EXISTS(SELECT RFC, Diagonal FROM paciente 
        WHERE RFC = '$Expediente' AND Diagonal='10' OR Diagonal='20' LIMIT 1)