Campo di testo che non funziona !???!?!!?

searedone

Utente Attivo
11 Giu 2010
508
0
0
a proposito , avevo sentito che la tabella sql si puo' inserire anche in automatico caricandola tramite ftp , se non è troppo complicato e me lo dici posso caricarla in pausa pranzo e verifico se le modifiche sono corrette ....

Io so come salvare la tabella con .sql per caricarla trami te db ma non so come si fa' a caricarla inviandola con ftp .. sorry ma come capirai sto imparando .... da tre mesi php e mysql e solo con ausilio di libri perchè non ho amici interessati all'argomento :(
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.039
146
63
PR
www.borgo-italia.it
ciao
non serve (non servirebbe) inviarla via fpt.
da locale dal tuo phpMyAdmin Database Manager esporti in formato sql, poi vai sul manager remoto e importi il file salvato.
oppure puoi crearla con php
fai un file php chiamato (es. crea_tabella.php) del tipo:
PHP:
<?php
//i solito valori di connessione
$tabella <<<EOD
CREATE TABLE IF NOT EXISTS `ricette_cucina` (
`id` INT( 6 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`tipo` VARCHAR( 255 ) NOT NULL ,
`titolo` VARCHAR( 255 ) NOT NULL ,
`url` VARCHAR( 255 ) NOT NULL ,
`descrizione` MEDIUMTEXT NOT NULL 
) ENGINE = MYISAM ;
EOD;
$crea=mysql_query($tabella);
?>
la carichi, la richiami (httt://www.mio_sito.it/crea_tabella.php), verifichi che sia creata e cancelli il file
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
Si si grazie ma infatti faccio sempre cosi .. il problema che il nuovo manteiner si appoggia ad un pannello plesk che ha l'url in numeri e questo pc non me lo fa' aprire .. per questo ti ho chiesto come e se posso caricarla tramite ftp per fare prima ....

se faccio come mi hai detto me la carica in automatico ??!?!!?
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
ho risoltooooooooooooooooo ....... grazie milleeeeeeeeeeeeeeeeeeeeeeeeeee


Ok ho aggiunto in maniera corretta addslshes, come da tuo suggerimento e come per magia tutto funziona :) schhh non urlo prima che mi sente il database , come ho fatto più prove e va''''


ti posto il codice cosi vedi cosa ho fatto ( mi sembra più che corretto per te e per tutti i visitatori del forum ))

cmq grazie mille .....

PHP:
<?php  
require ("db_connect.php");   
   
$id = $_POST['id'];     
$tipo = $_POST['tipo'];     
$titolo = $_POST['titolo'];     
$url = $_POST['url'];     
$descrizione = $_POST['descrizione'];  

if(get_magic_quotes_gpc()) { 
   $tipo =stripslashes($tipo); 
   $titolo =stripslashes($titolo); 
   $url =stripslashes($url); 
   $descrizione=stripslashes($descrizione);
   }  

$tipo = mysql_real_escape_string($tipo); 
$titolo = mysql_real_escape_string($titolo); 
$url = mysql_real_escape_string($url); 
$descrizione =mysql_real_escape_string($descrizione);  
          
  $insert = mysql_query("INSERT INTO ricette_cucina
        (id,tipo,titolo,url,descrizione) 
        VALUES 
        ('', '$tipo', '$titolo', '$url', '$descrizione')", $db);
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.039
146
63
PR
www.borgo-italia.it
ciao
sottovoce allora: ok.

se con la tua domanda
se faccio come mi hai detto me la carica in automatico ??!?!!?
indendi parlare del file che avevo chiamato crea_tabella.php, una volta caricato (con fpt) e richiamato ti crea la tabella nel db prescelto nei dati di connessione.
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
si si intendevo quello , ma non sapevo come si faceva ....

Cmq grazie mille mi hai insegnato una cosa nuova davvero comoda ... grazieeeee ..

Ps solo una curiosità ....

Allora lo carico con crea_tabella.php poi lo apro e mi crea il db , ma poi devo cancellarlo , oppure mantenerlo nella cartella !??!!

Il tenerlo nel httdocs dell'ftp potrebbe essere pericoloso perchè se qualcuno lo trova percaso dgt l'url potrebbe farmi casini no ?!?!?
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
Scusate la domanda no so se qui ho in php .....

Allora adesso che ho risolto il campo descrizione mi è venuto in mente che una volta che uno fa una ricerca generale sul mio motore di ricerca potrebbero venire fuori molti risultati .... chi mi sa dire come si aggiunge l'istruzione del database dove gli si dice che dopo ( ipotizzo 10 risultati ) deve creare un'altra pagina e via via ....

Vi posto il cod del database spero qualcuno mi possa aiutare .....

PHP:
<?php

// connettiamoci il nostro database

$db_host = "localhost";
$db_user = "";
$db_password = "";
$db_name = "";

//connetto il database

$db = mysql_connect($db_host, $db_user, $db_password) or die ('Errore durante la connessione');
mysql_select_db($db_name, $db) or die ('Errore durante la selezione del db');

// recuperiamo il valore ricerca inviato con get

$ricerca = $_GET['ricerca'];

// vediamo se è stato inviato, e quindi uguale a ok

if ( $ricerca == 'ok' ) {

// recuperiamo ora cerca inviato con post

$cerca = $_POST['cerca'];

// vediamo se è stato compilato il campo

if ( $cerca == TRUE && $cerca != "" ) {

// ora vediamo se supera i tre caratteri

if ( strlen($cerca) >= 3 ) {

// ora depuriamo la stringa da cercare sul database 

$cerca =  mysql_escape_string(stripslashes($cerca)); 

// ora possiamo effettuare la nostra ricerca sul db, state attenti alla sintassi

$query = "SELECT * FROM ricette_cucina WHERE id LIKE '%$cerca%' OR tipo LIKE '%$cerca%' OR url LIKE '%$cerca%' OR titolo LIKE '%$cerca%' OR descrizione LIKE '%$cerca%' "; 

$risultato = mysql_query($query) or die (mysql_error()); 

$risposta = mysql_query($query) or die ("Utilizza termini più specifici!");

$dentro_la_query= mysql_fetch_assoc($risposta);

if ( $dentro_la_query == TRUE ) {

while($row= mysql_fetch_assoc($risultato)) { 

$id = $row['id'];
$tipo = $row['tipo'];
$titolo = $row['titolo'];

$url = $row['url'];

$descrizione = $row['descrizione'];





// stampiamo i nostri dati

echo "<h3>id: $id<br></h3>";
echo "<h3>tipo : $tipo<br></h3>";
echo "<h3>titolo : $titolo<br></h3>";


echo "<h3>url : <a href=\"http://www.ricettedicucinagratis.com/$url\"/>$url</a><br</h3>"; 

echo "<h3>Descrizione : $descrizione<br></h3>";


}

} else {

echo "Nessun temine alla ricerca trovato";

}


} else {

echo "Devi inserire almeno 3 caratteri";

}

} else {

echo "Non hai compilato il modulo ricerca";

}

}

?>
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.039
146
63
PR
www.borgo-italia.it
ciao
Al
lora lo carico con crea_tabella.php poi lo apro e mi crea il db , ma poi devo cancellarlo , oppure mantenerlo nella cartella !??!!
attento non ti crea il db, ma la tabella.
essendoci la clausola IF NON EXIST non dovrebbe darti fastitio e quindi puoi lasciarlo, ma per sicurezza è sempre meglio toglierlo
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.039
146
63
PR
www.borgo-italia.it
ciao
dai alla querry il limit

$query = "SELECT * FROM ricette_cucina WHERE id LIKE '%$cerca%' OR tipo LIKE '%$cerca%' OR url LIKE '%$cerca%' OR titolo LIKE '%$cerca%' OR descrizione LIKE '%$cerca%' limit 10";
poi se vuoi fare la "paginazione" dovresti quardarti sugli articoli relativi a php di webmaster, trovi come si fa
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
L'avevo trovato anche io sei davvero troppo gentile .. curiosità ...

ti ho messo in rosso una domanda all'interno del php ...


PHP:
<?php
//includiamo il file della classe
@require("paginazione.php");

//connettiamoci a MySQL e selezioniamo il database
class MySQL
{ 
  function MySQL() 
  { 
    $this->host_name = "localhost";
    $this->user_name = "username";
    $this->password = "password";
    $this->data_name = "dbseodir";
    $this->link = @mysql_connect($this->host_name, $this->user_name, $this->password) or die (mysq_error()); 
    @mysql_select_db($this->data_name) or die (mysq_error()); 
  } 
} 

$data = new MySQL();
 
// istanziamo la classe per l'impaginazione
$p = new Paging;

// numero massimo di risultati per pagina
$max = 10;

// identifichiamo la pagina da cui iniziare la numerazione
$inizio = $p->paginaIniziale($max);

// contiamo i records nel database
$query_count = @mysql_query("SELECT * FROM sitezzz") or die (mysql_error());  
[COLOR="red"]al posto di sitezz devo mettere i soliti parametri della query corretto ?!??!?![/COLOR]
$count = @mysql_num_rows($query_count) or die (mysql_error());

// troviamo il numero delle pagine che dovrà essere contato
$pagine = $p->contaPagine($count, $max);

// limitiamo la SELECT al numero di risultati per pagina
$query = @mysql_query("SELECT * FROM sitezzz LIMIT ".$inizio.",".$max) or die (mysql_error());

//mostriamo le pagine
$lista = $p->listaPagine($_GET['p'], $pagine);
echo $lista . "<br>";

//mostriamo il navigatore Precedente/Successiva
$navigatore = $p->precedenteSuccessiva($_GET['p'], $pagine);
echo $navigatore;
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.039
146
63
PR
www.borgo-italia.it
ciao
se vuoi paginare tutti i record della tabella

PHP:
<?php
//.......
$query_count = @mysql_query("SELECT * FROM ricette_cucina") or die (mysql_error());  
//....
$query = @mysql_query("SELECT * FROM ricette_cucina LIMIT ".$inizio.",".$max) or die (mysql_error()); 
//.....
?>
se invece vuoi paginare solo i record provenienti da scelte dell'utente attraverso un form di ricerca
devi mettere il where (o il like)
esempio:

PHP:
<?php
//.....
$query_count = @mysql_query("SELECT * FROM ricette_cucina WHERE tipo='$tipo'") or die (mysql_error()); 
//....
$query = @mysql_query("SELECT * FROM ricette_cucina WHERE tipo='$tipo' LIMIT ".$inizio.",".$max) or die (mysql_error());
//....
?>
comunque mentre stai facendo le prove togli tutte le @ eventualmente le rimetti dopo
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
Fantastico grazie ...

Pero' mi crea sotto le pagine ...

ma non mi printa niente del database !??! manca qualcosa ?!?!?

Nel senso devo mettere da qualche parte echo titolo ecc ho dovrebbe farlo in automatico !?!?
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
rieccomi ho capito linghippo , se non gli dico cosa mi deve stampare a video mai lo farà , dato che tutto il resto facendo varie prove funziona ... ma commetto penso un errore nel dirgli come stamparli ... help ...

posto il codice ..... ( in questo cao ho provato con solo tipo ....

PHP:
<?php
//includiamo il file della classe
@require("paginazione.php");

//connettiamoci a MySQL e selezioniamo il database
class MySQL
{ 
  function MySQL() 
  { 
    $this->host_name = "localhost";
    $this->user_name = "iscritti_dieta";
    $this->password = "searedone1";
    $this->data_name = "db_iscritti";
    $this->link = @mysql_connect($this->host_name, $this->user_name, $this->password) or die (mysq_error()); 
    @mysql_select_db($this->data_name) or die (mysq_error()); 
  } 
} 

$data = new MySQL();
 
// istanziamo la classe per l'impaginazione
$p = new Paging;

// numero massimo di risultati per pagina
$max = 10;

// identifichiamo la pagina da cui iniziare la numerazione
$inizio = $p->paginaIniziale($max);

// contiamo i records nel database
$query_count = @mysql_query("SELECT * FROM ricette_cucina WHERE tipo='$tipo'") or die (mysql_error());
$count = @mysql_num_rows($query_count) or die (mysql_error());

// troviamo il numero delle pagine che dovrà essere contato
$pagine = $p->contaPagine($count, $max);

// limitiamo la SELECT al numero di risultati per pagina
$query = @mysql_query("SELECT * FROM ricette_cucina WHERE tipo='$tipo' LIMIT ".$inizio.",".$max) or die (mysql_error());


//recuperiamo i dati da stampare


while($query= mysql_query($query)) { 


$tipo = $query['tipo'];


// stampiamo i nostri dati

echo "<h3>tipo : $tipo<br></h3>";





}

 

//mostriamo le pagine
$lista = $p->listaPagine($_GET['p'], $pagine);
echo $lista . "<br>";

//mostriamo il navigatore Precedente/Successiva
$navigatore = $p->precedenteSuccessiva($_GET['p'], $pagine);
echo $navigatore;
?>
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
ok risolto quasi tutto ... mhhh chi mi aiuta perfavore ....

Questo script dovrebbe printarmi cio che c'è nel database dando le varie pagine , ma non mi printa perchè ?!??!?!?!?'1'1


Paginazione
PHP:
<?php
// definiamo una costante per la pagina corrente
define("SELF", $_SERVER['PHP_SELF']);

// definiamo la classe
class Paging
{
// definiamo la pagina di partenza
function paginaIniziale($max_row)
{
if ((!isset($_GET['p'])) || ($_GET['p'] == "1"))
{
$parti_da = 0;
$_GET['p'] = 1;
}else{
$parti_da = ($_GET['p']-1) * $max_row;
}
return $parti_da;
}

// contiamo le pagine e stabiliamo quanti records devono essere impaginati 
function contaPagine($conta, $max_row)
{
$pgg = (($conta % $max_row) == 0) ? $conta / $max_row : floor($conta / $max_row) + 1;
return $pgg;
}

// mostriamo l'elenco delle pagine
function listaPagine($p_corrente, $pgg)
{
$listapgg = "";
if (($p_corrente != 1) && ($p_corrente))
{
$listapgg .= " <a href=\"".SELF."?p=1\">Prima pag.</a> ";
}
if (($p_corrente-1) > 0)
{
$listapgg .= "<a href=\"".SELF."?p=".($p_corrente-1)."\"><</a> ";
}
for ($i=1; $i<=$pgg; $i++)
{
if ($i == $p_corrente)
{
$listapgg .= "<b>".$i."</b>";
}else{
$listapgg .= "<a href=\"".SELF."?p=".$i."\">".$i."</a>";
}
$listapgg .= " ";
}
if (($p_corrente+1) <= $pgg)
{
$listapgg .= "<a href=\"".SELF."?p=".($p_corrente+1)."\">></a> ";
}
if (($p_corrente != $pgg) && ($pgg != 0))
{
$listapgg .= "<a href=\"".SELF."?p=".$pgg."\">Ultima pag.</a> ";
}
$listapgg .= "</td>\n";
return $listapgg;
}

// permettiamo la navigazione per pagine precedenti e successive
function precedenteSuccessiva($p_corrente, $pgg)
{
$impaginazione = "";
if (($p_corrente-1) <= 0)
{
$impaginazione .= "Precedente";
}else{
$impaginazione .= "<a href=\"".SELF."?p=".($p_corrente-1)."\">Pag. precedente</a>";
}
$impaginazione .= " | ";
if (($p_corrente+1) > $pgg)
{
$impaginazione .= "Prossima";
}else{
$impaginazione .= "<a href=\"".SELF."?p=".($p_corrente+1)."\">Prossima pag.</a>";
}
return $impaginazione;
}
}
?>
Pagina qui secondo me l'errore .. lo evidenzio in rosso

PHP:
<?php
//includiamo il file della classe
@require("paginazione.php");

//connettiamoci a MySQL e selezioniamo il database
class MySQL
{ 
function MySQL() 
{ 
$this->host_name = "localhost";
$this->user_name = "iscritti_dieta";
$this->password = "searedone1";
$this->data_name = "db_iscritti";
$this->link = @mysql_connect($this->host_name, $this->user_name, $this->password) or die (mysq_error()); 
@mysql_select_db($this->data_name) or die (mysq_error()); 
} 
} 

$data = new MySQL();

// istanziamo la classe per l'impaginazione
$p = new Paging;

// numero massimo di risultati per pagina
$max = 10;

// identifichiamo la pagina da cui iniziare la numerazione
$inizio = $p->paginaIniziale($max);

// contiamo i records nel database
$query_count = @mysql_query("SELECT * FROM ricette_cucina WHERE tipo='$tipo'") or die (mysql_error());
$count = @mysql_num_rows($query_count) or die (mysql_error());

// troviamo il numero delle pagine che dovr‡ essere contato
$pagine = $p->contaPagine($count, $max);

// limitiamo la SELECT al numero di risultati per pagina
$query = @mysql_query("SELECT * FROM ricette_cucina WHERE tipo='$tipo' LIMIT ".$inizio.",".$max) or die (mysql_error());


//recuperiamo i dati da stampare


while ($records = mysql_fetch_array($query)) { 





// stampiamo i nostri dati

echo "tipo : " . $records['tipo'] ."<br />";

}
//l'errore dovrebbe essere qui chi mi aiutaaaaaa 


//mostriamo le pagine
$lista = $p->listaPagine($_GET['p'], $pagine);
echo $lista . "<br>";

//mostriamo il navigatore Precedente/Successiva
$navigatore = $p->precedenteSuccessiva($_GET['p'], $pagine);
echo $navigatore;
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.039
146
63
PR
www.borgo-italia.it
ciao
non posso che ripeterti quanto detto prima:
1. togli tutte le @ cosi vedi gli eventuali errori
2. suddividei le query
3. metti i vari var dump per vedere dove è (se c'è) l'errore
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
:hammer:

Ma in questo caso non ci sono errori , funziona tutto correttamente ....

Il problema è che sbaglio qualcosa nell'array e mi printa solo tipo: e non quello che c'e nel database in tipo .....


non essendo bravo secondo me l'errore sta qui ..


while ($records = mysql_fetch_array($query)) {





// stampiamo i nostri dati

echo "tipo : " . $records['tipo'] ."<br />";

}
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
Guarda tu stesso dall'immagine .. mi crea le pagine ma non mi printa cio che c'è nel database
ishot-91.png