Visualizzazione risultati 1 fino 25 di 25

Discussione: Rotazione banner da mysql

  1. #1
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito Rotazione banner da mysql

    Rieccomi ragazzi con un nuovo lavoro.... incompleto^^
    Allora io avevo nel sito un banner exchange e ora riuscendo un tantino a trafficare con il db mysql ho realizzato un boxino in cui gli utenti possono registrarsi per aderire all'iniziativa, e fin qui tutto ok ora volevo caricare nel db i banner che gia ho nel circuito e fare la rotazione banner direttamente dal db.....
    ho letto un sacco di guide ma come al solito non ho capito una ceppina^^
    alla fine ho spudoratamente copiato uno script pronto trovato qui link
    ma che non mi funziona ^_^'
    ecco il codice ufffffffffffffff
    Codice PHP:
    <?php
    include "config.php";
    $db = mysql_connect($db_host,$db_user,$db_pass);
    mysql_select_db ($db_name) or die ("Cannot connect to database");
    /*eseguo la query per recuperare il numero di dati presente nel mio db*/
    $numero = rand(1,3);
    // Genero il codice MySQL per la selezione
    $query = mysql_query("SELECT * FROM banner WHERE id = '$numero'");
    // Quindi assegno i risultati
    $img = $row_query['img'];
    $url = $row_query['url'];

    echo
    "<a href='$url' target=_blank><img src='$img' border='0' height='31' width='88'></a>";
    ?>
    io per ora ho messo solo alcuni banner di prova ma non solo non sono a rotazione non se ne visualizza nemmeno uno?!'?
    prova
    Cosa che succede perfettamente eseguendo una normale query
    Prova#

    Se mi potete aiutare mi fate un gran favore ^_^
    Euro se sei nei paraggi help me please^^
    Ultima modifica di andreafallico : 12-05-2010 alle ore 23.16.05

  2. #2
    Guest

    Predefinito

    Codice PHP:
    // Genero il codice MySQL per la selezione
    $query = mysql_query("SELECT * FROM banner WHERE id = '$numero'");
    deve diventare
    Codice PHP:
    // Genero il codice MySQL per la selezione
    $query = mysql_query("SELECT * FROM banner WHERE id = '$numero'", $db);
    Ho guardato il codice velocemente.

  3. #3
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

  4. #4
    Guest

    Predefinito

    Codice PHP:
    <?php

    include "config.php";

    $db = mysql_connect($db_host,$db_user,$db_pass);
    mysql_select_db ($db_name) or die ("Cannot connect to database");

    // Eseguo la query per recuperare il numero di dati presente nel mio db
    $numero = rand(1,3);

    // Genero il codice MySQL per la selezione
    $query = mysql_query("SELECT * FROM banner WHERE id = '$numero'");

    // Prelevo il risultato della query
    $row_query = mysql_fetch_assoc($query);

    // Quindi assegno i risultati
    $img = $row_query['img'];
    $url = $row_query['url'];

    echo
    "<a href='$url' target=_blank><img src='$img' border='0' height='31' width='88'></a>";
    ?>
    Hai semplicemente di menticato di prelevare il risultato della query =).
    Ciao!

  5. #5
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ciao RigheDiCodice ^^
    me tonta avevo cancellato $row_query = mysql_fetch_assoc($query); in una delle tante prove fatte, e cmq non si visualizza nulla, in pratica è come se non avvenisse il collegamento con il db....
    ho fatto altre prove ma nulla da fare sighhhhh

  6. #6
    Guest

    Predefinito

    Allora, dopo che prelevi i risultati della query, prova a visualizzare il contenuto del risultato con print_r($row_query); e postalo qui, così vediamo se riusciamo a capire qual è il problema.

  7. #7
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ciao Righe perdonami ma cosa vuol dire:prova a visualizzare il contenuto del risultato con print_r($row_query);
    scusa ma sono proprio alle prime prove con php^^
    Grazie

  8. #8
    Guest

    Predefinito

    print_r() è una funzione che si occupa di fornire e visualizzare lo "status" di una variabile: in pratica visualizzando questo suo status riusciamo a capire come è strutturata $row_query e quindi possiamo stabilire se si tratta di un problema legato alla query, che magari restituisce un insieme vuoto (dunque $row_query avrà valore false) oppure di qualche altro problema. In pratica devi fare così ^^:
    Codice PHP:
    <?php

    // EDIT: in questo modo visualizziamo a video anche tutti gli eventuali errori di tipo Warning e Notice che aiutano molto
    error_reporting(E_ALL);

    include
    "config.php";

    $db = mysql_connect($db_host,$db_user,$db_pass);
    mysql_select_db ($db_name) or die ("Cannot connect to database");

    // Eseguo la query per recuperare il numero di dati presente nel mio db
    $numero = rand(1,3);

    // Genero il codice MySQL per la selezione
    $query = mysql_query("SELECT * FROM banner WHERE id = '$numero'");

    // Prelevo il risultato della query
    $row_query = mysql_fetch_assoc($query);

    print_r($row_query);

    // Quindi assegno i risultati
    $img = $row_query['img'];
    $url = $row_query['url'];

    echo
    "<a href='$url' target=_blank><img src='$img' border='0' height='31' width='88'></a>";
    ?>
    Ultima modifica di RigheDiCodice : 14-05-2010 alle ore 23.21.27

  9. #9
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Grazie Righe la tua pazienza è davvero preziosa per me^^
    ho fatto la pagina con il codice che mi hai gentilmente scritto e non si visualizza nulla,
    http://www.iltelaiodipenelope.it/ami.../prova_row.php
    come si procede ora?
    Grazie infinite
    Buon fine settimana a tutto il forum ^_^

  10. #10
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Codice HTML:
    <a href='' target=_blank><img src='' border='0' height='31' width='88'></a> 
    Questo è l'HTML che ti stampa PHP questo vuol dire che o la query non viene eseguita correttamente oppure non hai dati nel db (ma ne dubito).
    Posta il file config.php ( occhio a rimuovere la password nel caso l'hai inserita in qualche parametro prima di postare il file )

  11. #11
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ciao Java è curioso se non funziona il file config.php perchè è lo stesso che fa funzionare il resto^^ cmq ecco cosa c'è scritto:
    Codice:
    <?php 
    $db_host = "62.149.150.103"; 
    $db_user = "*********"; 
    $db_pass = "*********"; 
    $db_name = "Sql288738_1";
    ?>
    ecco per esempio una normale query eseguita con li stessi file
    http://www.iltelaiodipenelope.it/ami...bannerpage.php
    Ultima modifica di penelopesito : 15-05-2010 alle ore 22.07.03 Motivo: maggiori info

  12. #12
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Prova con questo:
    Codice PHP:
    <?php
    include('config.php');
    $db = mysql_connect($db_host, $db_user, $db_pass);
    mysql_select_db($db_name)or die("Cannot connect to database");
    $numero = rand(1,3);
    $query = mysql_query("SELECT * FROM banner WHERE id='$numero'");
    if(
    $query){
    if(
    mysql_num_rows($query) > 0){
    $row_query = mysql_fetch_array($query);
    echo
    '<a href="',$row_query['url'],'" target="_blank"><img src="',$row_query['img'],'" border="0"></a>';
    }
    else
    echo
    'Rows: 0';
    }
    else
    echo
    mysql_error();
    @
    mysql_close($db);
    ?>
    e vedi se ti restituisce qualche errore.
    Ultima modifica di andreafallico : 17-05-2010 alle ore 19.07.19

  13. #13
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ciao Andrea grazie x i 5 punti^^ capperina ho fatto un up solo perchè altrimenti non rispondete più il forum è pieno di post abbandonati, fatti un giro e prova a dare un'occhiata a quante sono le domande che non hanno mai ricevuto una risposta....

    Ho fatto la pagina con il codice che mi hai scritto ed ecco il risultato, nessun errore perchè da righe =0
    http://www.iltelaiodipenelope.it/amicitelaio/prova1.php
    grazie ciao

  14. #14
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Per fare una prova, sostituiscilo con questo codice:
    Codice PHP:
    <?php
    include('config.php');
    $db = mysql_connect($db_host, $db_user, $db_pass);
    mysql_select_db($db_name)or die("Cannot connect to database");
    $query = mysql_query("SELECT * FROM banner");
    if(
    $query){
    while(
    $row_query = mysql_fetch_array($query))
    echo
    '<br>',$row_query['id'];
    }
    else
    echo
    mysql_error();
    @
    mysql_close($db);
    ?>
    Ultima modifica di andreafallico : 17-05-2010 alle ore 22.38.37

  15. #15
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ecco Andrea,
    cambiato il codice nella pagina e si visualizzano perfettamente gli id delle righe (sono a casaccio xchè ho fatto un sacco di prove e poi cancellavo^^)
    http://www.iltelaiodipenelope.it/amicitelaio/prova1.php
    Funziona tutto... l'unica cosa che non va' è la query con il random!
    Ultima modifica di penelopesito : 18-05-2010 alle ore 01.57.53

  16. #16
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Non potrà mai funzionare, quel codice.
    Invece prova con questo:
    Codice PHP:
    <?php
    include('config.php');
    $db = mysql_connect($db_host, $db_user, $db_pass);
    mysql_select_db($db_name)or die("Cannot connect to database");
    $query = mysql_query("SELECT * FROM banner ORDER BY RAND() LIMIT 1");
    if(
    $query){
    if(
    mysql_num_rows($query) > 0){
    $row_query = mysql_fetch_array($query);
    echo
    '<a href="',$row_query['url'],'" target="_blank"><img src="',$row_query['img'],'" border="0"></a>';
    }
    else
    echo
    'Rows: 0';
    }
    else
    echo
    mysql_error();
    @
    mysql_close($db);
    ?>
    LIMIT 1 -> estrae un record
    LIMIT 2 -> estrae due record
    ecc...

    EDIT:
    Se LIMIT è maggiore di 1, cioè LIMIT 2, LIMIT 3, LIMIT 4, ecc..., il codice diventa così:
    Codice PHP:
    <?php
    include('config.php');
    $db = mysql_connect($db_host, $db_user, $db_pass);
    mysql_select_db($db_name)or die("Cannot connect to database");
    $query = mysql_query("SELECT * FROM banner ORDER BY RAND() LIMIT 3");
    if(
    $query){
    if(
    mysql_num_rows($query) > 0){
    while(
    $row_query = mysql_fetch_array($query))
    echo
    '<a href="',$row_query['url'],'" target="_blank"><img src="',$row_query['img'],'" border="0"></a>';
    }
    else
    echo
    'Rows: 0';
    }
    else
    echo
    mysql_error();
    @
    mysql_close($db);
    ?>
    Ultima modifica di andreafallico : 18-05-2010 alle ore 11.54.18

  17. #17
    Guest

    Predefinito

    Ed il problema sta proprio nel random =): con il tuo codice $numero avrà un valore compreso tra 1 e 3, ma come vedi tra gli id visualizzati nella pagina non vi sono né 1, né 2, né 3.
    A questo punto secondo me ti conviene prelevare tutti i banner che hai nel database e poi selezionare casualmente uno di quelli restituiti. In pratica:
    Codice PHP:
    <?php

    include "config.php";

    $db = mysql_connect($db_host, $db_user, $db_pass);
    // Usa mysql_error() così in caso di errore di selezione avrai una spiegazione più dettagliata del problema
    mysql_select_db($db_name) or die(mysql_error());

    // Qui esegui la query per prelevare TUTTI i banner salvati
    $query = mysql_query("SELECT * FROM banner WHERE 1");

    // In questo array ci andrai a salvare tutti i banner del database...
    $all = array();

    // ... tramite questo ciclo
    while($row_query = mysql_fetch_assoc($query))
    {
    $all[] = $row_query;
    }

    // Adesso generi un numero tra 0 e l'ultimo elemento di $all (cioè il totale degli elementi - 1)
    $number = rand(0, count($all) - 1);

    // Adesso, tramite il numero generato casualmente, accedi al banner estratto
    $img = $all[$number]['img'];
    $url = $all[$number]['url'];

    echo
    "<a href='$url' target=_blank><img src='$img' border='0' height='31' width='88'></a>";

    mysql_close();

    ?>
    Ora dovrebbe andare tranquillamente.
    Ciao ^^

    EDIT: anticipato :)

  18. #18
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    @RigheDiCodice:
    Non conviene estrarre tutti i record.

  19. #19
    Guest

    Predefinito

    Sì beh se i record della tabella diventano tanti sarebbe un inutile spreco di memoria. Solo che non sapevo che esistesse la funzione RAND() per MySQL, quindi ho provato a dare una mia possibile soluzione.
    Comunque Penelope usa il codice di andreafallico che è migliore. ;)

  20. #20
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ciao ragazzi allora prima cosa grazie x l'aiuto^^
    ho provato entrambe i codici, che ovviamente funzionano benissimo, se ho ben capito Andea, devo impostare il "LIMIT" in base a quanti banner voglio visualizzare.
    Unico problema è che in questo modo i banner cambiano quando si aggiorna la pagina, io invece volevo realizzare una rotazione continua.... non so se esiste un modo per fare ciò tramite query non ho trovato nessuna indicazione a parte RANDOM nelle guide che sono riuscita a trovare.

    Righe ti ringrazio per la spiegazione del "$numero" almeno ora so a cosa serve e mi sarà utile in futuro, sto cercando d'impare come utilizzare al meglio il php ma non è facile in quanto la maggior parte di guide sono in inglese e il mio non è proprio buono a livello tecnico^^

  21. #21
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    puoi effettuare la rotazione continua dei banner utilizzando php mysql e javascript...

    ho un javascript che utilizzo per la rotazione, penso che sia fattibile implementarlo con il codice php mysql di cui sopra.

    ora però ho fatto alcune ricerche e ho trovato alcuni script di esempio che utilizzano php mysql e javascript, questa è la ricerca:

    http://sourceforge.net/search/?words...&search=Search

    ho trovato qualcosa di semplice che puoi utilizzare anche per i tuoi studi:

    http://sourceforge.net/projects/durrani/

    http://sourceforge.net/projects/banex/

    http://sourceforge.net/projects/bannerator/

    ecc...

    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  22. #22
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Grazie Euro come al solito sei eccellente ora mi guardo per benino tutte le pagine che mi hai indicato ^_^

  23. #23
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    ho provato ad installare questo script:
    http://sourceforge.net/projects/durrani/

    ma non funziona, o almeno a me non funziona....

    allora ho iniziato a fare alcune modifiche allo script nell'area admin, in quanto non solo non carica le immagini, ma non prelevava neppure i valori input nel campo form

    per ora ho fatto in modo che lo script funzioni nell'inserimento degli input nella tabella banner del database, ma tuttora non funziona la parte di caricamento delle immagini, e la parte di delete e update funzionano ora.

    potete vedere la pagina admin qui, del file index.php:
    http://eurosalute.altervista.org/rotating_banner/admin/



    -

    avrei concluso le modifiche per il corretto funzionamento dello script, nel tempo libero, ed ora funziona ....

    per vedere la rotazione dei banner, questa pagina:
    http://eurosalute.altervista.org/rotating_banner/

    per l'area admin, questa pagina:
    http://eurosalute.altervista.org/rotating_banner/admin/

    per chi volesse i codici php delle pagine modificate, posti qui la richiesta....

    Ultima modifica di andreafallico : 23-05-2010 alle ore 10.21.14
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  24. #24
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Fantastico Euro ora vedo di capirci qualcosa ^_^ c'è anche il box x caricarire l'immagine direttamente dal pc^^ molto molto carino.
    Io ho guardato le pagine che mi hai indicato, la prima pagina l'avevo trovata appunto con una ricerca su google, avevo scaricato un paio di script ma non avevo capito gran chè =_=
    non sono brava a modificare, come avrai ormai capito, il php^^
    Ti ringrazio tantissimo sei sempre gentilissimo e riesci sempre a trovarmi una soluzione ^__________^
    Baci

  25. #25
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    ciao penelopesito, grazie per tutti i complimenti che mi fai!!!

    prova a caricare qualche immagine, e anche a editarle e cancellarle, così vedi come funziona....

    secondo me lo script originale non funziona perchè necessita che il register global sia attivato, io comunque non voglio attivarlo, e in ogni caso lo script originale presenta variabili non dichiarate ed altri errori...
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •