Sortare table! Important!

Întrebări legate de conectarea la baze de date MySQL prin intermediul PHP

Moderatori: Zamolxe, Moderatori

Stepy2005
PHPRomania Supporter
Mesaje: 8
Membru din: Sâm Oct 27, 2007 8:59 pm

Sortare table! Important!

Mesajde Stepy2005 » Sâm Oct 27, 2007 9:02 pm

Sunt un noob la chestii dastea si mi-am creat o baza de date, merge bine, dar am o problema: de ex am daugat date in baza de date numerotate cu 1,2,3,4,5... si daca eu sterg linia 2 din baza mi se va afisa asa: 1,3,4,5 si as doi sa ma ajutati, sa-mi spuneti ce sa fac sa imi ordoneze tabelul automat, in ordine corecta 1,2,3,4. Va multumesc. Astept raspuns



dechim
Senior Member
Mesaje: 1486
Membru din: Mar Mai 10, 2005 11:53 pm
Localitate: Drobeta Turnu Severin

Mesajde dechim » Dum Oct 28, 2007 2:09 am

Tabelul este sortat chiar daca lipsesc o parte din inregistrari.
Liniile (inregistrarile) nu pot fi numerotate, exista probabil un camp ID AUTO_INCREMENT si care este PRIMARY KEY.
Iata comenzile MySQL prin care ID revine la valori crescatoare cu ratia 1:

Cod: Selectaţi tot

ALTER TABLE nume_tabela DROP COLUMN id;

ALTER TABLE nume_tabela ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY;

Multumit ?

MadTrax
PHPRomania Supporter
Mesaje: 7
Membru din: Mie Oct 24, 2007 2:46 pm

Mesajde MadTrax » Dum Oct 28, 2007 2:19 am

Are dreptate dechim , nu iti va afecta cu nimic baza ta de date daca ai scos o linie din ea.
id-ul este AUTO INCREMENT , daca o sa creezi inca un rand va fi 1,3,4,5 in loc de 1,2,3,4.
Inca o data , nu este nimic grav si baza de date va functiona fara probleme!

Stepy2005
PHPRomania Supporter
Mesaje: 8
Membru din: Sâm Oct 27, 2007 8:59 pm

Mesajde Stepy2005 » Dum Oct 28, 2007 10:10 am

Mda...stiu ca nu imi va afecta baza...dar vroiam sa stiu daca se poate deoarece v-a trebui sa listez baza si imi trebuie sa fie numerele consecutive si ordonate asa cum am spus mai sus, altfel nu o sa imi foloseasca si o sa continuu cu excel sau word. Daca se poate va rog explicati-mi mai pe larg, sunt incepator :P...
(editare subiect) Mda uite am reusit cu codul care mi l-ai dat tu, se poate sa introduc acel cod intr-un fisier php si as dori ca id-ul sa nu se puna la sfarsit...ci la inceputul tabelei, altfel nu o sa-mi foloseasca...

griffin
Average Member
Mesaje: 107
Membru din: Joi Dec 07, 2006 1:20 pm

Mesajde griffin » Dum Oct 28, 2007 2:12 pm

Ideea e ca faci degeaba alter table daca ai coloana aia cheie primara(desi nu specifici dar si daca nu e cheie nu cred ca se merita).NU isi are rost sa schimbi de fiecare data valorile acelei linii care te intereseaza adica din 1,2,4,5 sa faci 1,2,3,4 mai bine fa tu ceva de genul: in scriptul PHP tine o variabila pe care o incrementezi pe masura ce afisezi randuri din tabel.Ca sa fiu mai explicit uite codul:

<?php
$link= mysql_connect('hostultau','user','password');
mysql_select_db('bazatade date');
$query=mysql_query('SELECT * FROM tabelulTau');

echo("<table>");
$inc=0; //asta e variabila de care ziceam mai sus
while($rezultat=mysql_fetch_array($query))
{
$inc++;
echo("<tr><td>$inc</td><td>Datele de vrei tu sa le scoti merg aici</td></tr>");
}
echo("</table>");
mysql_close($link);

vezi ca in while am facut echo la variabila $inc asta asigura ca pe pagina ta vor fi numerotate la rand indiferent de id-ul din tabel (Solutia e viabila daca tu nu folosesti undeva in calcule id-urile alea de nu vor mai fi consecutive).

Daca vrei sa stii mai multe de cheile primare uite aici un articol care enumera si ce proprietati are o cheie:http://articles.techrepublic.com.com/5100-22-1045050.html
Ultima oară modificat Dum Oct 28, 2007 2:29 pm de către griffin, modificat 1 dată în total.

Stepy2005
PHPRomania Supporter
Mesaje: 8
Membru din: Sâm Oct 27, 2007 8:59 pm

Mesajde Stepy2005 » Dum Oct 28, 2007 2:22 pm

ms pt ajutor, o sa incerc sa vad ce reusesc :))...Am incercat cu codul tau, ori gresesc eu ceva ori nu merge, imi apare pagina alba.

griffin
Average Member
Mesaje: 107
Membru din: Joi Dec 07, 2006 1:20 pm

Mesajde griffin » Dum Oct 28, 2007 2:32 pm

fii atent ca am facut o mica rectificare la functia de conectare la baza de date(ii gresisem numele :) ) si nu uita sa pui ce parametrii trebuie la mysql_connect adica hostul (cred ca la tine e localhost) utilizatorul (cred ca ai root) si parola de la Mysql;Modifica si numele bazei de date in mysql_select_db() ---pune numele bazei tale si nu uite ca in mysql_query sa pui numele tabelului tau Asa ar trebui sa mearga

Stepy2005
PHPRomania Supporter
Mesaje: 8
Membru din: Sâm Oct 27, 2007 8:59 pm

Mesajde Stepy2005 » Dum Oct 28, 2007 2:38 pm

Incerc acum, mda...pai stiu ce tre sa modific...chiar atata stiu :)). Eu am facut cu include 'conexiune.php';
<?php
include "conexiune.php";
$query=mysql_query('SELECT * FROM register');

echo("<table>");
$inc=0; //asta e variabila de care ziceam mai sus
while($rezultat=mysql_fetch_array($query))
{
$inc++;
echo("<tr><td>$inc</td><td>Nume</td><td>Prenume</td><td>Email</td><td>Adresa</td></tr>");
}
echo("</table>");
mysql_close($conexiune);
?>

Gata ca am reusit...am facut asa:

<?php
include "conexiune.php";
$query=mysql_query('SELECT * FROM register');

echo("<table>");
echo "<tr><td>ID</td><td>Nume</td><td>Prenume</td><td>Email</td><td>Adresa</td></tr>";
$inc=0; //asta e variabila de care ziceam mai sus
while($row=mysql_fetch_array($query))
{
$inc++;
echo("<tr><td>$inc</td><td>$row[0]</td><td>$row[1]</td><td>$row[2]</td><td>$row[3]</td></tr>");
}
echo("</table>");
mysql_close($conexiune);
?>

Stepy2005
PHPRomania Supporter
Mesaje: 8
Membru din: Sâm Oct 27, 2007 8:59 pm

Mesajde Stepy2005 » Lun Oct 29, 2007 2:55 pm

Stepy2005 scrie:Incerc acum, mda...pai stiu ce tre sa modific...chiar atata stiu :)). Eu am facut cu include 'conexiune.php';
<?php
include "conexiune.php";
$query=mysql_query('SELECT * FROM register');

echo("<table>");
$inc=0; //asta e variabila de care ziceam mai sus
while($rezultat=mysql_fetch_array($query))
{
$inc++;
echo("<tr><td>$inc</td><td>Nume</td><td>Prenume</td><td>Email</td><td>Adresa</td></tr>");
}
echo("</table>");
mysql_close($conexiune);
?>

Gata ca am reusit...am facut asa:

<?php
include "conexiune.php";
$query=mysql_query('SELECT * FROM register');

echo("<table>");
echo "<tr><td>ID</td><td>Nume</td><td>Prenume</td><td>Email</td><td>Adresa</td></tr>";
$inc=0; //asta e variabila de care ziceam mai sus
while($row=mysql_fetch_array($query))
{
$inc++;
echo("<tr><td>$inc</td><td>$row[0]</td><td>$row[1]</td><td>$row[2]</td><td>$row[3]</td></tr>");
}
echo("</table>");
mysql_close($conexiune);
?>



dat totusi imi poate spune cineva...daca pot muta linia "ID" la inceputul tabelului?

dechim
Senior Member
Mesaje: 1486
Membru din: Mar Mai 10, 2005 11:53 pm
Localitate: Drobeta Turnu Severin

Mesajde dechim » Lun Oct 29, 2007 7:17 pm

Cod: Selectaţi tot

ALTER TABLE nume_tabela DROP COLUMN id;

ALTER TABLE nume_tabela ADD COLUMN id INT FIRST AUTO_INCREMENT PRIMARY KEY;


Asa merge sa pui ID ca prima coloana, da' nu de asta ai nevoie, le numeri cu PHP-ul cum incearca sa-ti spuna @griffin si @madTrax
Ultima oară modificat Mar Oct 30, 2007 12:00 am de către dechim, modificat 1 dată în total.

Stepy2005
PHPRomania Supporter
Mesaje: 8
Membru din: Sâm Oct 27, 2007 8:59 pm

Mesajde Stepy2005 » Lun Oct 29, 2007 9:02 pm

Da da stiu...dar imi trebuie si asa..am reusit cu variabila aceea, dar vroiam sa fie id in fata pentru o chestie...

dechim
Senior Member
Mesaje: 1486
Membru din: Mar Mai 10, 2005 11:53 pm
Localitate: Drobeta Turnu Severin

Mesajde dechim » Lun Oct 29, 2007 11:59 pm

Merge asa ?
Eu n-am incercat niciodata dar am vazut sintaxa la mysql.com

Stepy2005
PHPRomania Supporter
Mesaje: 8
Membru din: Sâm Oct 27, 2007 8:59 pm

Mesajde Stepy2005 » Mar Oct 30, 2007 2:29 pm

Da da merge...ms mult sper ca o sa pot apela la voi si in viitor :D, imi poate spune cineva cum pot face baza de date in care sa se inregistreze persoane(id si parola) si apoi sa se poata loga...

dechim
Senior Member
Mesaje: 1486
Membru din: Mar Mai 10, 2005 11:53 pm
Localitate: Drobeta Turnu Severin

Mesajde dechim » Mar Oct 30, 2007 9:16 pm


Stepy2005
PHPRomania Supporter
Mesaje: 8
Membru din: Sâm Oct 27, 2007 8:59 pm

Mesajde Stepy2005 » Mar Oct 30, 2007 10:30 pm

MS tutoror, sunteti de nota 10 :D


Înapoi la “MySQL”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 16 vizitatori