Confrontare due stringhe

gracito

Utente Attivo
30 Mag 2010
109
0
0
Salve
Ho la necessità di confrontare due stringhe. Mi spiego.
Ho un db con due campi Id, e Sequenza.
Ho creato un form dove viene digitato l'id che viene passato a una pagina dettagli.php.
All'apertura della pagina dettagli.php mi compare l'id e il relativo testo. Adesso voglio confrontare la sequenza dell'id selezionato con la sequenza di tutto il db e visualizzarne tutti quelli uguali. Come posso fare? Ecco il testo.
PHP:
<?php
      
      $ID = $_REQUEST["ID"];
      ?>
      
      <table border= "1" width="890" align="center">
    <br>
    <tr>
      
      <td width="850" bgcolor="#E1E1E1"><div align="center"><font color="#000066"><b>Id </b></font></div></td>
      <td width="40" bgcolor="#E1E1E1"><div align="center"><font color="#000066"><b>Sequenza </b></font></div></td>
      
    
    <?php
    
$db = mysql_connect("localhost","root","");
mysql_select_db("sequenza", $db);
    
$result =mysql_query("SELECT * FROM foglio1 Where ID=$ID" );


while($myrow=mysql_fetch_array($result))

echo  "<tr>
<td align= 'center' bgcolor='#f9fbc8'>$myrow[Id]</td>
<td bgcolor='#f9fbc8' >". wordwrap($myrow[Seq], 75, " ", true) ."</td></tr>";

Grazie
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Puoi usare una query SQL del genere:
Codice:
SELECT * FROM foglio1 WHERE Seq = 'tua sequenza'
E poi usi un ciclo while per visualizzare tutti gli ID corrispondenti.

Nello script che hai postato non hai bisogno di usare il ciclo while quando estrai la prima sequenza, in quanto l'ID è univoco. Se gli ID si ripetono hai strutturato male il database.

Inoltre sarebbe buona norma non usare più la libreria mysql, che è deprecatissima. Usa PDO o, al massimo, mysqli.
 

gracito

Utente Attivo
30 Mag 2010
109
0
0
Non ho puntualizzato che il campo sequenza è un campo di 300 caratteri circa è un campo con la sequenza di lettere dell'Rna ....acuccuaaa etc.
Quindi devo digitargli l'id e mi da il risultato dell'id con affianco la sequenza.
Riesco a visualizzare l'id con la sequenza affianco ma non riesco a confrontare le sequenze.

Spero essere stato più chiaro

Potresti scrivermi due righe di codice così mi è più chiaro?

Grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
MySQLi sta per MySQL Improved. È una nuova versione della libreria, che soppianta la vecchia, divenuta obsoleta e caotica nel codice sorgente. Come se non bastasse usando MySQL non abbracci per niente il paradigma ad oggetti di PHP. Nessuna buona applicazione dovrebbe usare MySQL, o al limite dovrebbe fornire un'alternativa, se è necessario tenere la libreria per ragioni di retrocompatibilità.

Se ne evince che MySQL non è ufficialmente deprecata, ma tra i programmatori ormai è definita tale.

P.S. Non sto dicendo che MySQL è deprecato, ma solamente che ci sono tre librerie per accedervi tramite PHP: una vecchia (mysql) e due nuove (mysqli; PDO, che consente l'accesso ad ogni database con gli stessi metodi, il che è una gran comodità).
 

gracito

Utente Attivo
30 Mag 2010
109
0
0
Ho tolto il while certo non ci stava a fare nulla.
Non sono riuscito a confrontare le sequenze.
Ecco il codice sostituito.

PHP:
<?php
    
$db = mysql_connect("localhost","root","");
mysql_select_db("capre", $db);
    
$result =mysql_query("SELECT * FROM foglio1 Where ID=$ID" );

$myrow=mysql_fetch_array($result);

echo  "<tr>
<td align= 'center'>$myrow[Id]</td>
<td >". wordwrap($myrow[Seq], 75, " ", true) ."</td></tr>";

?>
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Scusami, vediamo se ho capito: tu devi estrarre dei dati dal database secondo un ID univoco, e poi cercare tutte le righe in cui un campo sia uguale a quello estratto, giusto? E allora non capisco quale problema ci fosse nel mio sistema, puoi fare così (usando, tra l'altro, PDO):
PHP:
<?php
try
{
	$dsn = 'mysql:host=localhost;dbname=capre';
	$db = new PDO($dsn, 'root');
}
catch(PDOException $e)
{
	die('<h1>Errore database</h1><p>Impossibile effettuare la connessione al database.');
}

$stm = $db->prepare('SELECT * FROM foglio1 WHERE ID = ?');
$stm->execute(array($ID));

$data = $stm->fetch();

$stm = $db->prepare('SELECT * FROM foglio1 WHERE ID <> ? AND Seq = ?');
$stm->execute(array($ID, $data['Seq']));

$related = $stm->fetchAll();
$data['Seq'] = wordwrap($data['Seq'], 75, ' ', true);

echo <<<EOF
<tr>
	<td align="center">{$data['ID']}</td>
	<td>{$data['Seq']}</td>
</tr>
EOF;
?>
E così avrai in $related un array bidimensionale, contenente degli array che rappresentano le singole righe estratte.
 

gracito

Utente Attivo
30 Mag 2010
109
0
0
Devo vedermi il codice che mi hai scritto è nuovo per me.
L'ho provato ma mi visualizza solo la sequenza dell'id inserito e non quelle uguali e non mi visualizza l'id.

Bo??
 

gracito

Utente Attivo
30 Mag 2010
109
0
0
Ho provato così ma non funziona.

PHP:
<?php
    
$db = mysql_connect("localhost","root","");
mysql_select_db("capre", $db);
    
$result =mysql_query("SELECT * FROM foglio1 Where ID=$ID" );
while($myrow=mysql_fetch_array($result))

echo  "<tr>
<td align= 'center'>$myrow[Id]</td>
<td >". wordwrap($myrow[Seq], 75, " ", true) ."</td></tr>";

$query ="SELECT * FROM foglio1 Where Seq=$myrow[Seq]";
while($myrow=mysql_fetch_array($query))

echo  "<tr>
<td align= 'center'>$myrow[Id]</td>
<td >". wordwrap($myrow[Seq], 75, " ", true) ."</td></tr>";

?>
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Devi usare gli apici per delimitare una stringa in SQL. Quindi devi fare così:
Codice:
SELECT * FROM foglio1 WHERE Seq = 'testo'
Ricordati inoltre di specificare che non vuoi recuperare l'ID attuale. Quindi devi aggiungere una condizione, in questo modo:
Codice:
SELECT * FROM foglio1 WHERE ID <> ID_attuale AND Seq = 'testo'
Al contrario delle stringhe, per i numeri non devi usare gli apici.
 

gracito

Utente Attivo
30 Mag 2010
109
0
0
Niente da fare potresti dare uno sguardo al codice postato in precedenza, probabilmente c'è qualche errore che non vedo.

Grazie
 
Discussioni simili
Autore Titolo Forum Risposte Data
F confrontare due stringhe "numeriche" PHP 7
N Confrontare due Stringhe PHP 2
F confrontare due stringhe c Programmazione 0
S [PHP] Confrontare due array con valori quasi uguali PHP 2
otto9due Confrontare due array: verificare che tutti i valori di un'array siano contenuti in un'altra. jQuery 1
P [PHP] Confrontare due password e due email PHP 4
P Unire, confrontare due tabelle da due db diversi fati in phpmyadmin Database 5
L confrontare automaticamente due liste excell Windows e Software 0
F confrontare due date PHP 1
R Confrontare il dominio di una mail con una stringa contenente un dominio personalizzato, tutto ciò in php o javascript PHP 0
A Confrontare il tipo Generics a runtime Presentati al Forum 1
E [PHP] confrontare stringhe importate da csv PHP 19
D confrontare numero di file Classic ASP 0
A confrontare dati MySQL 8
M Confrontare data, ora e aula per evitare sovrapposizioni PHP 8
S Stringhe: confrontare immissione con stringa d'esempio e costruire stringhe da più campi PHP 10
max_400 Database: Confrontare una variabile con una colonna di numeri PHP 6
R Confrontare prodotti PHP 36
I Confrontare Variabile con Array PHP 8
A Confrontare 2 stringhe in JScript Classic ASP 0
max75 query su due tabelle e dati doppioni MS Access 2
T come ordinare dei record recuperati da due tabelle MySQL 0
K Mettere insieme due funzioni Javascript 2
C Autenticazione a due fattori FB Social Media Marketing 0
A Visualizzazione due tabelle PHP 1
T Query su due tabelle con totali Database 4
MarcoGrazia Calcolo fra due date con esclusione delle feste PHP 7
P inserire due voci in un titolo post wp WordPress 1
J Scrivere in due JPanel Java 1
M Aggiornare stesso campo in due tabelle PHP 0
M Collegare due segmenti di rete diversi Reti LAN e Wireless 0
M Aggiornare simultaneamente i campi di due tabelle collegate con id PHP 4
Tommy03 Unire dati da due tabelle MySQL 5
A Cercare un carattere uguale in due stringhe Java 5
elpirata [MySQL] Sincronizzare dati tra due tabelle sullo stesso host MySQL 0
G Mi hanno fatto due preventivi per telecamere abitazione IP Cam e Videosorveglianza 8
MarcoGrazia [PHP] Unioni di due array con somma di valori PHP 6
MarcoGrazia jquery validate, necessità di validare almeno un elemento select su due jQuery 1
Tommy03 Due menù nella stessa app Sviluppo app per Android 0
I [PHP] generazione url "uguale" che punta a due immagini diverse PHP 0
felino Bootstrap alert: usare lo stesso div per due messaggi consecutivi jQuery 1
G Condividere 1 cartella in rete due computer windows 10 Reti LAN e Wireless 0
Domenico_Falco1 Associare una stessa funzione get a due eventi a.click con classi differenti Ajax 6
M PHP Arrotondamento minuti in differenza tra due Orari PHP 9
N due siti web sullo stesso spazio hosting Hosting 0
S [PHP] come esportare due tabelle in file excel su due fogli distinti PHP 8
maxnegri Conoscere giorni della settimana fra due date con php PHP 2
felino EXCEL: verifica dati mancanti tra due sheet Windows e Software 2
I Allineare due righe di testo in photoshop Photoshop 2
Monital funzione php si ripete due volte PHP 6

Discussioni simili