[PHP] query all'interno di un ciclo while

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
Buongiorno a tutti.
Situazione:
ho una pagina (corsi.php) che presenta il calendario delle lezioni ordinate per anno, poi per mese e infine per giorno.
Ogni singola lezione ha un codice unico.
Ho aggiunto una tabella al mio db per i partner di ogni singola lezione con due campi: "id_lezione" e "partner".
Adesso mi serve che mi si aggiunga una riga di testo col partner (se c'è) in un determinato punto tra i dati della singola lezione.
Quindi all'interno del ciclo while che mi estrae i dati della singola lezione ho inserito questo:
Codice:
$part = ("SELECT partner FROM calendario_partner WHERE id_lezione = '$id'");
         $partnerok = mysql_query($part);
         $partnertrovato = mysql_result($partnerok, 0);
Poi naturalmente ho aggiunto un echo $partnertrovato dove mi serve che appaia la riga.
Lasciamo perdere per ora i controlli che aggiungerò poi per visualizzare la riga solo se è valorizzata o altri affinamenti.
Utilizzando il costrutto di cui sopra, ricevo un errore.
Se lo cambio utilizzando fetch_assoc con un ciclo while (perchè non mi ricordo mai come fare quando sono certo che il risultato sia di una sola riga) funziona correttamente con la prima lezione della tabella con un partner, ma poi mi riporta lo stesso partner su tutte le lezioni successive...
Non so se mi sono spiegato bene.
Se serve posto tutta la pagina, che è lunghetta (sono 513 righe)...
Dove sbaglio?
 

marino51

Utente Attivo
28 Feb 2013
3.020
174
63
Lombardia
Dove sbaglio?
non facendo una query unica che estrae tutti i dati che servono

pubblicare 3 righe di codice che ottengono un unico risultato ... non puoi pretendere che leggiamo il tuo codice non pubblicato
 

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
beh, hai ragione...
Non mi fa includere tutta la pagina perchè troppo lunga, comunque questa è la parte di codice su cui sto avendo il problema:
PHP:
<table>
    
      <?php

         /*visualizzo i dati delle lezioni */
    
         $i=0;
           while ($i < $num) {
        $id=mysql_result($fatto,$i,"id_lezione");
           $giorno=mysql_result($fatto,$i,"giorno");
           $weekday=mysql_result($fatto,$i,"weekday");
           $t7invita=mysql_result($fatto,$i,"t7invita");
           $chef=mysql_result($fatto,$i,"chef");
           $titolo=mysql_result($fatto,$i,"titolo");
           $sottotitolo=mysql_result($fatto,$i,"sottotitolo");
           $dettagli=stripslashes(mysql_result($fatto,$i,"dettagli"));
           $dettagli = str_replace("\n","<BR>",$dettagli);
           $euro=mysql_result($fatto,$i,"euro");
           $posti=mysql_result($fatto,$i,"posti");
         if ($posti <= 0) {
          $postiveri = $posti;
           $posti = 0;
         }

         $part = ("SELECT partner FROM calendario_partner WHERE id_lezione = '$id'");
         $partnerok = mysql_query($part);
         $partnertrovato = mysql_result($partnerok, 0);

         $groupon = ("SELECT * FROM utentiscuola WHERE pagamento = 'Groupon' AND id_lezione = '$id'");
         $controllo = mysql_query($groupon);
         $grouponisti = mysql_numrows($controllo);

         $nn = 0;
         $postigroupon2 = 0;

         while ($nn < $grouponisti) {
           $postigroupon1 = mysql_result($controllo,$nn, "postiprenotati");
           $postigroupon2 += $postigroupon1;
           $nn++;
         }
        
         if ($postigroupon2 < 5) {
           $messaggiogroupon = "Se vuoi utilizzare un voucher Groupon o simili scrivi a<br>"."<a href='mailto:[email protected]'>"."<b>[email protected]</a></b>";
         }if ($postigroupon2 >= 5) {
          
          $messaggiogroupon = "<span class='rosso'>LEZIONE NON PIU' DISPONIBILE CON VOUCHER GROUPON</span>";
         }

          
        
      ?>

      <tr>
          <td width="15%">Cod. lezione: <strong><? echo $id; ?></strong></td>
          <td align="center"><strong><? echo "$weekday, $giorno"; ?></strong></td>
          <td align="right">Posti Disponibili: <? echo $posti; ?></td>
          <td align="right">

            <form action="riepilogo_ordine.php" method="post" target="_top">
            <!-- <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top"> -->

              <?php
              // verifico che ci siano ancora posti disponibili

              if ($posti <= 0) {
                echo "<b>LEZIONE COMPLETA. (".$postiveri.")</b>";
              }else{
                if ($euro != 0) {
                  echo "<b>Quanti posti vuoi prenotare? <input type='number' name='quantity' min='0' max='100' step='1' value='1' size='3'></b>";
                }
                
              }

              ?>
            
      
          </td>
          <td align="center"><?php echo "$posti_prenotati"; ?></td>
          </tr>


        <tr>
          <td>&nbsp;</td>
          <td colspan="2" class="rosso"><? echo $t7invita; ?></td>
          <td align="right">
            <?
            if ($posti > 0 && $euro != 0) {
              echo $messaggiogroupon."<br>Hai un codice sconto di teatro7? inseriscilo qui sotto:" . "<br>" .
            "<input type='text' name='codice_sconto' size='20' onChange='prendisconto(this.value)'> ";
            }
            ?>
            
            
              
               <input type="hidden" name="item_name" value="Corso <?php echo $titolo; ?> a teatro7 | Lab" />
              
              
              
               <input type="hidden" name="custom" value="<? echo $id; ?>" />
                
            
          </td>
          <td>&nbsp;</td>
          </tr>

        <tr>
    <td>&nbsp;</td>
    <td colspan="4" class="rosso"><strong>Chef: <? echo $chef; ?></strong></td>
    </tr>

  <tr>
    <td>&nbsp;</td>
    <td colspan="4" class="rosso"><? echo $titolo; ?></td>
    </tr>

  <tr>
    <td>&nbsp;</td>
    <td colspan="4"><? echo $sottotitolo; ?></td>
    </tr>

    <tr>
    <td>&nbsp;</td>
    <td colspan="4" class="rosso"><? echo $partnertrovato; ?></td>
    </tr>

  <tr>
    <td>&nbsp;</td>
    <td colspan="4"><? echo $dettagli; ?></td>
    </tr>

  <tr>
    <td>&nbsp;</td>
    <td colspan="2" align="right">&nbsp;</td>
    <td colspan="2" align="right" class="rosso">
      <?
      if ($euro != 0) {
        echo "<strong>PREZZO PER PERSONA: €
        <input type='text' id='vecchioprezzo' name='amount' value=$euro size='3' readonly='readonly'  />
      </strong>";
      }
      
      ?>
      
    </td>
  </tr>

  <tr>
    <td>&nbsp;</td>
 
    <td colspan="4" align="right">
      <?php
        if ($posti <= 0) {
          $titolook=urlencode($titolo);
          echo "<a href='listadiattesa.php?lezione=$id&titolo=$titolook' target='_top' class='rosso'><b>CLICCA QUI PER LISTA DI ATTESA</b></a>";
        }else{
          if ($euro != 0) {
            echo "<input class='rosso' type='submit' value=' ACQUISTA ' />";
          }
          
        }

      ?>
    </td>
  </form>
  </tr>

  <tr>
    <td colspan="5"><hr /></td>
    </tr>
<?php
    
     $i++;

    }


Scusate la mancanza di chiarezza nell'esposizione del problema. Sto aggiungendo questa query perchè è un'esigenza appena nata e cercavo di semplificarmi la vita aggiungendo solo la piccola ricerca che mi serviva ad una pagina di per sè già piuttosto complessa...
Grazie per ogni suggerimento. Intanto mi ci metto pure io a cercare di capire dove accidenti sbaglio. Magari oggi a mente fresca andrà meglio!
 

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
Risolto, con facilità. Ieri ero proprio fuso.
Ho cambiato le righe della query del partner in questo modo:
PHP:
$part = ("SELECT partner FROM calendario_partner WHERE id_lezione = '$id'");
         $partnerok = mysql_query($part);
         $riga = mysql_fetch_assoc($partnerok);
         $partnertrovato = $riga["partner"];
E adesso funziona coma mi aspettavo. Ora aggiungo un po' di abbellimenti e via...
Scusate il disturbo, ma a volte parlarne con qualcuno aiuta anche a pensare!
Alla prossima
 
Discussioni simili
Autore Titolo Forum Risposte Data
F PHP problema doppi apici all'interno di una query SQL PHP 1
A form PHP prenotazione tramite query PHP 2
J [PHP] Visualizzare risultato query stessa pagina PHP 3
S [PHP] non prende la query PHP 0
D [PHP] Query che aggiorna tabella PHP 4
A [PHP] Problema query insert [RISOLTO] PHP 14
M [PHP] Ottimizzazione query PHP 13
S [PHP] la query fallisce PHP 2
Alex_70 actor film query per php PHP 1
Tommy03 [PHP] Media valori presi da una query PHP 3
Punix [PHP] query non valida PHP 1
M [PHP] Query UPDATE che non mi aggiorna campi seconda tabella PHP 3
M [PHP] Problema con query select PHP 2
M [PHP] Problemi con query unione PHP 11
D [PHP] Query in OOP class PHP 0
L [PHP] IF con risultato query PHP 7
M [PHP] query string PHP 2
T [php] problema creazione query select-where PHP 5
B [PHP] IF condizioni e query annidate PHP 1
M [PHP] [SOLVED] While query result PHP 11
P [PHP] PEAR Mail e Query PHP 3
Tommy03 [PHP] Errore query selezione avg PHP 0
Monital [PHP] query update e select insieme ma frazionando l'arrray PHP 12
trattorino problema raccapricciante php conteggio query PHP 4
G [PHP] Oracle, convertire una query multiline in Json PHP 3
A [PHP] Modifica caratteri di una query Oracle SQL PHP 0
A [PHP] Undefined index dopo query dal server PHP 1
L [PHP] risultato query in percentuale PHP 1
L [PHP] Nuovo server, query non funzionano PHP 3
G [PHP] inserire risultato di una query in una tabella PHP 3
G [PHP] operazione matematica tra risultati di query PHP 5
P [PHP] Query con variabile PHP 2
G [PHP] convertire data in formato italiano dopo query PHP 6
T PHP: aggiunta a query che non so fare... PHP 2
G [PHP] FORM INVIO VALORI A QUERY CON TRE CONDIZIONI PHP 2
L [PHP] Problema creazione query a numero di parametri variabile PHP 6
bubino8 [PHP] Query syntax error PHP 6
simgia [PHP] Ciclare una query JOIN PHP 2
R [PHP] Estrapolare dati da una query left join PHP 0
C Php/Mysql query JOIN tra tabelle PHP 4
G [PHP] Selezionare OGGI anno precedente per query sql PHP 2
MikSkagit [PHP] Risultato in una sola query PHP 16
C Php/Mysql query JOIN tra due tabelle PHP 18
Laskot Query al DB con php (INSERT) PHP 2
elpirata [PHP] Query per ricercare stringa in più colonne PHP 5
S [PHP] Più fetch_array con unica query... PHP 9
filomeni [PHP] Query fulltext PHP 12
sandropochi [PHP] Query per estrarre record con data successiva a quella odierna PHP 2
Trapano Query in php come ordinare per data e anche per ora PHP 7
U [PHP] estrarre i risultati di una query e visualizzarli in una tabella. PHP 9

Discussioni simili