Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - PHP disposizione stringhe
Forum - PHP - PHP disposizione stringhe

Avatar
giocala88 (Normal User)
Expert


Messaggi: 243
Iscritto: 23/04/2008

Segnala al moderatore
Postato alle 12:55
Giovedì, 10/12/2009
Salve ragazzi, ho un piccolo problema e volevo chiedervi un aiuto o un consiglio.
Ho in input 4 stringhe (nè di più, nè di meno, quindi il numero 4 è fisso) e le devo associare in questo modo

Siano A, B, C, D:

A - B
A - C
A - D
B - C
B - D
B - A
C - B
C - D
C - A
D - B
D - C
D - A

l'ordine in cui vengono visualizzate non è rilevante..
Come posso fare una cosa del genere in PHP?
Ringrazio anticipatamente.



PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1704
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 13:22
Giovedì, 10/12/2009
più spiegare più dettagliatamente cosa vuoi fare?
come le voui assocare,
se si tratta di una semplice stringa o di un array?


PM Quote
Avatar
giocala88 (Normal User)
Expert


Messaggi: 243
Iscritto: 23/04/2008

Segnala al moderatore
Postato alle 15:28
Giovedì, 10/12/2009
si scusami, allora il problema è questo:
ho 4 squadre di calcio, ad esempio Juventus, Milan, Inter, Lecce, che le prelevo da un database in mysql, costruire le partite (andata  e ritorno) con esse. Quindi

Milan - Inter
Inter - Milan
Lecce - Juve
Juve - Lecce
Inter - Juve
Juve - Inter
Milan - Lecce
Lecce - Milan
Inter - Lecce
Lecce - Inter

Query squadra mysql
+------------+-------------+------+-----+---------+----------------+
| Field      | Type        | Null | Key | Default | Extra          |
+------------+-------------+------+-----+---------+----------------+
| id_squadra | int(5)      | NO   | UNI | NULL    | auto_increment |
| nome_s     | varchar(25) | NO   | PRI |         |                |
| marca      | varchar(25) | YES  |     |         |                |
| sponsor    | varchar(25) | YES  |     |         |                |
| allenatore | varchar(25) | YES  |     |         |                |
| id_stadio  | int(3)      | YES  |     | 0       |                |
+------------+-------------+------+-----+---------+----------------+



[php] Ho selezionato la query squadra
//Seleziona le squadre
$nomi_s = @mysql_query("SELECT nome_s FROM squadra");
if(!$nomi_s)
     echo "Errore!";

while ($result = mysql_fetch_array($nomi_s)) {
  $nome_s = $result['nome_s'];
  echo "<a href='info_s.php?id_squadra=$id_squadra&nome_s=$nome_s&nazione =$nazione'><i>$nome_s<i>" . " - " . "</td>\n";

}

Ora come posso applicare lo schema andata e ritorno per le partite?
Grazie ancora a tutti.





PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1704
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 9:19
Venerdì, 11/12/2009
lo devi fare tu una per una.

almeno che appunto non fai proprio come hai detto tu

avendo un id delle squadra,
crei un contantore


$contatore = 0
$tot_numero_di_squadra = 10  tanto per fare un esempio


il contatore 0 rimane su zero fino alla fine dell'intero ciclo
mentre l'altro contatore continua ad incrementarsi
e tutti e 2 si riferiscono alla id_sqaudra
quindi se ho esempio

$contatore vs $tot_numero_di_squadra

avrò Milan vs Inter
nel cilco aumento di 1 $tot_numero_di_squadra ogni volta che mi serve una nuova sqaudra
quindi


$contatore vs $tot_numero_di_squadra
$tot_numero_di_squadra++

terminato le squadre e tutto il cilco aumento il contatore
così avro la 2° sqaudra

if($tot_numero_di_squadra == numero di squadre) {
$contatore++;
}

quindi andando a fare ora di nuovo il ciclo avrò

$contatore vs $tot_numero_di_squadra
$tot_numero_di_squadra++

Inter vs Milan ecc. ecc.

semplicemente i 2 contatori dovranno avere questo schema

1-1 (uguale quindi salta incrementando il contatore)
1-2
1-3
1-4
1-5
1-6
1-7
1-8
1-9
1-10  (squadre finite, incrementa il contatore principale)

2-1
2-2 (uguale quindi salta incrementando il contatore)
2-3
ecc. ecc.

Ultima modifica effettuata da Thejuster il 11/12/2009 alle 9:26


PM Quote
Avatar
giocala88 (Normal User)
Expert


Messaggi: 243
Iscritto: 23/04/2008

Segnala al moderatore
Postato alle 16:18
Sabato, 12/12/2009
Ciao Thejuster, innanzitutto ti ringrazio per il tuo contributo...tutto ok:k:.
Ora però ho un altro problema, in riferimento a quanto postato prima:
le 30 partite me le mostra seguendo il tuo metodo dei due cicli for ecc....
Questo è una parte del risultato:

Juve - Roma
Juve - Milan
Juve - Inter
Juve - Napoli
Juve - Udinese
Roma - Juve
Roma - Milan
ecc...

Io però dovrei organizzare delle partite e quindi la stessa  squadre non può giocare lo stesso giorno (es. Juve - Roma NON può giocare con Roma - Juve o Roma - Milan ecc...), ma a questo problema l'ho risolto assegnando staticamente (visto che il numero di squadre è 6) gli incontri.
Ora il problema è nella visualizzazione, in particolare

[codice PHP]

....

<?php

//Cicla gli id_squadra query squadra per craere le giornate
for($cont=1; $cont<=6; $cont++) {
  for($tot=1;$tot <=6 ; $tot++) {
    if($cont != $tot)
    //Condizione affinchè non vengano visualizzate due squadre uguali contro
    if($cont != $tot) {
      //Seleziona la query squadra
      $squadre_cont = @mysql_query("SELECT id_squadra, nome_s FROM squadra WHERE id_squadra
                                    IN ($cont)");
      $squadre_tot = @mysql_query("SELECT id_squadra, nome_s FROM squadra WHERE id_squadra
                                   IN ($tot)");
      //Condizione per eventuali errori
      if(!$squadre_cont and
         !$squadre_tot) {
        echo "Errore nel selezionare i dati query squadra";
      }
      //Cicla gli elementi e visualizza le sfide
      while ($result_cont = mysql_fetch_array($squadre_cont) and
             $result_tot = mysql_fetch_array($squadre_tot)) {
        $id_squadra_cont = $result_cont['id_squadra'];
        $id_squadra_tot = $result_tot['id_squadra'];
        $nome_cont = $result_cont['nome_s'];
        $nome_tot = $result_tot['nome_s'];
        //Link che andrà a visualizzare i campi delle squadre e le suddividerà in giornate
        
    //1^giornata
        if($id_squadra_cont == 1 and
           $id_squadra_tot == 2) {
             echo "<a href='info_s.php?id_squadra=$id_squadra_cont&nome_s=$nome_cont'>
                    <b>$nome_cont</b>" . " - " .
                  "<a href='info_s.php?id_squadra=$id_squadra_tot&nome_s=$nome_tot'>
                    <b>$nome_tot</b>" . "</td>\n" . "<ul/><ul/><ul/>" ;  
         }
         if($id_squadra_cont == 3 and
           $id_squadra_tot == 4) {
             echo "<a href='info_s.php?id_squadra=$id_squadra_cont&nome_s=$nome_cont'>
                    <b>$nome_cont</b>" . " - " .
                  "<a href='info_s.php?id_squadra=$id_squadra_tot&nome_s=$nome_tot'>
                    <b>$nome_tot</b>" . "</td>\n" . "<ul/><ul/><ul/>" ;  
         }
         if($id_squadra_cont == 5 and
           $id_squadra_tot == 6) {
             echo "<a href='info_s.php?id_squadra=$id_squadra_cont&nome_s=$nome_cont'>
                    <b>$nome_cont</b>" . " - " .
                  "<a href='info_s.php?id_squadra=$id_squadra_tot&nome_s=$nome_tot'>
                    <b>$nome_tot</b>" . "</td>\n" . "<ul/><ul/><ul/>" ;  
         }

...

Questo pezzo di codice mi da come risultato
Juve - Roma
Milan - Inter
Napoli - Udinese (tutto OK)

se io però aggiungo, conseguente a quanto scritto sopra

codice PHP

...
//2^giornata
        if($id_squadra_cont == 1 and
           $id_squadra_tot == 3) {
             echo "<a href='info_s.php?id_squadra=$id_squadra_cont&nome_s=$nome_cont'>
                    <b>$nome_cont</b>" . " - " .
                  "<a href='info_s.php?id_squadra=$id_squadra_tot&nome_s=$nome_tot'>
                    <b>$nome_tot</b>" . "</td>\n" . "<ul/><ul/><ul/>" ;  
         }
         if($id_squadra_cont == 2 and
           $id_squadra_tot == 5) {
             echo "<a href='info_s.php?id_squadra=$id_squadra_cont&nome_s=$nome_cont'>
                    <b>$nome_cont</b>" . " - " .
                  "<a href='info_s.php?id_squadra=$id_squadra_tot&nome_s=$nome_tot'>
                    <b>$nome_tot</b>" . "</td>\n" . "<ul/><ul/><ul/>" ;  
         }
         if($id_squadra_cont == 4 and
           $id_squadra_tot == 6) {
             echo "<a href='info_s.php?id_squadra=$id_squadra_cont&nome_s=$nome_cont'>
                    <b>$nome_cont</b>" . " - " .
                  "<a href='info_s.php?id_squadra=$id_squadra_tot&nome_s=$nome_tot'>
                    <b>$nome_tot</b>" . "</td>\n" . "<ul/><ul/><ul/>" ;  
         }
...

Mi  visualizza una sbagliata e non chiara suddivisione delle giornate

Juventus -  Roma
Juventus - Milan
Roma - Napoli
Milan - Inter
Inter - Udinese
Napoli - Udinese

Come posso risolvere questo problema???8-|...Grazie anticipatamente

PM Quote