Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Aiuto, non trovo l'errore

    Ciao,
    sono nuova e ho bisogno del vostro aiuto. Sto seguendo una guida su youtube dove c'è un corso su come creare una ricerca all'interno del proprio sito con php e mysql e al 4° video mi blocco perchè mi da il seguente errore:

    Hai cercato la parola google search
    Notice: Undefined variable: x in C:\xampp\htdocs\searchengine\search.php on line 29

    Notice: Undefined variable: construct in C:\xampp\htdocs\searchengine\search.php on line 31
    1 risultati trovati!


    Mentre il codice php è il seguente:
    Codice PHP:
    <?php

    //get data
    $button $_GET ['submit'];
    $search $_GET ['search'];

    if (!
    $button)
        echo 
    "Non hai inserito la parola";
    else
    {
        if (
    strlen ($search) <=2)
            echo 
    " Termine troppo corto";    
        else
        {
            echo 
    "Hai cercato la parola [b]$search[/b]<hr size='1'>";
            
            
    //connect to our database
            
    mysql_connect("localhost","root","root");
            
    mysql_select_db("phpmyadmin");
            
            
                
    //explode our search term
                
    $search_exploded explode(" ",$search);
                
                foreach(
    $search_exploded as $search_each)
                {

                    
    //construct query
                    
    $x++;
                    if (
    $x==1)
                        
    $construct .= "keywords LIKE '%$search_each%'";
                    else
                        
    $construct .= "OR keywords LIKE '%$search_each%'";

                }

        
    //echo out construct
        
        
    $construct "SELECT * FROM searchengine WHERE $construct";
        
    $run mysql_query($construct);
        
        
    $foundnum mysql_num_rows($run);
        
        if (
    $foundnum==0)
            echo 
    "Nessun risultato trovato.";
        else
        {
            echo 
    "$foundnum risultati trovati!

    "
    ;
        
            
        }
        
        }
    }
    ?>
    Mi potete aiutare a capire come mai mi da quest'errore?

    Vi ringrazio anticipatamente,
    ciao
    Debora

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Usi $construct .= che serve ad aggiugere qualcosa a $construct ma non l'hai mai creata prima.

    Dovresti avere a priori $construct = ''; o semplicemente la variabile senza valore prima.

  3. #3
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Sono errori che non pregiudicano il funzionamento, ma effettivamente il codice così è piuttosto brutto. Basta aggiungere

    Codice PHP:
    $x=0;
    $construct ''
    prima del foreach

  4. #4
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    gia che ci sei farei anche

    Codice PHP:
    $search=trim($search); 
    prima di controllare la lunghezza di $search

  5. #5

    RISOLTO!

    Grazieeee

    ho perso una giornata a capire dove sbagliavo. E' bastato aprire una discussione e tempo 5 minuti me l'avete già risolta... siete grandi!

    Veramente tante grazie, ciao
    Debora

  6. #6

    Ho bisogno di nuovo del vostro aiuto

    Vorrei che quando premo enter o clicco sul bottone search, mi invia il form, questo il codice html:

    codice:
    <form action="search.php" method="get">
    <font face="Tahoma, Geneva, sans-serif" size="5">
        <center>
        	Ricerca nel sito
    
            <input type="text" size="50" name="search">
            <input type="submit" name="submit" value="search"/>
            </center>
            </font>
    </form>
    questo il codice php

    Codice PHP:
    <?php
    <?php

    //get data
    $submit $_GET ['submit'];
    $search $_GET ['search'];

    if (!
    $submit)
        echo 
    "Non hai inserito la parola";
    else
    {
        
    $search=trim($search);
        if (
    strlen ($search) <=2)
            echo 
    " Termine troppo corto";    
        else
        {
            echo 
    "Hai cercato la parola [b]$search[/b]<hr size='1'>";
            
            
    //connect to our database
            
    mysql_connect("localhost","root","root");
            
    mysql_select_db("Sql2446hi");
            
            
                
    //explode our search term
                
    $search_exploded explode(" ",$search);
                
                
    $x=0
                
    $construct '';

                foreach(
    $search_exploded as $search_each)
                {

                    
    //construct query
                    
    $x++;
                    if (
    $x==1)
                        
    $construct .= "keywords LIKE '%$search_each%'";
                    else
                        
    $construct .= "OR keywords LIKE '%$search_each%'";

                }

        
    //echo out construct
        
        
    $construct "SELECT * FROM searchengine WHERE $construct";
        
    $run mysql_query($construct);
        
        
    $foundnum mysql_num_rows($run);
        
        if (
    $foundnum==0)
            echo 
    "Nessun risultato trovato.";
        else
        {
            echo 
    "$foundnum risultati trovati!

    "
    ;
            
            while (
    $runrows mysql_fetch_assoc ($run))
            {
                
    //get data
                
    $title $runrows ['title'];
                
    $desc $runrows ['description'];
                
    $url $runrows ['url'];
                
                echo 
    "
                [b]
    $title[/b]

                
    $desc

                [url='
    $url']$url[/url]


                "
    ;
            }
        
            
        }
        
        }
    }
    ?>

    Vi ringrazio nuovamente, ciao
    Debora

  7. #7
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    Codice PHP:
    if (!$submit
        echo 
    "Non hai inserito la parola"
    questo non va bene, sostituisci la prima parte come segue

    Codice PHP:
    <?php 
    if (!isset($_GET ['search']) || $_GET ['search']==""
        echo 
    "Non hai inserito la parola"
    else 
    {
        
    $search trim($_GET ['search']); 
         if (
    strlen ($search) <=2
            echo 
    " Termine troppo corto";
        
    //etc etc

  8. #8

    Risolto

    Grazie Stefano

    Debora

  9. #9

    Query in title, description e keywords

    Ciao a tutti!

    Chiedo nuovamente il vostro aiuto...

    Sempre per il codice sopra indicato, come faccio a far sì che la ricerca la faccia anche su title e description?

    La mia query é
    SELECT * FROM `searchengine` WHERE 1

    Grazie,
    Debora

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.