• Home
  • Forum
  • Fare Web
  • PHP

Confrontare due stringhe

  • Creatore Discussione Creatore Discussione gracito
  • Data di inizio Data di inizio 27 Ago 2010
G

gracito

Utente Attivo
30 Mag 2010
109
0
0
  • 27 Ago 2010
  • #1
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
27
Roma
alessandro1997.netsons.org
  • 27 Ago 2010
  • #2
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.
 
G

gracito

Utente Attivo
30 Mag 2010
109
0
0
  • 27 Ago 2010
  • #3
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.044
150
63
PR
www.borgo-italia.it
  • 27 Ago 2010
  • #4
ciao su una parte ti do ragione

Se gli ID si ripetono hai strutturato male il database
Clicca per allargare...

sulla seconda vorrei sapere dove hai trovato che

... libreria mysql, che è deprecatissima..
Clicca per allargare...

non certo sul mauale ufficiale di php dove quando le funzioni ecc.. sono deprecate viene evidenziato (es. $HTTP_POST_VARS [deprecated])

http://it.php.net/manual/en/book.mysql.php

ne tantomeno su

http://www.mysql.com/
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 27 Ago 2010
  • #5
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à).
 
G

gracito

Utente Attivo
30 Mag 2010
109
0
0
  • 27 Ago 2010
  • #6
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
27
Roma
alessandro1997.netsons.org
  • 27 Ago 2010
  • #7
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.
 
G

gracito

Utente Attivo
30 Mag 2010
109
0
0
  • 27 Ago 2010
  • #8
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??
 
G

gracito

Utente Attivo
30 Mag 2010
109
0
0
  • 27 Ago 2010
  • #9
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
27
Roma
alessandro1997.netsons.org
  • 27 Ago 2010
  • #10
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.
 
G

gracito

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

Grazie
 
G

gracito

Utente Attivo
30 Mag 2010
109
0
0
  • 28 Ago 2010
  • #12
Ok ora funziona, ora devo esportarlo in excel.
 
Devi accedere o registrarti per poter rispondere.

Discussioni simili

F
confrontare due stringhe "numeriche"
  • francescoITA
  • 25 Nov 2020
  • PHP
Risposte
7
Visite
2K
PHP 26 Nov 2020
francescoITA
F
N
Confrontare due Stringhe
  • Nicola Sità
  • 28 Ago 2013
  • PHP
Risposte
2
Visite
2K
PHP 28 Ago 2013
Nicola Sità
N
F
confrontare due stringhe c
  • Fabi2089
  • 20 Lug 2010
  • Programmazione
Risposte
0
Visite
2K
Programmazione 20 Lug 2010
Fabi2089
F
S
[PHP] Confrontare due array con valori quasi uguali
  • samurai.sette
  • 18 Nov 2019
  • PHP
Risposte
2
Visite
3K
PHP 23 Nov 2019
samurai.sette
S
Confrontare due array: verificare che tutti i valori di un'array siano contenuti in un'altra.
  • otto9due
  • 5 Ott 2017
  • jQuery
Risposte
1
Visite
6K
jQuery 6 Ott 2017
otto9due
P
[PHP] Confrontare due password e due email
  • paperinik4
  • 14 Giu 2016
  • PHP
Risposte
4
Visite
4K
PHP 17 Giu 2016
paperinik4
P
P
Unire, confrontare due tabelle da due db diversi fati in phpmyadmin
  • paperinik4
  • 18 Nov 2012
  • Database
Risposte
5
Visite
4K
Database 19 Nov 2012
paperinik4
P
L
confrontare automaticamente due liste excell
  • lucax1234
  • 4 Giu 2008
  • Windows e Software
Risposte
0
Visite
2K
Windows e Software 4 Giu 2008
lucax1234
L
F
confrontare due date
  • felixaf21
  • 21 Apr 2008
  • PHP
Risposte
1
Visite
2K
PHP 21 Apr 2008
Eliox
R
Confrontare il dominio di una mail con una stringa contenente un dominio personalizzato, tutto ciò in php o javascript
  • Rametto
  • 10 Giu 2020
  • PHP
Risposte
0
Visite
630
PHP 10 Giu 2020
Rametto
R
A
  • Bloccata
Confrontare il tipo Generics a runtime
  • Ang444
  • 7 Nov 2019
  • Presentati al Forum
Risposte
1
Visite
647
Presentati al Forum 7 Nov 2019
Max 1
E
  • Bloccata
[PHP] confrontare stringhe importate da csv
  • evilsait83
  • 25 Feb 2019
  • PHP
Risposte
19
Visite
3K
PHP 3 Mar 2019
Max 1
D
confrontare numero di file
  • djjunior
  • 19 Mag 2014
  • Classic ASP
Risposte
0
Visite
2K
Classic ASP 19 Mag 2014
djjunior
D
A
confrontare dati
  • amhal
  • 16 Apr 2014
  • MySQL
Risposte
8
Visite
1K
MySQL 17 Apr 2014
borgo italia
M
Confrontare data, ora e aula per evitare sovrapposizioni
  • Marco Nicolè
  • 27 Mag 2013
  • PHP
Risposte
8
Visite
2K
PHP 12 Giu 2013
Longo8
S
Stringhe: confrontare immissione con stringa d'esempio e costruire stringhe da più campi
  • Scar991
  • 14 Mag 2013
  • PHP
Risposte
10
Visite
3K
PHP 18 Giu 2013
borgo italia
Database: Confrontare una variabile con una colonna di numeri
  • max_400
  • 16 Giu 2011
  • PHP
Risposte
6
Visite
2K
PHP 17 Giu 2011
max_400
R
Confrontare prodotti
  • reeda80
  • 2 Feb 2010
  • PHP
  • 2
Risposte
36
Visite
6K
PHP 10 Feb 2010
reeda80
R
I
Confrontare Variabile con Array
  • intimoviro
  • 28 Nov 2009
  • PHP
Risposte
8
Visite
8K
PHP 28 Nov 2009
intimoviro
I
A
Confrontare 2 stringhe in JScript
  • antonietta
  • 29 Lug 2008
  • Classic ASP
Risposte
0
Visite
2K
Classic ASP 29 Lug 2008
antonietta
A
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?