Pagina 1 din 1
Creare link-uri si Select continut cu ID din baza de date
Scris: Lun Iul 14, 2014
de davinci
Buna,m-am apucat sa fac un script am creat indexu si m-am lovit de o problema nu stiu cum sa fac cand dai click pe un link de pe index sa duca la "
pagina.php?=id" codul indexului este asta
Cod: Selectaţi tot
<?php
// conecteaza la baza de date
$conn = new mysqli('localhost', 'root', 'test', 'test');
// verifica conexiunea
if (mysqli_connect_errno()) {
exit('Connect failed: '. mysqli_connect_error());
}
// interogare sql SELECT
$sql = "SELECT `imagine`, `titlu` FROM `test` ORDER BY data_ad DESC LIMIT 3";
// executa interogarea si retine datele returnate
$result = $conn->query($sql);
// daca $result contine cel putin un rand
if ($result->num_rows > 0) {
// afiseaza datele din fiecare rand din $result
while($row = $result->fetch_assoc()) {
echo "<img style='width: 230px; height: 110px; margin-left: 5px; margin-right: 5px;' src='" . $row['imagine'] . "' alt='" . $row['titlu'] . "' />";
}
}
else {
echo '0 rezultate';
}
$conn->close();
?>
Ce trebuie bagat in pagina.php sa apara ce am postat la link-ul pagina.php?=id
Creare link-uri si Select continut cu ID din baza de date
Scris: Mar Iul 15, 2014
de MarPlo
Salut
Dupa cum am inteles ca vrei, iti trebuie 3 fisiere (in acelasi director):
1. conn.php - aici se creaza conexiunea la baza de date, se include in celelalte fisiere.
2. index.php - se creaza link-uri spre pagina.php
3. pagina.php - afiseaza din baza de date continutul de la id-ul transmis i
conn.php
Cod: Selectaţi tot
<?php
// conecteaza la baza de date
$conn = new mysqli('localhost', 'root', 'test', 'test');
// verifica conexiunea
if (mysqli_connect_errno()) {
exit('Connect failed: '. mysqli_connect_error());
}
index.php
Cod: Selectaţi tot
include 'conn.php';
// interogare sql SELECT
$sql = "SELECT id FROM `test` ORDER BY data_ad DESC LIMIT 4";
// executa interogarea si retine datele returnate
$result = $conn->query($sql);
$links = '<ul>'; // va contine lista cu link-uri
// daca $result contine cel putin un rand
if ($result->num_rows > 0) {
// creaza codul html cu link-uri
while($row = $result->fetch_assoc()) {
$links .= '<li><a href="pagina.php?id='. $row['id'] .'" title="Page '. $row['id'] .'">Pagina '. $row['id'] .'</a></li>';
}
}
else {
$links .= '<li>Not Link</li>';
}
$links .= '</ul>'; // inchide tagul UL
echo $links; // afisaza link-urile
pagina.php
Cod: Selectaţi tot
<?php
include 'conn.php';
// daca e adresa url cu "id"
if(isset($_GET['id'])) {
$id = intval($_GET['id']); // sa fie sigur ca e numar intreg
// preia continutul de la acel id
$sql = "SELECT * FROM `test` WHERE id=".$id ." LIMIT 1";
// executa interogarea si retine datele returnate
$result = $conn->query($sql);
// daca $result contine cel putin un rand
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$content = $row['titlu']; // "titlu" e numele coloanei cu continutul ce trebuie afisat
}
}
else {
$content = 'Not content';
}
}
else $content = 'Not id in url';
echo $content;
- Daca stii html si cat de cat php, mysql; studiezi atent codul si-l intelegi. Daca nu, mai vezi prin lectiile de pe site.
Creare link-uri si Select continut cu ID din baza de date
Scris: Mar Iul 15, 2014
de davinci
Mersi mult de ajutor,mai am o intrebare daca se poate...in .htaccess am pus
Cod: Selectaţi tot
RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+).html$ pagina.php?id=$1 [NC,L]
Cand intru de exemplu pe: site.com/pagina.html scrie not found.
Creare link-uri si Select continut cu ID din baza de date
Scris: Mar Iul 15, 2014
de MarPlo
Daca id-ul este un numar care vrei sa fie transmis la pagina.php, atunci adresa rescrisa ar trebui sa contina acel numar, adica asa: "site.net/12.html", iar acel $1 din codul de rescriere va fi numarul "12" din adresa.
Re: Creare link-uri si Select continut cu ID din baza de dat
Scris: Mar Iul 15, 2014
de davinci
Da asa merge cu site.com/12.html ,nu pot sa fac in loc de numar sa fie titlul paginii site.com/castraveti.html ?
Creare link-uri si Select continut cu ID din baza de date
Scris: Mar Iul 15, 2014
de MarPlo
Cel mai indicat e sa folosesti si id-ul si titlu in adresa URL, fara terminatia ".html" la rescriere fiindca e degeaba si mai mult doar lungeste adresa.
Dar trebuie sa schimbi codul de creare link-uri si de rerescriere. Cand selectezi sa faci link-urile, selectezi coloana "id" si "titlu".
Cod: Selectaţi tot
$sql = "SELECT id, titlu FROM `test` ORDER BY data_ad DESC LIMIT 4";
Deoarece titlurile pot sa contina si spatii, atunci cand se creaza link-ul poti inlocui spatiu cu liniuta "-", folosind str_replace()
Si pehtru a fi recunoscut id-ul la rescriere, separi titlu de id prin liniuta joasa "_".
Cod: Selectaţi tot
while($row = $result->fetch_assoc()) {
$links .= '<li><a href="'. str_replace(' ', '-', $row['titlu']) .'_'. $row['id'] .'" title="'. $row['titlu'] .'">'. $row['titlu'] .'</a></li>';
}
Link-ul va fi de forma: "site.net/un-titlu_12" .
Iar codul de rescriere din htaccess:
Cod: Selectaţi tot
RewriteEngine On
RewriteRule ^([a-zA-Z0-9-]+)_([0-9]+)$ pagina.php?id=$2 [NC,L]
Iar Select-ul de afisare continut din pagina.php se face la fel dupa id.
Re: Creare link-uri si Select continut cu ID din baza de dat
Scris: Mar Iul 15, 2014
de davinci
Multumesc mult,mai ajutat foarte mult