come inserire in un database un dato e farlo andare come primo dato messo

patriziou

Utente Attivo
12 Lug 2011
79
0
0
ciao allora io ho inserito un dato in un record del database e ne volevo aggiungere un altro solo che volevo che lui prendesse come id 1 e andasse in alto e l' altro invece divenise secondo.
Come devo fare? (utilizzo phpmyadmin nn so l' sql)
devo cambiare qualcosa nel codice php affinchè mi facccia apparire i dati nuovi in alto e i vecchi me li sposti come anche per l' id
qui il codice nel caso servisse
PHP:
<?
// Creo una variabile dove imposto il numero di record 
// da mostrare in ogni pagina
$x_pag = 10;

// Recupero il numero di pagina corrente.
// Generalmente si utilizza una querystring
$pag = $_GET['pag'];

// Controllo se $pag &egrave; valorizzato...
// ...in caso contrario gli assegno valore 1
if (!$pag) $pag = 1; 

// Mi connetto al database
$conn = mysql_connect("localhost","admin","password");
mysql_select_db("my_crashgiochi", $conn);

// Uso mysql_num_rows per contare le righe presenti
// all'interno della tabella agenda
$all_rows = mysql_num_rows(mysql_query("SELECT id FROM giochi_volo"));

// Tramite una semplice operazione matematica definisco
// il numero totale di pagine
$all_pages = ceil($all_rows / $x_pag);

// Calcolo da quale record iniziare
$first = ($pag - 1) * $x_pag;

// Recupero i record per la pagina corrente...
// utilizzando LIMIT per partire da $first e contare fino a $x_pag
$rs = mysql_query("SELECT * FROM giochi_volo LIMIT $first, $x_pag");
$nr = mysql_num_rows($rs);
if ($nr != 0){
  for($x = 0; $x < $nr; $x++){
    $row = mysql_fetch_assoc($rs);
	$immagine = $row['immagine'];
    echo "<p><table><tr>";
    echo "<td>" . $row['id'] . "</td>";
    echo "<td><a href='".$row['url'].".php'>" . $row['nome'] . "</a></td>";	
	echo "</tr>";
    echo "<tr>";
    echo "<td width=\"100\" border=\"0\" height=\"100\"><img src=\"$immagine\"></td>";
	echo "<td width=\"512\" border=\"0\" height=\"100\">" . $row['testo'] . "</td>";
    echo "</tr></table></p>";
  }
}else{
  echo "Nessun record trovato!";
}

// Se le pagine totali sono pi&ugrave; di 1...
// stampo i link per andare avanti e indietro tra le diverse pagine!
if ($all_pages > 1){
  if ($pag > 1){
    echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?pag=" . ($pag - 1) . "\">";
    echo "Pagina Indietro</a>&nbsp;";
  } 
  if ($all_pages > $pag){
    echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?pag=" . ($pag + 1) . "\">";
    echo "Pagina Avanti</a>";
  } 
}

// Chiudo la connessione ad DB
mysql_close($conn);
?>
 

valient13

Utente Attivo
6 Apr 2012
96
0
0
Sicilia
PHP:
$rs = mysql_query("SELECT * FROM giochi_volo LIMIT $first, $x_pag" ORDER BY id DESC);
Penso che avrai creato un indice..
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non ti conviene lavorare con l'id, ma ti conviene mettere un altro campo nella tabella chiamato (es.) daia_ins (io generlamente lo valorizzo con timestamp per cui potrebbe essere data_ins int 15 notnull) per cui qundo vai a fare le select aggiungi
SELECT id FROM giochi_volo ORDER BY data_ins ASC
o
SELECT id FROM giochi_volo ORDER BY data_ins DESC
per cui i recordo ti appaiono ordinati per data asecendente o decrescente (come preferisci)
 

patriziou

Utente Attivo
12 Lug 2011
79
0
0
uhm mi piace la soluzione della data ma vorrei fare emtrembi è possibile se sì come? e poi per quanto riguarda l' id mi esce dopo l' id in alto 1 non è che mi trovo in alto per dire 10 d uno stà in fondo a tutto ?
 

patriziou

Utente Attivo
12 Lug 2011
79
0
0
anzi devo modificare qualcosa nel codice php per il fatto della data devo inserire qualcosa (comunque non vabbene int perchè se voglio scrivere 30/04/2012 non lo posso scrivere come devo scriver?
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
visto che sei agli inizi
non ho creato un indice tutto ciò che ho creato è un database e questo codice è tutto ciò che ho poi cosa intendi con un indice?
tu prima hai creato (immagino in locale) un db, poi una tabella (un database è un insieme di tabelle da una a diciamo quante vuoi).
ogni tabella è un insieme di record (righe) e ogni record è fatto di campi (colonne),
generalmente uno dei campi piu importanti è il campo indice (chiamoato spesso id) ed il campo che identifica il record e ha quasi sempre le caratteristiche

id int 6 primarykey autoincrement
generalmente viene gestito in automatico da mysql
dove
id = nome del campo (anche se si puoi chiamarlo in altra maniera)
int = il dato che conterrà sarà un numero intero
6= numero massimo di cifre del numero (sta a te decidere quante te neservono)
primarikey = definisce che il campo è una chiave primaria NON possono esistere due record con lo stesso id
autoincrement= ad ogni inserimento mysql legge l'ultimo id lo incrementa (di 1) e lo attribuisce al nuovo recordi inserito.

proseguendo ti accorgerai dell'importanza in quanto (es) quando modifichi il record devi far sapere a php/mysql quale record modificare
 

valient13

Utente Attivo
6 Apr 2012
96
0
0
Sicilia
metti varchar(10) se lo vuoi prendere da in input, altrimenti crei il campo con il tipo date
(serve a molto un indice)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao non avevo visto la tua risposta sulla data.
quando si usano le date in formato "umano" bisogna stare attenti perche 28/11/2012 è più piccola di 30/05/2012, considerato che per php e mysql le date non sono che dati usando il timestamp ti faciliti poi l'ordinamento, trasformi il timestamp in data umana solo quando ti serve visualizzarla a monitor o stamparla su un foglio
 

patriziou

Utente Attivo
12 Lug 2011
79
0
0
io dico cosa devo modificare per la data nel codice php qualcosa?? ah e cmnq ho un problema per questa riga di codice per orderby
PHP:
<?
$rs = mysql_query("SELECT * FROM giochi LIMIT $first, $x_pag ORDER BY id DESC"); 
$nr = mysql_num_rows($rs);
if ($nr != 0){
  for($x = 0; $x < $nr; $x++){
    $row = mysql_fetch_assoc($rs);
	$immagine = $row['immagine'];
    echo "<p><table><tr>";
    echo "<td><a href='".$row['url']."'>" . $row['nome'] . "</a></td>";	
    echo "<tr>";
    echo "<td width=\"100\" border=\"0\" height=\"100\"><img src=\"$immagine\"></td>";
	echo "<td width=\"512\" border=\"0\" height=\"100\">" . $row['testo'] . "</td>";
    echo "</tr></table></p>";
  }
}else{
  echo "Nessun record trovato!";
}?>
non parte l' if ma va l' else perchè dove sbaglio?
comunque l"indice "l' ho fatto sarebbe appunto l' id ma nn sapevo che così si chiamasse
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
evidentemente $nr è 0 e non vengono trovati record nel database

comunque invece del ciclo for, sarebbe meglio usare un while con un fetch_array magari
 

patriziou

Utente Attivo
12 Lug 2011
79
0
0
uhm però nel database ci sono i dati se tolgo la parte order by me li trova se lo metto invece no perchè?
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
$first e $x_pag sei sicuro che non vadano oltre i valori esistenti di id nel database?
 

patriziou

Utente Attivo
12 Lug 2011
79
0
0
allora $x_pag=10
$first = ($pag - 1) * $x_pag;
ma $pag sarebbe questo
$pag = $_GET['pag'];
// Controllo se $pag &egrave; valorizzato...
// ...in caso contrario gli assegno valore 1
if (!$pag) $pag = 1;
in realtà questa parte iniziale nn sapevo come farla mi hanno detto di mettere $pag = $_GET['pag']; ed io così l'ho lasciata
nel database c'è l' id 1 e basta
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
L'errore sta qui, riscrivi la query cosi:
PHP:
//nel caso ci sia un order il limit va dopo
$rs = mysql_query("SELECT * FROM giochi ORDER BY id DESC LIMIT $first, $x_pag") or die(mysql_error());
 

patriziou

Utente Attivo
12 Lug 2011
79
0
0
okkei allora vabbene questo?

giochi

Campo Tipo Null Predefinito Commenti
id int(10) No
nome varchar(100) No None
immagine text No
testo varchar(10000) No None
url text No

Indici:
Nome chiave Tipo Cardinalità Campo
PRIMARY PRIMARY 2 id


Spazio utilizzato:
Tipo Utilizzo
Dati 508 B
Indice 2,048 B
Totale 2,556 B
Statistiche righe:
Istruzioni Valore
Formato dinamico
Righe 2
Lunghezza riga ø 254
Dimensione riga ø 1,278 B
Prossimo Autoindex 29
Creazione 30 Apr, 2012 at 10:04 AM
Ultimo cambiamento 30 Apr, 2012 at 10:21 AM
cmnq continuo a chiedere si può fare in modo tale che l' id cambi non rimanga sempre associato alla stesso dato?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
devi modificare alcune cose
all'id devi aggiungere autoincrement
il campoo testo (se non ricordo male) non può superare i 250 caratteri, per mettere tutti i caratteri che gli dici deve essere del tipo text o longtext
dimenticavo:
l'id è essenziale che individui uno e solo un unico record
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
cioa scusa un'altra cosa
perche hai dato al campo immagine come tipo text?
se nel campo inserisci l'immagine (te lo sconsiglio) il campo deve essere di tipo blob, se invece ci metti l'url dell'immagine ti basta (e avanza) varchar 250
 
Discussioni simili
Autore Titolo Forum Risposte Data
L PHPSpreadsheet inserire dati da file .xlsx/.xls su database PHP 2
crealatualista [PHP] Inserire nomi nel database PHP 1
D Come inserire opzioni menù prelevandole dal database con PHP ? PHP 12
G [Javascript] jQuery PHP MySql - inserire variabile nel DataBase Javascript 8
A [ASP] Inserire dati in un database Classic ASP 1
K [WordPress] Plugin per inserire un form per la ricerca in un database.. come si fa? WordPress 1
D Inserire lista Email in database controllando se già esistenti PHP 4
G Inserire un array all'interno di una cella del database MySQL 6
M creare una tabella dove inserire i dati del database Database 1
S Come inserire file in database Mysql senza scrivere codice PHP? PHP 0
Shyson Inserire articolo nel database MySQL 0
G Inserire nome file contenuti in cartella in database con controllo esistenza file in db Classic ASP 2
D inserire foto in database php PHP 2
F [RISOLTO]inserire dati nel database jQuery 14
E Come creare e inserire un database in un'applicazione in fase di sviluppo Sviluppo app per Android 1
G un metodo veloce per inserire immagini all'interno di un database PHP 3
M Semplice pagina per inserire/leggere dati su database PHP 5
Emix Inserire Array di dati in database.... PHP 21
L classe per inserire dati al database PHP 2
S PhpMyAdmin, inserire immagini nel database o no? PHP 6
F inserire gif database phpmyadmin MySQL 3
N Inserire dati in un database Mysql PHP 6
T Inserire i dati da un .txt ad un database PHP 1
P [PHP] Inserire email in un database PHP 2
I Inserire apice in database PHP 2
raniero Inserire database in sito statico MySQL 1
I Inserire più dati in database PHP 43
M [ASP.NET/C#]Inserire percorso immagine in un database access ASP.NET 1
I Inserire dati in database PHP 7
J Inserire database Database 1
S Urgente come inserire un database Database 0
S Come si fa ad inserire un database? Database 5
Elisacau [Contact form 7] Inserire Numero auto incrementante WordPress 1
gara1 inserire immagine di sfondo in canvas Javascript 0
FDF182 Inserire pdf in db PHP 3
otto9due Inserire o aggiornare tabella my sql controllando una coppia di valori PHP 7
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
D Inserire link PHP 0
P inserire due voci in un titolo post wp WordPress 1
R inserire video nel sito HTML e CSS 15
J Inserire blog wordpress in angular CMS (Content Management System) 0
A inserire variabile php colore in div html PHP 2
L inserire dati multi livello PHP 8
G Inserire una scritta Java 1
M Inserire variabile nella value di una hidden PHP 3
S Inserire foto in ogni cella di una tabella Javascript 0
G inserire dati automaticamente in mysql PHP 0
B Vorrei inserire una finestra con messaggio ad un history.back PHP 16
Shyson Inserire placeholder nel campo cerca PHP 5
M Lanciare alert se il codice fiscale è già presente nel db e lasciare la scelta di inserire all'utente PHP 42

Discussioni simili