2010-05-18 7 views
0

HI quel est le problème dans ce code ?? Je l'ai mis 24 heures pour mettre à jour la valeur dans la table. le problème est si $ row est vide alors il insère la valeur de la table-2 mais après 24 heures il ne mettra pas à jour la valeur.HOw Dois-je mettre à jour de la table-2 à la table-1

ce que je veux est-il doit supprimer la valeur existante et insérer nouvelle (valeur aléatoire) ou il doit mettre à jour la même ligne de $ avec la nouvelle valeur que jamais ...

if ($row == 0){ 
    mysql_query("INSERT INTO table-1 
    (regtime,person,location,address,rank,ip,geocode) 
    SELECT NOW(),person,location,address,rank,ip,geocode FROM table-2 ORDER BY RAND() LIMIT 1"); 
} 
else{ 
    mysql_query("UPDATE table-1 SELECT regtime=NOW(), 
       person=person, 
       location=location, 
       address=address, 
       rank=rank, 
       ip=ip, 
       geocode=geocode FROM table-2 ORDER BY RAND() LIMIT 1"); 
} 

Répondre

0

La meilleure façon est de SUPPRIMER les lignes existantes dans la table 1 avant d'exécuter INSERT.

Je ne sais pas quelle est la clé primaire de votre table. Je suppose que c'est sa personne?

DELETE FROM table-1 where person in (select person FROM table-2) 

INSERT INTO table-1 (regtime,person,location,address,rank,ip,geocode) 
SELECT NOW(),person,location,address,rank,ip,geocode FROM table-2 ORDER BY RAND() LIMIT 1 

Désolé si je me trompe, je n'utilise pas mysql.

+0

NOP est id et une seule ligne est là pour dire id = 1 – mathew

0

Utilisez REPLACE INTO au lieu de INSERT INTO

0

Il n'y a pas SET dans votre déclaration UPDATE, c'est pourquoi ne fait rien.

Voir la clé primaire UPDATE manual page

+0

pouvez-vous me dire où ajouter que SET ?? J'ai ajouté selon mes connaissances et ensuite enlevé. – mathew

+0

'Table UPDATE SET nom_colonne = valeur WHERE condition' – nico

Questions connexes