Forum Flash, Actionscript, PHP e MySQL
[php] ciclo per controllare nomi doppi

 
Nuovo Topic   Rispondi    Forum Flash, Actionscript, PHP e MySQL » PHP
Precedente  Successivo 
Autore Messaggio
mesk8
avanzato
avanzato


Età: -1984
Registrato: 31/10/05 16:41
Messaggi: 252
Località: Verona

MessaggioOggetto: [php] ciclo per controllare nomi doppi
Inviato: 07.11.07 | 15:39
Rispondi citando

dovrei ricreare in php un ciclo per sapere se il nome dell'articolo in questione esiste o no, e se dovesse essere presente all'occorrenza aggiungere un numero alla fine del nome. tipo:

articolo_prova
se articolo_prova esiste = articolo_prova1
articolo_prova1
se articolo_prova1 esiste = articolo_prova2

e così fino a quando articolo_prova(x) nn lo trova più e restituisce l'ultimo articolo_prova(x) ricavato.

questo è quello ke sono riuscito a fare
 
Codice:
<?php

// controlla nomi doppi
$d '';
$query 'SELECT title FROM '.$tb_draw.' WHERE title = '.$title;
do{
  
$d++;
  
$title $title.$d;
}while(
mysql_query($query$conn));
echo 
$title;

?>
Torna in cima
Profilo Messaggio privato [ Nascosto ] MSN Messenger
Sponsor
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4546
Località: Verona

MessaggioOggetto:
Inviato: 07.11.07 | 17:35
Rispondi citando

Ciao mesk8,
non ho capito al 100% quello che vuoi/devi fare...

Data una variabile che può avere un valore tipo: "pippo", vuoi controllare nel tuo DB se esistono titoli con valore "pippo" e se ne esistono più di uno andarli a modificare nel DB aggiungendo un indice incrementale?

Mi sembra leggermente "contorto" come meccanismo, se provi a spiegare meglio la situazione magari si trova una soluzione migliore :)

.

____________________________________________________________


Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!
Torna in cima
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
mesk8
avanzato
avanzato


Età: -1984
Registrato: 31/10/05 16:41
Messaggi: 252
Località: Verona

MessaggioOggetto:
Inviato: 07.11.07 | 17:49
Rispondi citando

ok poniamo la variabile "pippo".

quindi vado a controllare nel database se c'è un valore uguale a "pippo",
se non c'è tengo il nome "pippo" così com'è.

se c'è invece aggiungo al nome una variabile numerica,
quindi se il nome "pippo" c'è già nel database, il nuovo nome sarà "pippo1".

se c'è anche "pippo1", il nuovo nome sarà "pippo2".

e avanti così finché non troverò più nomi uguali...
Torna in cima
Profilo Messaggio privato [ Nascosto ] MSN Messenger
AngaraT
intermedio
intermedio



Registrato: 23/03/04 21:10
Messaggi: 152

MessaggioOggetto:
Inviato: 07.11.07 | 21:21
Rispondi citando

ciao, a me è venuto in mente questa soluzione, non so se possa fare al caso tuo;

 
Codice:
<?php
function dbconnect() {
    
mysql_connect("localhost""root""");
    @
mysql_select_db("coach") or die ("Unable to select database");
}
dbconnect();



// controlla nomi doppi

$post "pippo";
$num "";

function 
ziobiscio($post,$num){    
    
// SELEZIONO IL CAMPO
    
$query mysql_query('SELECT title FROM mesk WHERE title = "'.$post.$num.'" ');
    if(
mysql_num_rows($query) == 1){ // SE ALMENO UN RECORD E' SELEZIONATO
        
$num $num 1// INCREMENTO $num
        
ziobiscio($post,$num); // RIESEGUO ziobiscio
    
} else { // ALTRIMENTI INSERISCO IL NUOVO RECORD
        
$test mysql_query("INSERT INTO mesk (title) VALUES ('".$post.$num."') ");
    }
}

ziobiscio($post,$num);
?>
Torna in cima
Profilo Messaggio privato  
mesk8
avanzato
avanzato


Età: -1984
Registrato: 31/10/05 16:41
Messaggi: 252
Località: Verona

MessaggioOggetto:
Inviato: 08.11.07 | 08:57
Rispondi citando

grazie AngaraT della risposta, lo provo...
casomai cambio il controllo if con il do while, a colpo d'occhio con qst accorgimento dovrebbe fare quello ke intendo.

Posterò qui lo script finale sa mi riesce, ciao
Torna in cima
Profilo Messaggio privato [ Nascosto ] MSN Messenger
AngaraT
intermedio
intermedio



Registrato: 23/03/04 21:10
Messaggi: 152

MessaggioOggetto:
Inviato: 08.11.07 | 12:10
Rispondi citando

ciao mesk, in teoria ziobiscio in questo caso simula un ciclo nel senso che la funzione riesegue se stessa fino a che la condizione dell'if non viene più rispettata e quindi inserisce il nuovo recordo con il $num incrementato a dovere: se hai pippo, pippo1, ...., pippo5 la funzione inserisce pippo6.

non è l'unica soluzione possibile al tuo problema, forse neppure la migliore Dadgrin, ma è quella che mi è venuta in mente Very Happy
Torna in cima
Profilo Messaggio privato  
mesk8
avanzato
avanzato


Età: -1984
Registrato: 31/10/05 16:41
Messaggi: 252
Località: Verona

MessaggioOggetto:
Inviato: 08.11.07 | 12:11
Rispondi citando

il codice va bene così, ho fatto qualche modifica x adattarlo solo ke ora nn riesco a passare la variabile $test

 
Codice:
<?php
// controlla nomi doppi
$post $title;
$num '';

function 
nomidoppi($post$num$tb){
    
$test '';
    
// SELEZIONO IL CAMPO
    
$query mysql_query('SELECT title FROM '.$tb.' WHERE title = "'.$post.$num.'" ');
    
    if(
mysql_num_rows($query) == 1){ // SE ALMENO UN RECORD E' SELEZIONATO
        
$num ++; // INCREMENTO $num
        
nomidoppi($post$num$tb); // RIESEGUO nomidoppi
    
} else { // ALTRIMENTI ASSEGNO IL VALORE
        
$test $post.$num;
    }
    return 
$test;
}

$newpost nomidoppi($post$num'mesk');
echo 
$newpost;
?>


come vedi ora la var $test la "succhio" fuori con return ed è li ke mi incasino, nn riesco a recuperarla... Shoked
come posso risolvere? grazie
Torna in cima
Profilo Messaggio privato [ Nascosto ] MSN Messenger
AngaraT
intermedio
intermedio



Registrato: 23/03/04 21:10
Messaggi: 152

MessaggioOggetto:
Inviato: 08.11.07 | 12:50
Rispondi citando

scusa mesk colpa mia...
 
Codice:
<?php
....

function 
nomidoppi($post$num$tb){
    
$test '';
    
// SELEZIONO IL CAMPO
    
$query mysql_query('SELECT title FROM '.$tb.' WHERE title = "'.$post.$num.'" ');
    
    if(
mysql_num_rows($query) == 1){ // SE ALMENO UN RECORD E' SELEZIONATO
        
$num ++; // INCREMENTO $num
        
return nomidoppi($post$num$tb); // RIESEGUO nomidoppi E RESTITUISCO IL VALORE DI nomidoppi
    
} else { // ALTRIMENTI ASSEGNO IL VALORE
        
return $post.$num// RESTITUISCO IL VALORE
    
}


...

echo 
nomidoppi($post$num'mesk'); 

?>


ciao ciao
Torna in cima
Profilo Messaggio privato  
mesk8
avanzato
avanzato


Età: -1984
Registrato: 31/10/05 16:41
Messaggi: 252
Località: Verona

MessaggioOggetto:
Inviato: 08.11.07 | 13:42
Rispondi citando

grande tutto apposto

graz angaraT

ziobiscio( Cool )
Torna in cima
Profilo Messaggio privato [ Nascosto ] MSN Messenger
Mostra prima i messaggi di:   
Nuovo Topic   Rispondi    Forum Flash, Actionscript, PHP e MySQL » PHP Tutti i fusi orari sono GMT + 2 ore
Pagina 1 di 1

Discussioni Simili
Topic Autore Forum Risposte Ultimo Messaggio
Nessun nuovo messaggio Preloader file esterni - con nomi da PHP Andrea Giassigniani ActionScript & Server Side 6 05.01.07 | 13:37 Leggi gli ultimi messaggi
Andrea Giassigniani
Nessun nuovo messaggio ridimensionamento foto in ciclo for ARIELE ActionScript & Server Side 10 05.11.04 | 16:48 Leggi gli ultimi messaggi
ARIELE
Nessun nuovo messaggio onEnterFrame dentro ciclo for mesk8 ActionScript & Server Side 3 06.04.07 | 11:50 Leggi gli ultimi messaggi
Coach
Nessun nuovo messaggio [AS2] onRelease dinamico in ciclo for 10k_dev Flash Generale 4 12.06.08 | 00:56 Leggi gli ultimi messaggi
10k_dev
Nessun nuovo messaggio Controllare contenuto di un clip cli Flash Generale 3 05.07.06 | 14:16 Leggi gli ultimi messaggi
Coach



 
Vai a:  
Non puoi inserire nuovi Topic in questo forum
Non puoi rispondere ai Topic in questo forum
Non puoi modificare i tuoi messaggi in questo forum
Non puoi cancellare i tuoi messaggi in questo forum
Non puoi votare nei sondaggi in questo forum
Non puoi allegare files in questo forum
Non puoi downloadare gli allegati in questo forum



Powered by phpBB © 2001, 2002 phpBB Group - phpBB SEO Designed by coachdesign - © 2003-2005