Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    motore di ricerca in php fa cose strane

    ciao a tutti, vi scrivo per risolverer il mio problema molto strano.
    in pratica ho scrito in php unn semplice motore di ricerca che data una parola, $key cerca all'interno di una tabella in tutte le colonne quella determinata parola attraverso l'opzione SQL x LIKE '%$key%'

    successivamente inserisce i risultati in una tbella provvisoria

    funziona bene senza errori etc ma la cosa strana è questa che:

    in php riesce a trovarmi 220 righe ma nella tabell ne salva solo 77, come potrebbe mai essere?

    se eseguo la query in un programma sql mi trova effettivamente 660 righe, quindi i due risultati non combaciano.
    Come mai?

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Dovresti postare il codice...almeno la parte che crea la tabella temporanea.

    Non abbiamo la sfera di cristallo

  3. #3
    si si hai ragionissimo XD,
    ecco il codice:

    codice:
    $select = mysql_query("SELECT * FROM product_ins WHERE `id` LIKE '%$key%' OR `name_prd` LIKE '%$key%' OR `IDX` LIKE '%$key%' OR `category` LIKE '%$key%'
     OR `description` LIKE '%$key%' OR `short_description` LIKE '%$key%' OR `subtitle` LIKE '%$key%'
     OR `brand_product` LIKE '%$key%' OR `sub_cat` LIKE '%$key%' ");
     // e li inseriamo
     $row = mysql_num_rows($select);
     	while($c <= $row) {
    		$ar = mysql_fetch_array($select);
    		mysql_query("INSERT INTO search_result_site SET point = '$c', user = '$user', id = '$ar[id]', name_prd = '$ar[name_prd]', category = '$ar[category]', description = '$ar[description]', short_description = '$ar[short_description]', subtitle = '$ar[subtitle]', brand_product = '$ar[brand_product]', sub_cat = '$ar[sub_cat]'");
    		$c++;
    		}

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Intanto questo
    Codice PHP:
    $row mysql_num_rows($select);
    while(
    $c <= $row) {
        
    $ar mysql_fetch_array($select);
        
    mysql_query("INSERT INTO search_result_site SET point = '$c', user = '$user', id = '$ar[id]', name_prd = '$ar[name_prd]', category = '$ar[category]', description = '$ar[description]', short_description = '$ar[short_description]', subtitle = '$ar[subtitle]', brand_product = '$ar[brand_product]', sub_cat = '$ar[sub_cat]'");
        
    $c++;

    andrebbe sostituito con
    Codice PHP:
    $c 0// o 1, dipende da come intendi contare
    while ($ar mysql_fetch_array($select))
    {
        
    mysql_query("INSERT INTO search_result_site SET point = '$c', user = '$user', id = '$ar[id]', name_prd = '$ar[name_prd]', category = '$ar[category]', description = '$ar[description]', short_description = '$ar[short_description]', subtitle = '$ar[subtitle]', brand_product = '$ar[brand_product]', sub_cat = '$ar[sub_cat]'");
        
    $c++;


  5. #5
    ciao, hai ragione infatti prima il codice era come lo avevi inteso tu, ma notavo che non mi inseriva tutte le righe trovate, e me ne inserisce di più dicendogli finchè non raggiungi il numero di righe trovate...

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Non è sicuramente quello a darti problemi, perché il ciclo viene fatto su tutto ciò che trova, non è che si ferma prima.

    é possibile che tra le colonne della tabella provvisoria ci siano campi unique o primary key su cui si cerca di inserire valori già esistenti e quindi non vengono inseriti?

  7. #7
    ciao, riapro la discussione perché il problema persiste, ho controllato il database e sembra tutto apposto ( allego screen ), infatti trova le righe esatte esempio 4 righe trovate, e con il while esegue correttamente 4 cicli, ma il bello che inserire solo una riga, con mysql_error non mi dice nulla, quindi cosa potrei provare ancora per scoprire la causa?
    Immagini allegate Immagini allegate

  8. #8
    potrebbe essere la cause che nel description essendouna descrizione potrebbero esistere dei " oppure dei ' e quindi cozza e da errore?

  9. #9
    no come non detto, lo inserisce eccome anche se ha gli apici, ora ho notato che quello inserito è solo l'ultimo del ciclo...

  10. #10
    ho provato con echo, mi da 4 query ( giuste ) le inserisco manualmente in sql e le inserisce...

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.