Rendere dati di una tabella mysql link

Stato
Chiusa ad ulteriori risposte.

g3direct

Utente Attivo
8 Ott 2019
20
0
1
1)Ciao a tutti, sto creando per il mio sito un motore di ricerca che ricerchi i miei articoli tutorial... Ho già creato il mio database e la mia searchbar, tutto funziona come dovrebbe ma mi manca di implementare la funzione del "far diventare link" i dati che vengono fuori come output dopo della ricerca, solamente che non so dove mettere le mani; mi potreste molto gentilmente aiutare? Grazie mille...
2)in più vorrei che il mio codice prenda dal database delle stringhe simili e non solo stringhe identiche come fa ora. es stringhe simili: come creare un account e come creare un gioco oppure come usare visual studio e come usare photoshop
Vi lascio i link della searchbar e del codice
link= https://hard-questions.com/try/ggg.php
link codice: https://codeshare.io/5oN6Mp
 
Ciao,
1) metti <a href="..."> davanti ai risultati della ricerca
2)Nella query, hai messo ...WHERE Name='$str', sostituisci con:
PHP:
WHERE Name LIKE '%$str%' OR Name LIKE '%$str' OR Name LIKE '$str%'
 
Ciao,
1) metti <a href="..."> davanti ai risultati della ricerca
2)Nella query, hai messo ...WHERE Name='$str', sostituisci con:
PHP:
WHERE Name LIKE '%$str%' OR Name LIKE '%$str' OR Name LIKE '$str%'
Intanto grazie della risposta. Però così varrebbe per un solo link o sbaglio?
 
Sostituisci questa riga:
PHP:
    if($row = $sth->fetch())
Con questa:
PHP:
while($row=$sth->fetch(PDO::FETCH_ASSOC))
 
Significa che per ogni riga del database che corrisponde alla ricerca crea il link con nome e descrizione, mentre con il tuo codice iniziale lo faceva soltanto con la prima riga del database.
 
Sostituisci questa riga:
PHP:
    if($row = $sth->fetch())
Con questa:
PHP:
while($row=$sth->fetch(PDO::FETCH_ASSOC))
Mi da questo errore Parse error: syntax error, unexpected 'else' (T_ELSE) in /home/vol6_5/epizy.com/epiz_24872058/htdocs/try/ggg.php on line 51
 
Si, avendo tolto if devi cancellare tutta la parte dell'else, in pratica da "else{" fino alla parentesi che lo chiude
 
Posta il codice completo
<!DOCTYPE html>
<html>
<head>
<title>Ricerca prova</title>
</head>
<body>
<form method="post">
<label>Search</label>
<input type="text" name="search">
<input type="submit" name="submit">

</form>
</body>
</html>
<?php
$con = new PDO("CENSURA');


if (isset($_POST["submit"])) {
$str = $_POST["search"];
$sth = $con->prepare("SELECT * FROM `search` WHERE Name LIKE '%$str%' OR Name LIKE '%$str' OR Name LIKE '$str%'");
$sth->setFetchMode(PDO:: FETCH_OBJ);
$sth -> execute();
while($row=$sth->fetch(PDO::FETCH_ASSOC))
{
?>
<br><br><br>

<tr>


</tr>
<tr>

<?php echo $row->Name; ?><br>
<?php echo $row->Description;?>
</tr>

<?php
}




}
?>
 
Intanto tutto il blocco di PHP dovresti metterlo prima del tag </body>, poi prova a cambiarlo così:
PHP:
<!DOCTYPE html>
<html>
<head>
<title>Ricerca prova</title>
</head>
<body>
<form method="post">
<label>Search</label>
<input type="text" name="search">
<input type="submit" name="submit">

</form>
<?php
$con = new PDO("CENSURA');


if (isset($_POST["submit"])) {
$str = $_POST["search"];
$sth = $con->prepare("SELECT * FROM `search` WHERE Name LIKE '%$str%' OR Name LIKE '%$str' OR Name LIKE '$str%'");
$sth -> execute();
$righe=$sth->rowCount();
if($righe>0){
while($row=$sth->fetch(PDO::FETCH_ASSOC))
{
?>
<br><br><br>

<tr>


</tr>
<tr>

<?php echo $row->Name; ?><br>
<?php echo $row->Description;?>
</tr>

<?php
}
}else{
echo "Nessun utente";
}



}?>
</body>
</html>
 
Intanto tutto il blocco di PHP dovresti metterlo prima del tag </body>, poi prova a cambiarlo così:
PHP:
<!DOCTYPE html>
<html>
<head>
<title>Ricerca prova</title>
</head>
<body>
<form method="post">
<label>Search</label>
<input type="text" name="search">
<input type="submit" name="submit">

</form>
<?php
$con = new PDO("CENSURA');


if (isset($_POST["submit"])) {
$str = $_POST["search"];
$sth = $con->prepare("SELECT * FROM `search` WHERE Name LIKE '%$str%' OR Name LIKE '%$str' OR Name LIKE '$str%'");
$sth -> execute();
$righe=$sth->rowCount();
if($righe>0){
while($row=$sth->fetch(PDO::FETCH_ASSOC))
{
?>
<br><br><br>

<tr>


</tr>
<tr>

<?php echo $row->Name; ?><br>
<?php echo $row->Description;?>
</tr>

<?php
}
}else{
echo "Nessun utente";
}



}?>
</body>
</html>
Ciao! alla fine ci sono riuscito con questo codice
<?php
if ($row->Name == "Come creare un account google") {
$row->Name = '<a href="https://hard-questions.com/articoli/account-google-tutorial.html">Come creare un account google</a>';
}
elseif ($row->Name == "Come formattare un dispositivo android") {
$row->Name = '<a href="https://hard-questions.com/articoli/formattare-un-dispositivo-android.html">Come formattare un dispositivo android</a>';
}
?>
ora però mi mancherebbe il fatto che se cercassi: Come, mi verrebbero fuori (oltre che il primo contenuto della tabella che sarebbe come creare un account google) tutti gli altri articoli che contengono "Come"
 
@g3direct

Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
PHP (2).png
quando posti del codice php, oppure la funzione codice dalla barra degli strumenti
box inserisci.png

Inoltre IMPORTANTE: Prima di creare una nuova discussione o di rispondere alle discussioni esistenti ricordati di leggere attentamente il Regolamento del Forum e l'eventuale regolamento specifico della sezione!
Grazie

Correggi i tuoi post mi raccomando altrimenti sarò costretto a cancellare le discussioni
 
Stato
Chiusa ad ulteriori risposte.

Discussioni simili