Salve,
Vi scrivo per avere un piccolo aiuto da voi che sicuramente di mysql ne capite molto di più. Sto per creare un mio piccolo blog personale, dove in amministrazione ho creato un form per inserire nuove categorie su cui poter categorizzare i miei articoli. la tabella relativa a tali sezioni è semplicemente strutturata con un campo nome, e un campo sub dove ovviamente andrò a sistemare la lista delle sottosezioni separati da virgole. in questo modo mi verrà facile prelevare le subcategorie una per una per creare l'apposita barra di navigazione (un bell'explode in corrispondenza della virgola e sono a cavallo).
Ora però il problema mi sorge nel momento in cui devo popolare il database con i dati.
Come detto prima, ho creato un form con i campi nome e sub, e vorrei che l sistema funzionasse in questo modo: Se è presente la categoria madre, allora aggiorno il campo sub, altrimenti inserisco una nuova riga. Il codice da me scritto è questo:
Codice PHP:
$sql = mysql_query("UPDATE categorie SET sub = CONCAT(LOWER(sub), ',$sub') WHERE nome LIKE '$nome'");
if (mysql_affected_rows($sql) == 0) {
$result = mysql_query("INSERT INTO categorie (nome, sub) VALUES ('$nome', '$sub')");
echo "<p>Categoria inserita</p>";
}
else {
echo "<p>Categoria aggiornata</p>";
}
Solo che mysql_affected_rows mi sa proprio che mi segnala che le righe coinvolte sono uguali a zero anche quando in realtà il nome della categoria esiste già e quindi si va ad aggiornare la riga esistente.
Infatti quando provo ad inserire dei contenuti non esistenti va tutto bene, però quando vado ad inserire delle subcategorie non esistenti in una categoria già esistente, si aggiorna la riga interessata però il sistema va avanti andando ad inserire una nuova riga con gli stessi parametri.
Come posso agire?