Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Problema Search php

  1. #1

    Problema Search php

    Salve a tutti,
    dovrei estrarre i dati di una tabella tramite ricerca, con una select standard funziona ,a quando implemento la like che prende il dato dalla FORM, va in errore[Notice: Undefined index: searchesc in C:\wamp****oncc.php on line 8]:
    codice:
    <?php include('../all/config.php') ?>
    	<form method="post">
    		Nome Applicazione: 
    		<input type="text" name="%searchesc"  />__
    		<input type="submit" value="Conferma" class="noborder" />
    	</form>
    	<?php
    $search = $_POST['searchesc'];
    trim ($search);
    /*controlla se è stato inserito qualcosa*/
    if (!$search){
            echo 'Inserisci termine';
    }
    ?>
    	<table class="testo">
    	<tr>
    		<td class="applicationA">Applicativo</td>
    		<td class="referencesA" >Riferimenti</td>
    		<td class="callA">Rep.</span></td>
    		<td class="noteA">Note Aggiuntive</td>
    		<td class="updlineA">Last Upd.</td>
    	</tr>
    <?php 
    $result = mysql_query("select * from escalation where application like '%".$search."%'")
    or die(mysql_error());
    while ($row = mysql_fetch_array( $result )) { ?>
    	<tr>
    		<td class="application"><?php echo $row['application'];?></td>
    		<td class="references"><?php echo $row['references'];?></td>
    		<td class="call"><?php echo .$row['call']?></td>
    		<td class="note"><?php echo $row['note'];?></td>
    		<td class="updline"><?php echo date("m/d/y G:i", strtotime($row['updline']));?></td>
    	</tr><?php } ?>
    	</table>
    Dov'è che sto sbagliando?Credo sia un errore stupido ma la variabile credo sia ben definita, non capisco perchè non la voglia identificare.
    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    codice:
    <input type="text" name="%searchesc"  />__
    togli il % da qui e riprova

  3. #3
    Originariamente inviato da LuckySevenRoX
    codice:
    <input type="text" name="%searchesc"  />__
    togli il % da qui e riprova
    Niente da fare, anche così non funziona, mi dà lo stesso errore..

  4. #4
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    devi fare un controllo con
    codice:
    isset($_POST['searchesc'])
    l'errore nasce perchè $_POST['searchesc'] non è settata da subito ma viene settata dopo l'invio del form.. quindi grazie a quel controllo utilizzi la variabile solo quando sei sicuro che "contiene qualcosa"..

    esempio

    codice:
    if (isset($_POST['searchesc'])) {
       $search = $_POST['searchesc'];
       esegui query ecc.
    } else {
       mostra solo il form senza eseguire query che utilizzano $_POST['searchesc']
    }

  5. #5
    ho fatto come mi hai detto ma la ricerca non estrae alcun risultato
    codice:
    <?php include('../all/config.php') ?>
    <form method="post">
    Nome Applicazione: 
    	<input type="text" id="searchesc" />__
    	<input type="submit" value="Conferma" />
    	</form>
    	<?php
    if (isset($_POST['searchesc'])) {
    $search = $_POST['searchesc'];
    trim ($search);
    $result = mysql_query("select * from escalation where application like '%".$search."%") 
    or die(mysql_error()); 
    } else {
    $result = mysql_query("select * from escalation ORDER BY application")
    or die(mysql_error()); }
    ?>
    	<table>
    	<tr>
    		<td>Applicativo</td>
    		<td>Riferimenti</td>
    		<td>Rep.</span></td>
    		<td>Note Aggiuntive</td>
    		<td">Last Upd.</td>
    	</tr>
    <?php while ($row = mysql_fetch_array( $result )) { ?>
    	<tr>
    		<td class="application"><?php echo $row['application'];?></td>
    		<td class="references"><?php echo $row['references'];?></td>
    		<td class="call"><?php if ($row['call'] == 'SI') { echo "<font color=green>".$row['call']."</font>";} elseif ($row['call'] == '12x7') { echo "<font color=blue>".$row['call']."</font>";} elseif ($row['call'] == 'NO') { echo "<font color=red>".$row['call']."</font>";} else { echo$row['call'];}?></td>
    		<td class="note"><?php echo $row['note'];?></td>
    		<td class="updline"><?php echo date("m/d/y G:i", strtotime($row['updline']));?></td>
    	</tr><?php } ?>
    	</table>

  6. #6
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    $result = mysql_query("select * from escalation where application like '%".$search."%")

    manca la chiusura dell'apice singolo dopo il %

  7. #7
    codice:
    $result = mysql_query("select * from escalation where application like '%".$search."%'") or die(mysql_error());
    Neanche così effettua la ricerca, mi mostra solo i risultati come prima.

  8. #8
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    mhh strano, non mi sembra di notare altri errori all'interno del codice.. prova a fare la concatenazione della query su una variabile a parte, del tipo
    $query = "select * from escalation where application like '%".$search."%";
    $result = mysql_query($query)

    se non funziona nemmeno così prova a stampare sulla pagina il valore di $query e vedi se la visualizza correttamente.. intanto provo a pensare a qualcos'altro

    EDIT: e comuque ho sempre utilizzato l'array di risultato con i numeri.. sicuro che funzioni anche con i nomi delle colonne? prova con $row[0], $row[1] ecc.

  9. #9
    Originariamente inviato da LuckySevenRoX
    mhh strano, non mi sembra di notare altri errori all'interno del codice.. prova a fare la concatenazione della query su una variabile a parte, del tipo
    $query = "select * from escalation where application like '%".$search."%";
    $result = mysql_query($query)

    se non funziona nemmeno così prova a stampare sulla pagina il valore di $query e vedi se la visualizza correttamente.. intanto provo a pensare a qualcos'altro

    EDIT: e comuque ho sempre utilizzato l'array di risultato con i numeri.. sicuro che funzioni anche con i nomi delle colonne? prova con $row[0], $row[1] ecc.
    Si funziona anche con il testo, facendo $row[0] etc...mi mostra i risultati senza problemi
    Anche implementando il codice:
    codice:
    if (isset($_POST['searchesc'])) {
    $search = $_POST['searchesc'];
    trim ($search);
    $query = "select * from escalation where application like '%".$search."%'";
    $result = mysql_query($query) or die(mysql_error());
    } else {
    $result = mysql_query("select * from escalation ORDER BY application")
    or die(mysql_error()); }
    echo "
    
    ".$query."</p>";
    all'ultima riga mi dà errore: Variabile non definita (si riferisce a $query) davvero non capisco...a me sembra tutto corretto
    Se gli dico di stamparmi $result lo fa, e mi dice Resource id #5
    Se dichiaro le variabili $query o $search con una stringa di testo a monte della query, il valore al loro interno non cambia, quindi è la funzione che non se li prende, non capisco proprio perchè, dato che è scritta bene.

  10. #10
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    allora l'errore sull'ultima riga è normale perchè $query viene definita all'interno dell'if, quindi "esiste" solo se l'if è verificato.

    la $query puoi metterla prima dell'if così è sicuro che te la rileva anche fuori dal suo scope (oppure verifichi sempre con isset ma in questo caso è meglio spostare $query e metterla prima dell'if)

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.