spostare record da tabella a tabella

fabio_198

Utente Attivo
8 Nov 2012
53
0
0
Salve ragazzi!

non sto riuscendo a spostare un record da una tabella ad un'altra..o meglio lo "copia"..ma non lo elimina dalla vecchia tabella

ho due tabelle "link" e "linkspotlight"

questo è quello che faccio

PHP:
$sql_trasf = mysql_query("SELECT * FROM link,voting WHERE voting.item=link.id AND link.categoria='politics' ORDER BY voting.vote DESC LIMIT 1");
				
				$rows = mysql_fetch_array($sql_trasf);
					$url = $rows['url'];
					$img = $rows['img'];
					$titolo = $rows ['titolo'];		
					$descr = $rows ['descr'];
					$fonte = $rows ['fonte'];
					$utentiid = $rows ['utentiid'];
					$categoria = $rows ['categoria'];
					$linkdate = $rows ['linkdate'];
				
				$sql_tras_new = mysql_query("UPDATE `my_imagelink`.`linkspotlight` SET `url` = '$url', `img` = '$img', `titolo` = '$titolo', `descr` = '$descr', `fonte` = '$fonte', `utentiid` = '$utentiid', `categoria` = '$categoria', `linkdate` = '$linkdate' WHERE `linkspotlight`.`id` =1");
				$sql_tras_delete_old = "DELETE * FROM link,voting WHERE voting.item=link.id AND link.categoria='politics' ORDER BY voting.vote DESC LIMIT 1";
				if ($sql_tras_new) {
					
					echo "APPOSTO";
					$eliminadati = mysql_query($sql_tras_delete_old);


-praticamente voglio che mi prende il record che ha come campo categoria "politics"...e ha il maggior numero di voti (in relazione ad un'altra tabella "voting")
-me lo copia nella tabella "linkspotlight", e quindi me lo elimina dalla vecchia tabella.

come già detto l'eliminazione non la fa
 
avevo letto da qualche parte che per le DELETE non si usano ne gli alias ne ORDER ne LIMIT
 
usa l'id
PHP:
DELETE * FROM link WHERE id = $id
se devi cancellare in due tabelle fai due DELETE
 
eh purtroppo così non va neanche..non lo elimina...e poi dovrebbe elimanare quello che ha più voti..:(
 
hai recuperato l'id dalla select?
PHP:
 $rows = mysql_fetch_array($sql_trasf);
                    $id = $rows['id']; 
                    $url = $rows['url'];
stampa l'eventuale errore di mysql
PHP:
$eliminadati = mysql_query($sql_tras_delete_old);  
if(!$eliminadati)
    echo mysql_error();
 
sisi l'avevo già recuperato l'id

l'errore è questo
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* FROM link WHERE id='22'' at line 1

tutta la pagina è questa praticamente

PHP:
<?php 
	include 'header.php';
?>
	<div id="wrapper">
	
<?php 
	
		
			if(!isset($_POST['invia'])){ ?>
			
				<form method="post" action="#" id="formregistrazione" enctype="multipart/form-data">
					
				    <ul>
				
					<div class="controls">
						<button type="submit" class="btn btn-large" name="invia" id="registrati" value="Submit!">
							Submit!
						</button>
					</div>
				    </ul>
		                </form>
	</div>
	
	
	<?php	} else {
				
				$sql_trasf = mysql_query("SELECT * FROM link,voting WHERE voting.item=link.id AND link.categoria='politics' ORDER BY voting.vote DESC LIMIT 1");
				
				$rows = mysql_fetch_array($sql_trasf);
				        $id = $rows ['id'];
					$url = $rows['url'];
					$img = $rows['img'];
					$titolo = $rows ['titolo'];		
					$descr = $rows ['descr'];
					$fonte = $rows ['fonte'];
					$utentiid = $rows ['utentiid'];
					$categoria = $rows ['categoria'];
					$linkdate = $rows ['linkdate'];
				
				$sql_tras_new = mysql_query("UPDATE `my_imagelink`.`linkspotlight` SET `url` = '$url', `img` = '$img', `titolo` = '$titolo', `descr` = '$descr', `fonte` = '$fonte', `utentiid` = '$utentiid', `categoria` = '$categoria', `linkdate` = '$linkdate' WHERE `linkspotlight`.`id` =1");
				$sql_tras_delete_old = "DELETE * FROM link WHERE id='$id'";
				if ($sql_tras_new) {
					
					echo "APPOSTO";
					$eliminadati = mysql_query($sql_tras_delete_old);
if(!$eliminadati)
    echo mysql_error(); 
					}
			}
?>
 
mi ero sbagliato anchio a postare la DELETE :fonzie:
 

Discussioni simili